Inspiration
Twitch chat never stops, but streamers can't always read it. Mid-boss fight or on an IRL walk, questions, subs, and the best moments scroll away unseen. Late viewers miss them too, and chat fills with "what did I miss?" I wanted something that watches chat when nobody can and catches everyone up in seconds.
What it does
Rewind keeps streamers and viewers caught up on what was said, what was hype, and what you can do in the channel.
- Catch-up:
!rewindor a hotkey shows an overlay card with unanswered questions, subs, raids, and running jokes. - Hype moments: detects chat spikes, auto-creates a clip and stream marker, and labels the moment.
- Viewer recap: late viewers type
!recapfor the same summary, with clips they missed. - Channel guide: learns every bot command, reward, and extension from chat. Viewers use
!toolsor ask in plain English with!ask. - Dashboard and end-of-stream recap: status, unread counts, moments, and top questions in one place.
How I built it
I wrote a spec (AGENTS.md) splitting Rewind into milestones, then built it with OpenAI Codex one milestone at a time. It's a local Node.js backend using Twitch EventSub over WebSocket and the Helix API, OpenAI models for summaries and labels, and an HTML overlay for OBS. A chat simulator let me test everything without going live.
Hype moments fire when the 5-second message count $n_t$ jumps above the recent baseline:
Challenges
- Twitch rejected my redirect URL until I learned only
localhostcan usehttp://. - Clips only work while live, so Codex built a simulator for testing.
- There's no API listing a channel's commands, so Rewind learns them by matching
!commandsto bot replies.
What I learned
How APIs, OAuth, and EventSub fit together, how to keep secrets out of a repo, and that a clear spec with small milestones makes a coding agent far more effective.
What's next
Watching the stream itself with screenshots and audio, and a hosted version any streamer can sign into.
Built With
- codex
- css3
- express.js
- html5
- javascript
- node.js
- oauth
- obs-studio
- openai
- twitch
- twitch-eventsub
- websockets
Log in or sign up for Devpost to join the conversation.