Inspiration
Small Twitch streams can feel quiet even when viewers are watching. Yajiuma Gamers turns chat energy into a visible crowd that reacts on stream, while keeping the streamer in control.
What it does
Yajiuma Gamers is a locally run control room and OBS browser overlay. It connects to Twitch through OAuth Device Flow and EventSub. Chat activity grows the crowd and triggers curated reactions; follows and incoming raids get celebratory alerts. Streamers can trigger reactions manually, review filtered !otayori messages before they appear, and stop all effects instantly.
It also includes adjustable crowd and heat settings, optional speech and sound effects, weekly heat highlights, a mini-game, and optional Codex screen commentary. Codex commentary is off by default and starts only after the streamer explicitly shares a screen in the browser.
How we built it
A dependency-free Node.js server handles Twitch events, tracks chat heat, selects reviewed scripts, and sends state to the control room and overlay over WebSocket. The browser UI and overlay use HTML, CSS, and JavaScript. Settings and limited activity metadata are stored locally, and viewer text is rendered as text rather than HTML.
For optional screen commentary, the streamer selects a screen through browser capture. The server passes a bounded, temporary JPEG to a short-lived, read-only Codex CLI run, limits the response to a brief comment, and removes the temporary file afterward.
Challenges we ran into
We focused on reconnecting to Twitch EventSub without duplicating events, validating incoming event payloads, safely rendering viewer text, and ensuring emergency stop suppresses all effects.
Accomplishments that we're proud of
The overlay combines automatic Twitch event reactions with streamer-controlled cues and moderation. Automated tests cover OAuth, EventSub, moderation, rate limits, settings, clips, Codex boundaries, and overlay behavior.
What we learned
We learned to treat stream chat and screen capture as untrusted inputs, keep Codex screen commentary opt-in, and make Twitch event handling resilient to reconnects and duplicate delivery.
Built With
- css
- html
- javascript
- node.js
- obs-studio
- openai-codex
- twitch
- twitch-eventsub
- websocket

Log in or sign up for Devpost to join the conversation.