talkatui
v0.1.2
Published
WWE-style live commentary for Claude Code and Codex agent sessions
Readme
talkatui (pronounced talkative)
WWE-style live commentary for Claude Code and Codex sessions in a terminal UI.
Install globally:
npm install -g talkatuiWhat 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 [email protected]:vignesh07/talkatui.git
cd talkatui
npm install
npm run build
npm startRun globally (after publish):
npm install -g talkatui
talkatuiUse globally from your local checkout (no publish needed):
npm install
npm run build
npm link
talkatuiRun 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:
source ~/.zshrcList providers/models available through pi-ai:
npx @mariozechner/pi-ai listIf 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:
npm version patch- Publish:
npm publish --access public- Push branch + tags:
git push origin main --follow-tagsLicense
MIT
Credits
@mariozechner/pi-aipowers provider/model routing.- Huge thanks to Mario Zechner (badlogic) for building Pi.
