The idea
A web app for tabletop RPG groups (D&D, Pathfinder, Call of Cthulhu, anything) that takes a recorded session — a Discord voice recording, a video export, or just an audio file from a phone on the table — and produces a structured recap: who was met, what was decided, what loot changed hands, and which plot threads are still open. Instead of a wall of transcript, the group gets a short "previously on your campaign" page they can skim before the next session, plus a running campaign wiki that updates itself after every recap.
Why build this
Long-running campaigns lose players to exactly one thing: nobody remembers what happened three sessions ago, and the person who does (usually the GM) doesn't have time to write it up every week. Session recaps are widely recognized as good practice in the hobby — GMs post them on Reddit and campaign wikis constantly — but they're tedious enough that most groups let them lapse after a few sessions. Whisper-quality transcription is now cheap and fast enough to run a 3-hour audio file in a few minutes, and long-context LLMs are good at exactly this kind of extraction task: pull entities, track state changes, ignore the in-character banter. Nothing purpose-built for tabletop exists yet; general meeting-summarizer tools don't know what an NPC, a saving throw, or a quest hook is.
Stack sketch
- Frontend: Next.js app, one page per session recap plus a persistent campaign wiki view (NPCs, locations, factions, open threads) that accumulates across sessions
- Transcription: Whisper (local via faster-whisper, or the OpenAI API for groups who don't want to self-host) with speaker diarization to separate GM narration from player dialogue
- Extraction: An LLM pass over the transcript with a structured extraction prompt — NPCs introduced, locations visited, items gained or lost, decisions made, threads opened or closed — output as JSON, not prose, so it can populate the wiki directly
- Storage: Postgres for campaigns, sessions, and entities; entities get merged across sessions by fuzzy name matching so "the innkeeper" and "Master Bram" resolve to the same NPC once mentioned together
- Ingestion: Direct upload of audio/video files, plus a Discord bot that can pull a session recording from a voice channel recorder bot's output
- Auth: Simple per-campaign invite links; no need for heavy account infrastructure since groups are small (4-6 people)
Scope for v1
- In: audio upload, transcription, single-session recap generation, a running NPC/location/item list per campaign, manual edit of any generated field (extraction will get things wrong and GMs need to fix names on the fly)
- Out: automatic Discord recording capture (start with manual upload; recording bots are a rabbit hole of their own), video processing beyond extracting the audio track, combat log parsing (initiative order, damage numbers) — recap is narrative, not mechanical
- Out: multi-campaign cross-referencing, character sheet integration with D&D Beyond or similar
Where it could go
Once the entity graph exists, the next step is letting the GM query it directly — "what did I tell the party about the Duke's debts" — turning the wiki into a searchable campaign memory rather than just a recap feed. From there, session prep tools follow naturally: given the open threads and last recap, draft a "cold open" recap script the GM can read aloud, or suggest which dangling plot hooks haven't been touched in N sessions. A public-facing version could let actual-play podcasters (Critical Role-scale and far smaller) publish recap pages alongside episodes for new listeners catching up.
Watch out for
Extraction quality degrades fast with overlapping speech and in-character voices/accents, which tabletop sessions have constantly — budget for a manual correction pass in the UI rather than assuming the pipeline is hands-off, or GMs will stop trusting the output after the first garbled NPC name.