Inspiration
Streamers can't always read the room. Chat scrolls too fast, and lurkers who type one emote never feel like they changed anything. We wanted the mood of chat to be visible on stream, in a way everyone can see and affect.
What it does
StormChat turns Twitch chat into live weather on the stream:
- Hype chat brings sunshine
- Chaotic emote spam brings a thunderstorm with lightning
- Negativity brings drizzle
- Calm, positive chat brings a gentle breeze
- When chat goes quiet, fog rolls in
Viewers can also cast weather spells. !lightning strikes the screen (with a 1-minute cooldown), and !rain, !sun, !snow and !fog need votes from several viewers, so no single person can take over. Follows, subs, gift subs, cheers, raids and channel point rewards become weather events, like rainbows, storm fronts and tornadoes.
Streamers add it to OBS as a transparent Browser Source. A dashboard shows the live mood scores, chat messages, connection status and test buttons.
How we built it (with OpenAI Codex)
The whole app was built by OpenAI Codex in one session (ID: 01a19349-7e6b-7400-8972-a49962b92057). I wrote a brief with the idea and milestones, and Codex built it step by step:
- Twitch login using the Device Code flow, and EventSub over WebSocket for chat, follows, subs, cheers, raids and channel point redemptions
- A mood engine that scores energy, positivity, chaos and quiet from the last 30 seconds of chat, every 2 seconds
- Canvas particle effects for each weather type
- The OBS overlay page, the streamer dashboard, a simulator mode and automated test scenarios
My role was product and testing: I ran it live on Twitch and in OBS, found problems, and sent them back to Codex, which fixed them. For example, the overlay background wasn't transparent in OBS, and the simulator kept running after connecting to real chat.
Challenges
- OBS Browser Sources don't share the browser's saved data, so the overlay needed its own connection to Twitch
- Tuning the mood engine so the weather reacts quickly but doesn't flicker
- Making spells fair, with votes and cooldowns, so chat can't spam effects
Accomplishments
- It works live on Twitch: real chat messages change the weather on stream within seconds
- No backend or database is needed. Everything runs in the browser.
What we learned
How Twitch EventSub WebSockets work, how OBS Browser Sources behave, and how to work with a coding agent: give clear milestones, test for real, and report bugs precisely.
What's next
A !forecast chat command, a climate history graph with an end-of-stream "climate report", and settings for each effect.
Built With
- html
- obs
- openai-codex
- twitch
- twitch-eventsub
- typescript
- vercel
- vite
Log in or sign up for Devpost to join the conversation.