Inspiration
Twitch communities build their own lore: recurring jokes, memorable moments, and friendly rivalries. We wanted to turn that shared history into something viewers could play together, while giving moderators control over what appears on stream.
What it does
Lore Boss turns moderator-approved chat lore into an interactive boss fight.
It connects to Twitch chat, uses an LLM to propose lore backed by stored messages, and lets a moderator inspect the evidence before approving, editing, or rejecting it. Only approved lore reaches the OBS overlay.
Viewers use !attack, !heal, and !block to influence combat. Blocking a charging lore strike stuns the boss and creates a double-damage window. Defeats recognize contributors, while a persistent Hall of Fame and Lore Book preserve recorded community history. Incoming raids can trigger a template recap assembled from approved lore.
How we built it
We built Lore Boss with TypeScript, Node.js, Fastify, SQLite, WebSockets, and a plain JavaScript interface. Twitch OAuth, EventSub, and Helix connect the app to real chat; an OBS browser source displays the fight. We exercised lore extraction through Groq.
Codex was central to the build: planning the architecture, implementing the core integrations and deterministic combat reducer, coordinating scoped OpenCode DeepSeek and GLM tasks, reviewing findings, and fixing reproduced failures. Task cards, regression tests, and documented verification kept the work reviewable.
Challenges we ran into
AI-generated lore needed more than valid JSON. We added schema validation, supporting-message checks, verbatim quote checks, attribution checks, and blocked-text filtering. These checks establish evidence references; moderators still judge meaning and suitability.
Real-time correctness also required care. Events can be redelivered, connections can drop, and asynchronous extraction can finish after a session changes. We added durable deduplication, session isolation, stale-result protection, and transactional combat writes.
Provider errors and rate limits needed honest handling, with clear failure states and no silent provider fallback.
Accomplishments that we're proud of
We demonstrated a real Twitch flow from chat messages through evidence review, moderator approval, boss spawning, combat, and defeat. The latest recording captures chat and the application together.
The project passes strict typechecking, lint, build, guardrails, 235 unit tests and 47 browser tests. Replay is explicitly selected and visibly labeled, and unapproved lore stays off the public overlay.
Our live evidence is a solo broadcaster rehearsal. We distinguish that from multiplayer validation and label simulated scenarios clearly.
What we learned
A live interactive product needs predictable behavior, understandable feedback, and reliable recovery. A deterministic combat core made bugs easier to reproduce and fix.
We also learned that AI features involving real communities need evidence and human judgment. Finally, engineering evidence and audience evidence answer different questions: passing tests demonstrates correctness, while real playtests are needed to learn whether people enjoy the experience.
What's next for Lore-Boss
Our next priority is a consented multi-viewer playtest to evaluate command clarity, moderator workload, and whether viewers want to play again.
We also want to validate real incoming raids, paid Bits, and Predictions on an eligible channel, then improve onboarding and fight pacing based on those observations. The goal is to make Lore Boss easy to run alongside a stream and worth returning to with a community.
Built With
- better-sqlite3
- eslint
- fastify
- github
- groq
- javascript
- node.js
- obs-studio
- openai-codex
- opencode
- playwright
- sqlite
- twitch
- twitch-eventsub
- twitch-helix
- typescript
- vitest
- websockets
- zod

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