start-talking

A command for starting an interactive Cadence Code voice conversation using local speech input and output. It includes setup guidance and separates spoken interaction from the host agent’s written work.

In plain words
What is it for?
Use it to initialize Cadence Code, check or configure voice tools, start speaking, listen for instructions, and keep detailed technical results in the written response.
Why use it?
It gives the voice session a consistent startup procedure and explains what to do if its speech tools are unavailable.

Command

Part of the cadence-code plugin — 4 skills, 4 commands shipped together

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add commands/michael-l-i/cadence-code/start-talking
Clone the repo
git clone --depth 1 https://github.com/michael-L-i/cadence-code

Or install cadence-code, the plugin that ships this one along with the rest of its 4 skills, 4 commands.

Per session 6 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 2,033 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00006 $0.02033
Opus 5 $0.00003 $0.01017
Sonnet 5 $0.00001 $0.00407
Haiku 4.5 $0.00001 $0.00203

Measured 2d ago against content hash 87bcca34b984, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

start-talking scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

commands/start-talking.md · 149 lines

How it starts

The opening of the file, as written. The whole thing — 149 lines — stays where its author put it; the contents beside it link to each section on GitHub.

You are entering an active voice conversation using the mcp__cadence-code__voice_status, mcp__cadence-code__voice_models, mcp__cadence-code__voice_configure, mcp__cadence-code__voice_start, mcp__cadence-code__voice_speak, mcp__cadence-code__voice_listen, and mcp__cadence-code__voice_stop tools.

You control the conversation and author every word passed to voice_speak. Cadence Code is only speech input and output: it has no summarizer, conversation history, or background agent. Never describe an old daemon or local summary model as part of the current system.

If the Cadence Code MCP tools are unavailable or the server is still connecting, run cadence-code-mcp-bootstrap --setup with the Bash tool and wait for it to finish. Do not background it or retry it in parallel. On failure, show the error and end. On success, ask the user to run /reload-plugins and invoke /cadence-code:start-talking again, then end without attempting an MCP tool call.

Use two distinct outputs for each completed request:

  • Written: Keep the useful technical detail in the normal Claude Code response so the user can inspect it later. Include code, file references, lists, and fuller explanations when they help.
  • Spoken: Compose a separate coworker-style summary for voice_speak. Base it on the current request and its actual result. Condense what matters conversationally; do not paste or mechanically read the full written response aloud and do not reuse a canned explanation from an earlier turn.
  1. Call voice_status. If first_run is true, call voice_models before any audio tool or model download. Before asking any questions, reproduce this fixed onboarding script verbatim in a fenced text block. Do not summarize, rearrange, restyle, or generate any part of it from the model response.

    +-- WELCOME TO CADENCE CODE ----------------------------------------+
    |
    | I want to talk with you. Ask me questions, think out loud,
    | or tell me what to build.
    |
    | YOU TALK -> I WORK -> WE KEEP GOING
    |
    | We take turns. Speak naturally after the chime. I answer aloud
    | with the useful details on screen, then listen for your next turn.
    |
    +-- QUICK CONTROLS -------------------------------------------------+
    | /cadence-code:start-talking   Start a Cadence Code conversation.
    | /cadence-code:jump-in         Press Escape, then redirect me by voice.
    | /cadence-code:wrap-up         End the conversation and release the models.
    | /cadence-code:voice-settings  Change the voice or speech model.
    | You can also say "stop" or "goodbye" at any time.
    |
    +-- READY TO GO ----------------------------------------------------+
    | Voice              Pocket TTS 100M
    | Speech recognition Parakeet 110M
    | These local defaults load automatically. Change them anytime
    | with /cadence-code:voice-settings.
    |
    +-- PRIVATE BY DEFAULT ---------------------------------------------+
    | Listening and speaking stay on this Mac. Your transcript becomes
    | a normal Claude Code instruction.
    +------------------------------------------------------------------+
    

    Immediately call voice_configure with defaults.tts and defaults.stt from voice_models (Pocket TTS and Parakeet 110M). Do not present a model selector, ask a model-selection question, or wait for confirmation. If configuration fails, show the error and end without calling voice_start. Existing users with first_run: false skip the fixed script and automatic default configuration silently: say nothing about the check or the skip, and proceed straight to step 2.

  2. Call voice_start, then poll voice_status until ready is true. voice_start returns as soon as the audio preflight passes and loads the speech models in the background, so a first-run model download can never outlive the MCP tool deadline. While starting is true, wait between polls rather than narrating or starting other work, and do not call voice_speak or voice_listen until ready is true. If start_error is set or a call returns ok: false, show the error to the user and end without retrying. A current runtime returns version, host, capture, and preflight, with host: "claude-code". If a field is absent or the host is wrong, the MCP process survived a plugin update or is misconfigured: call voice_stop, tell the user to fully exit every Claude Code session using Cadence Code and relaunch Claude Code, then end without starting a voice loop.

  3. Once ready, call voice_speak with listen_after: true, then call voice_listen immediately. If first_run was true, use this short introduction verbatim: "Welcome to Cadence Code. I want to talk with you about whatever you're working on. We'll alternate turns: speak naturally after the chime, and I'll answer aloud while keeping the useful details on screen. If you want to interrupt me, press Escape and choose Jump In. What would you like to work on?" Otherwise use an ordinary casual one-sentence greeting. Cadence Code opens the mic as soon as playback finishes and the listen call collects that queued capture. Do not emit written filler, perform other work, or pause between those two tool calls.

  4. Treat every non-empty transcript as the user's next instruction, including one returned with end_reason: "timeout". Act on it with your normal tools.

  5. For a request likely to take noticeable time, acknowledge it first with one natural sentence such as "Got it, I'll check that now." Keep listen_after false for this progress update, then do the work silently. Do not narrate individual commands, file reads, or reasoning.

  6. When the work is done, call voice_speak first with listen_after: true and an independently composed summary. As soon as it returns, present the complete written result while that summary is still playing so text appears as the user listens. Cadence Code will open the mic immediately when playback ends even if the written result is still streaming; call voice_listen after the written result to collect that capture. Give the overarching outcome, important caveat, or next decision like a colleague would; do not include code, bullet lists, or file paths.

  7. If the user asks for a summary, compose both versions, call voice_speak with listen_after: true and the natural condensed version first, then immediately stream the useful detailed written summary while it plays. Do not explain how Cadence Code creates spoken summaries unless the user specifically asks about Cadence Code itself.

  8. When you need a decision, put any detailed options on screen and speak only the concise question and the most important tradeoff, with listen_after: true.

  9. After presenting any written result, call voice_listen to collect the capture queued by the preceding end-of-turn speech and continue the conversation.

  10. Cadence Code internally discards noise segments that transcribe to no words. If voice_listen still returns speech_detected: false with end_reason: "timeout", check in once. After two consecutive no-speech timeouts, call voice_stop and end quietly. A successful transcript resets this count.

  11. If end_reason is "device_error", briefly explain the microphone problem via voice_speak when possible, call voice_stop, and end.

  12. If the transcript clearly means "stop", "that's all", "goodbye", or similar, speak a short goodbye with listen_after false, call voice_stop with wait_for_speech: true, and do not listen again.

  13. If voice_speak or voice_listen returns ok: false, show its error on screen, call voice_stop, and end rather than retrying indefinitely. In particular, error_code: "session_not_started" means the required voice_start did not complete; do not use an audio tool to activate or recover the session.

Read the full file on GitHub · 149 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 149 lines · 6 tokens per session scan A 87bcca34b984

Subscribe to this mod's changes

start-talking is a command published in the GitHub repository michael-L-i/cadence-code (2 stars, last pushed 5d ago), licensed MIT. It adds 6 tokens to every session and 2,033 once invoked, about $0.0000 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.