Hears you
Local speech-to-text, Whisper-class. Your voice never leaves the box. GPU tier if you've got CUDA, CPU tier if you don't.
Covey leader to Raven... talk to me, Johnny.
Put the keyboard down. A local-first voice medium for Claude Code and Codex CLI - you speak, the attached assistant works, and replies come back in a real voice. Headphones on, hands off.
Hands off the keyboard.
It's a long road.
What it does
One local command. Listening and speaking stay on your machine; only the assistant provider you already use handles the coding work.
Local speech-to-text, Whisper-class. Your voice never leaves the box. GPU tier if you've got CUDA, CPU tier if you don't.
Speaks the attached assistant's dialogue in a real voice — and only the dialogue. Tool calls, fenced code, and thinking are stripped before a word is said.
User-level lifecycle hooks support normal Claude Code and Codex CLI launches. Only the exact session you attach can enter its isolated reply stream.
Always-on and pause-gated, push-to-talk, or push-toggle. Set your default once and forget it.
assist off and the whole thing goes quiet — hook included. A mute switch that actually mutes.
Three public-domain voices, fetched automatically on first use. No copyrighted voices, no celebrity clones — bring your own on top.
Speak a slash command and it fires — a keyword match for the obvious ones, a sealed-off sub-call to resolve the rest. Your words find the command; ordinary talk never trips it.
An opt-in wake phrase opens the mic on a spoken cue — off by default, on the moment you say it. No key, no click. Leave it off and the mic stays shut.
Talk over a spoken reply and it yields — full-duplex, gated behind headphones so it never talks over itself. Interrupt it like you would a person.
Long answers break into speakable pieces and remember where they paused. Say back, repeat, or slower and it picks up mid-thought — not from the top.
A first-run wizard pins your recording mode, permission posture, and first voice before anything else runs. Recommended defaults are a single Enter away.
The one thing that matters
The filter reads the assistant transcript and speaks only its prose — striking out tool calls, logs, and fenced code before your headphones ever hear them.
talktomejohnny filter transcript.jsonl — three spoken sentences out. No destructive shell, no forbidden_function, no backticks. Proven, not promised: it's one of the twelve criteria the build is sealed against.
Get it running
Every platform spells the same three steps differently. Pick yours. The clone is tiny — the voices download once on your first speak (~250 MB, cached), or run voices --download to pre-fetch. First run? talktomejohnny setup walks the whole thing — recording mode, permissions, a voice — in one pass.
talktomejohnny hook install --provider claude and talktomejohnny hook install --provider codex. In Codex, open /hooks once to review and trust the TalkToMeJohnny entries. Then use /talktomejohnny on in Claude Code or $talktomejohnny on in Codex CLI. First transcription downloads its Whisper model once, then reuses the local cache.
Remote / SSH
Coding on a Proxmox box, homelab machine, or VPS? The microphone and speakers stay local, Claude Code or Codex CLI runs on the server, and only text crosses the SSH connection.
talktomejohnny config set remote local. See the README for the complete remote walkthrough and recovery notes.The voices
Trained from scratch, every one public domain. They fetch automatically from the Hugging Face Hub on first use and cache locally — so day one is never silent and the licensing stays clean. Piper runs as a subprocess, never linked in, so the project stays MIT.
| Voice | Accent | Quality | License |
|---|---|---|---|
| en_US-ljspeech-high | US English | High | Public domain |
| en_GB-cori-medium | UK English | Medium | Public domain |
| en_US-bryce-medium | US English | Medium | Public domain |
Or clone your own. Point it at a short reference clip — a YouTube link works — and an F5-TTS engine grows a voice from it, auto-picking a clean, single-speaker segment. Nothing goes live until you hear it and say yes: a mandatory audition, never a blind upload. Feasibility is checked against your hardware first, so it only offers what your machine can actually run.
The name
"Covey leader to Raven…
talk to me, Johnnie."
The name descends straight from Talk To Me Johnnie, John Welbourn's old strength blog — "It's a long road." Hard lessons, strong advice, no bullshit; the title itself a radio call lifted from a Rambo film.
We took the attitude and the cadence of the name — and pointed both at a terminal.
Not affiliated with John Welbourn or Power Athlete. We just owe them the name and the attitude.