Recipes / Claude Code use cases
Claude CodeSkillDev & code

Run Claude Code by voice with a chief agent that delegates

A developer with ADHD talks to one "chief" Claude Code agent by voice, fully local. The chief doesn't write code: it hands each task to a worker Claude session with a written spec, announces when work lands, asks him decisions out loud, and parks unanswered questions on a "waiting on" list. A Stop hook keeps the voice loop from silently dropping back to text.

From u/parkskier426 (r/ClaudeCode) on Reddit · Nov 2026

Setup timeHe says he has worked by voice for a few months and iterated most on keeping the loop alive
CostFree local tools (whisper.cpp, sox, Kokoro or Piper) plus your Claude plan; a Stream Deck is optional
RunsWhen you have 5 or more coding tasks running and keep switching tabs to answer agents
NeedsClaude Code, Local speech to text: sox (rec) plus whisper.cpp, Local text to speech: Kokoro (he also mentions Piper), Orca, or another way to run worker Claude Code sessions in their own worktrees, A Claude Code Stop hook, Optional: Stream Deck keys for push-to-talk and mute
Last updated2026-11-07

What the source did

  • He has worked with Claude Code by voice for a few months: local speech to text (Whisper) and local text to speech, so nothing leaves his machine. The post says Piper; his later comment says Kokoro by default.
  • It's a Claude Code skill: a SKILL.md that tells Claude how to run the loop, plus shell and Python scripts that do the audio.
  • rec (from sox) records until about 3 seconds of silence, whisper.cpp transcribes it, and the audio file is overwritten and deleted right after.
  • One voice-turn script speaks Claude's reply and then listens; Claude calls it through Bash, and what he says comes back as the tool output, which is basically his next message.
  • A turn policy: Conversation (speak, then listen), Announce (speak only, for background updates like tests passing) and Auto (Claude picks per turn). If it asks and he stays quiet, it assumes he's busy, not gone, and keeps working.
  • Speech rules: a few sentences per reply, no markdown or code read aloud, say "on it" before long tasks, and put anything long in a markdown doc with a short spoken summary.
  • The fix that made it reliable: a Stop hook. The record and speak scripts write small receipts; if he spoke last and Claude hasn't spoken back, the hook blocks the turn and tells Claude the exact command to run.
  • He talks to one "chief" agent that delegates to other Claude sessions running in Orca. The chief doesn't write code; it hands each task to a worker with a written spec and tracks who's doing what.
  • When a worker finishes, the chief announces it. When a worker needs a decision, the chief asks out loud and waits; if he doesn't answer, it parks the question on a "waiting on parkskier426" list.
  • Standing rules he says once ("don't push to an MR that's already approved," "don't post review requests for me") go into the chief's rules and every worker's spec.
  • Workers each use their own worktree. Each writes a full markdown summary of its session and hands the chief a short version.
  • An audio lock stops two sessions talking over each other; Stream Deck keys mute the mic or speaker for meetings, and muted speech turns into notifications. Small markdown "context" files give each project standing background, and a Siri launcher opens a terminal already in voice mode.
  • Why it works for him: he has ADHD, and with 5 or more tasks running he was constantly switching tabs to answer agents.
“Now the context switching mostly happens on the chief's side, not in my head.”— u/parkskier426 (r/ClaudeCode), Reddit

Summary written by Agent Cookbook from the original post. See the original for the full context. How we source recipes

Our notes

What it takes
Claude Code, sox and whisper.cpp for local speech to text, Kokoro (or Piper) for speech, a Stop hook, and worker sessions in their own worktrees (he uses Orca). He hasn't published his skill files; ours follows his description.
Where it breaks
Claude drifting back to plain text deep in a session so the mic never reopens (fixed with the Stop hook), sessions talking over each other without an audio lock, and no way to interrupt it mid-reply yet.
Human checkpoint
The chief asks decisions out loud and parks unanswered ones on a waiting list instead of guessing. Pushing, merging, posting review requests and deleting wait for your yes.
Tools involved
Claude Code, Local speech to text: sox (rec) plus whisper.cpp, Local text to speech: Kokoro (he also mentions Piper), Orca, or another way to run worker Claude Code sessions in their own worktrees, A Claude Code Stop hook, Optional: Stream Deck keys for push-to-talk and mute

✓ Verified Source link checked and still live. Notes by Thomas, editor. How we verify

Copy the prompt

Ours Our version, based on what u/parkskier426 described in his post and comments. He hasn't published his SKILL.md or scripts. Fill in the [BRACKETS].

Create a Claude Code skill called voice-chief. Build the scripts, then the SKILL.md. Everything runs locally. AUDIO SCRIPTS - listen: record with `rec` (sox) until ~3 seconds of silence, transcribe with whisper.cpp, print the text, then overwrite and delete the audio file. - speak: read text aloud with Kokoro (local). - voice-turn: speak the reply passed in a heredoc, then listen and print what I said. Write a small receipt file each time it speaks or listens. - Use one audio lock around each speak+listen exchange so two sessions never talk over each other. - If a mute flag is set, skip audio and send a desktop notification instead. TURN POLICY (put this in SKILL.md) - Conversation: every reply speaks, then listens. - Announce: background updates are spoken only, no listening. - Auto: if you need my answer, speak and listen; if it's an FYI, speak and keep working. If I'm silent, assume I'm busy and keep going. - Keep spoken replies to a few sentences. Never read markdown or code aloud. Say "on it" before long tasks. Put anything long in a markdown file and give me a short spoken summary. STOP HOOK - Before a turn ends, check the receipts. If I spoke last and you haven't spoken back, block the stop and print the exact voice-turn command to run. If the mic heard silence, allow the stop. CHIEF CONTEXT - As chief you don't write code. Give each task to a worker session in its own worktree with a written spec. - Track every worker. Announce when one finishes. When one needs a decision, ask me out loud and wait; if I don't answer, add it to a "waiting on me" list and keep going. - When I give a standing rule, add it to your rules and to every worker spec. - Workers write a full markdown summary of their session and send you a short version. APPROVALS - Never push, merge, post, request reviews, or delete anything without my yes. Sending, buying, posting and deleting always need a human.

Approval rule

🛡
The chief asks decisions out loud and waits; unanswered questions are parked, not guessed. Standing rules he gives once (like not pushing to an MR that's already approved, or not posting review requests for him) go into every worker's spec. In our version pushing, merging, posting and deleting always need your yes.

Set it up

  1. Install sox, whisper.cpp and Kokoro, and check each runs locally.
  2. Have Claude Code build the listen, speak and voice-turn scripts with receipts and an audio lock.
  3. Write the SKILL.md with the turn policy and speech rules.
  4. Add a Stop hook that blocks a turn when you spoke last and Claude hasn't spoken back.
  5. Set up worker sessions in their own worktrees (he uses Orca) and a chief context that delegates with written specs.
  6. Give the chief your standing rules once; check they show up in each worker's spec.
  7. Add push-to-talk and mute keys (he uses a Stream Deck) so meetings fall back to notifications.

Common failures

⚠
  • Claude answers in plain text deep in a long session and the mic never reopens. Prose instructions didn't fix it for him; the Stop hook did.
  • Two sessions talking over each other, or one session's mic picking up another's reply. He added an audio lock around the whole exchange.
  • Long replies read aloud. Keep speech to a few sentences and put detail in a markdown file.
  • The chief bloating its context with worker detail. His workers send a short summary and keep the full write-up in a file.
  • Expecting to interrupt it mid-sentence. He says he can't yet with local open-source tools.

Variations

  • Voice only, no chief: use the voice loop in a single Claude Code session first.
  • Text chief: keep the delegation and "waiting on me" list but type instead of talk.
  • Hands-free start: a launcher script that opens a terminal with Claude already in voice mode (he uses Siri).

Common questions

Where does this setup come from?

u/parkskier426 (r/ClaudeCode) shared it on Reddit (2026-11-06). Read the original post.

What do I need to set it up?

Claude Code, Local speech to text: sox (rec) plus whisper.cpp, Local text to speech: Kokoro (he also mentions Piper), Orca, or another way to run worker Claude Code sessions in their own worktrees, A Claude Code Stop hook, Optional: Stream Deck keys for push-to-talk and mute. Setup time: He says he has worked by voice for a few months and iterated most on keeping the loop alive. Cost: Free local tools (whisper.cpp, sox, Kokoro or Piper) plus your Claude plan; a Stream Deck is optional.

What does the agent need my approval for?

The chief asks decisions out loud and waits; unanswered questions are parked, not guessed. Standing rules he gives once (like not pushing to an MR that's already approved, or not posting review requests for him) go into every worker's spec. In our version pushing, merging, posting and deleting always need your yes.

What is this setup for?

Running several Claude Code tasks at once without juggling tabs: you talk to one chief agent, it hands each task to a worker session, speaks when work lands and asks you decisions out loud. He built it partly because he has ADHD and the context switching was taxing.

Which tools does it use?

Claude Code with a custom skill, sox (rec) and whisper.cpp for speech to text, Kokoro for speech (his post also mentions Piper), a Claude Code Stop hook, and Orca to run the worker sessions in their own worktrees. Stream Deck keys for push-to-talk and mute are optional.

Does it save money or time?

He gives no money or time figure. The voice tools are free and local; you still pay for your Claude plan. What he describes is less context switching with 5 or more tasks running.

How do I give it access?

Everything runs on your machine: the microphone, Bash permission for Claude to run the voice-turn script, and a worktree per worker. Keep pushing, merging and posting review requests behind your yes; he gives standing rules like "don't push to an MR that's already approved" once, and the chief adds them to every worker spec.

Related setups: Voice notes cleaned by Claude, run by Codex → · Kanban board for parallel coding agents → · Get pinged when an agent needs input → · Subagent task graphs in parallel worktrees → · A Grok Bot front door to Claude Code sessions →

Get the 10 best agent setups. Free.

Plus new recipes every week. One email, no spam.

Unsubscribe anytime. Privacy

Related recipes

Same job: Dev & code

Also uses Claude Code

In these guides: More Claude Code use cases → · Parallel coding agents →

Read original ↗