Skip to content
Skip to content
Product / CritiqueCode8 min read

Talk to Code with CritiqueCode Voice Mode

Speak to the author and the reviewer. Qwen3 ASR 0.6B turns speech into the same prompts and commands as typing.

Repath Khan

Talk to code

Voice mode on CritiqueCode.

critique.sh

Direct answer

CritiqueCode voice mode lets you speak to the author and the reviewer in the same session as typing. /voice records one prompt (Enter to stop). /voice on keeps listening after each reply. critique-code --voice starts already listening. Qwen3 ASR 0.6B transcribes the clip. Spoken review, repair, ship, and exit still run as commands. An empty clip drops you back to the keyboard.

Hands on a keyboard are not always the fastest way to steer a coding agent. A long intent is easier to say than to type. A review command is easier to bark than to slash. Voice mode is dictation into CritiqueCode, not a second product and not a spoken assistant that reads the reply aloud.

$0.000003/s
Audio billed on Inference, not chat tokens
0.6B
Qwen3 ASR model used for transcription
Enter
Stops a clip; empty clip returns to typing

You already talk to CritiqueCode in the repository you mean to change. Slash lines stay in the TUI. They are never sent to the model. Voice uses that same path. The recorder captures a WAV clip. The Inference API transcribes it. The resulting text is an author line, or a parsed command if you said one.

That last part is the product difference. Voice is not a sidecar that dumps words into a text box and hopes you press send. If you say review, repair, ship, or exit, the session treats them the way typed review and /review already do. You can talk the author through a change, then talk the controller into evidence.

Install @critiquedotsh/harness, cd into the git repo, and connect Critique Inference with critique-code login (or keep an OpenRouter key). Grant the terminal microphone access when the OS asks. Then start listening.

Start voice, or keep listening

One-shot /voice records a single prompt. /voice on repeats after each reply.

critique-code --voice
# or, inside an already-open session:
# /voice
Commands in session
Slash lines never go to the model. Spoken command words match the typed ones.
InputWhat happens
/voiceRecord one prompt. Press Enter to stop.
/voice onKeep listening after each reply.
/voice offReturn to the keyboard.
critique-code --voiceStart the session already listening.
Spoken review / repair / ship / exitSame as typing those commands.
Empty clipDrops /voice on back to typing.

Transcription is not a chat completion. CritiqueCode posts audio to POST /api/v1/audio/transcriptions with model qwen/qwen3-asr-0.6b. OpenRouter describes Qwen3 ASR 0.6B as a compact speech recognizer with multilingual language identification across 30 languages and 22 Chinese dialects. The Qwen3-ASR technical report publishes the 0.6B and 1.7B family as Apache-2.0 open weights.

On Critique Inference, that route bills $0.000003 per second of audio (the OpenRouter DeepInfra list rate we resell). A 20-second prompt is about $0.00006. It does not consume the PR review credit pool, and it does not use /1M token rates. Author and review generations still bill as chat. ASR is only the speech-to-text hop.

Claude Code already has a /voice surface. Official docs call it voice dictation: enable with /voice, then hold Space (or tap in tap mode) so speech streams into the prompt input. You can mix voice and typing in one message. Anthropic positions it as dictation, not a spoken reply. Third-party writeups note it needs a Claude.ai account, and that transcription is not billed as plan tokens.

CritiqueCode is the same category of idea with a different contract. We record a clip, transcribe it, then treat the text as a full author line or a command. There is no live dimmed-text stream into a half-typed prompt. There is a listen loop (/voice on) so you can stay off the keyboard between turns. Spoken review is the evidence harness, not a word inserted at the cursor.

Two /voice implementations
Same search intent. Different session contracts.
Claude Code details from Anthropic’s voice-dictation docs. CritiqueCode details from the shipping /voice path in @critiquedotsh/harness.
Claude CodeCritiqueCode
Enable/voice (hold or tap)/voice, /voice on, --voice
Stop a clipRelease Space, or tap againEnter
Transcript lands asLive insert into the promptA completed author line or command
Mix type + talk mid-promptYes, at the cursorNo. Finish the clip, then type.
Spoken review / shipWords in the prompt unless you send a commandParsed as the same commands as typing
ASR / billingAnthropic dictation; not plan tokensQwen3 ASR 0.6B at $0.000003/s on Inference
AccountClaude.ai (not API-key-only setups)Critique Inference login or OpenRouter key

If you already live in Claude Code, keep it. Pair it with the Critique CLI sidecar when you want an independent finish pass. Switch to CritiqueCode when you want Critique to author, force review, and now take the prompt from a microphone. Voice is not a reason to swap harnesses by itself.

It is not text-to-speech. The author still prints. It is not always-on ambient listening with a wake word. You start a clip; Enter stops it. It is not a substitute for /review. Saying “looks good” is still a prompt. Saying “review” is the command. It will not work without a TTY, a microphone, or a transcription key. Remote SSH sessions fail unless the mic is local to that machine.

Talk to CritiqueCode in the repo you mean to change
Install @critiquedotsh/harness, run critique-code login, then critique-code --voice. Say the prompt. Say review when you mean review.