WWE-style live commentary for Claude Code and Codex sessions in a terminal UI.
Install globally:
Watch demo here.
What it is
talkatui watches active agent sessions, turns low-level events into commentary, and gives you a fun + useful live control room:
- session list and status
- live commentary feed
- session insights (tool calls/errors/recent actions)
- hype/chaos scoreboard
- optional voice playback
It reads session JSONL logs from:
~/.claude/projects/*.jsonl~/.codex/sessions/YYYY/MM/DD/*.jsonl
Requirements
- Node.js
>=20 - Terminal that supports interactive TUI apps
- At least one active Claude Code or Codex session
Quick start
Run from source:
git clone git@github.com:vignesh07/talkatui.git
cd talkatui
npm install
npm run build
npm startRun globally (after publish):
npm install -g talkatui talkatui
Use globally from your local checkout (no publish needed):
npm install npm run build npm link talkatui
Run commands
# default run (provider/model defaults) talkatui # watch only codex sessions talkatui --source codex # watch only claude sessions talkatui --source claude # watch one project talkatui --project talkatui # watch specific session(s) talkatui --session <session-id> talkatui --session <id-1> --session <id-2> # pick provider/model explicitly talkatui --provider openai --model gpt-4o-mini # faster commentary cycle (seconds) talkatui --batch 5 # enable voice talkatui --voice # free-tier voice preset talkatui --voice --voice-tier free # explicit custom voice (overrides voice tier) talkatui --voice --voice-id <elevenlabs-voice-id>
API keys and auth
Commentary models are resolved through @mariozechner/pi-ai.
Common providers:
anthropic->ANTHROPIC_API_KEYopenai->OPENAI_API_KEYgoogle->GEMINI_API_KEY- others -> provider-specific key or OAuth flow supported by
pi-ai
Voice:
- Voice is optional, but if you want TTS,
--voicerequiresELEVENLABS_API_KEY --voice-tier paid|freeselects default voice preset- default is
paidtier with Phil (best "announcer" effect) freetier gives a lower-cost option--voice-idoverrides the tier preset
Put keys in your shell profile:
# ~/.zshrc or ~/.bashrc export ANTHROPIC_API_KEY="..." export OPENAI_API_KEY="..." export GEMINI_API_KEY="..." export ELEVENLABS_API_KEY="..."
Reload shell config:
List providers/models available through pi-ai:
npx @mariozechner/pi-ai list
If provider auth is missing, talkatui stays up, but live commentary generation is skipped until provider auth is fixed.
Voice plans (ElevenLabs)
If you want voice commentary, you need an ElevenLabs account + API key.
- Paid path (default magic):
talkatui --voice --voice-tier paid- Uses Phil by default.
- Free/lower-cost path:
talkatui --voice --voice-tier free- Uses a free-tier friendly preset voice.
- Custom voice:
talkatui --voice --voice-id <your-voice-id>
TUI anatomy
From top to bottom:
- Header
- App banner.
- Model picker (shown when you press
m)
- Lists provider/model options.
- Current selection is highlighted.
- Press
magain orescto close.
- Sessions panel (left)
- Active sessions with source badge (
[CC]Claude,[CX]Codex). - Shows branch, model, and current status/activity.
- Session insights panel (left, below sessions)
- Per-selected-session summary:
Tool calls,Errors,RejectedBash ok/fail,FilesTop tools,Last, and recent actions list
- Live commentary panel (right)
- Commentary stream for recent session activity.
- Includes timestamp + project tag on each line.
- Scoreboard
- Two meters plus counters:
HYPE(momentum meter)CHAOS(failure/turbulence meter)STREAK,Peak,Edits,Commands,Errors
- Ticker
- One-line rolling view of current active session activity.
- Footer
- Key hints, current voice state, pause state, and selected model.
What hype / chaos / streak mean
-
HYPE(0-100):- goes up on productive events (successful tool results, successful bash, file edits/writes)
- can also rise from energetic commentary tones
- decays over time when idle
-
CHAOS(0-100):- goes up on failures (tool errors, rejected tool calls, non-zero bash exits)
- can rise from panic/shock commentary tones
- decays over time when idle
-
STREAK:- increments on consecutive successful/progressive events
- resets on failure/rejection
Peakis the highest streak seen in the current run
-
Commands:- count of successful command-like outcomes (tool success and successful bash)
-
Errors:- count of tool errors, rejections, and failed bash exits
Keybindings
q: quitm: toggle model picker open/closep: pause/resume commentary generationv: toggle voice (when available)tab/down/j: next sessionup/k: previous session- in model picker:
up/down/j/k/tab: move selectionenter: select modelmoresc: close picker
Startup health checks
On startup, talkatui reports warnings for:
- unknown provider value
- missing provider auth for selected provider
--voiceset withoutELEVENLABS_API_KEY- missing/unreadable session source directories
Warnings do not block startup.
Release (manual)
- Validate locally:
npm run lint
npm test
npm run build- Bump version:
- Publish:
npm publish --access public
- Push branch + tags:
git push origin main --follow-tags
License
MIT
Credits
@mariozechner/pi-aipowers provider/model routing.- Huge thanks to Mario Zechner (badlogic) for building Pi.