Feature request: Multimodal output — voice synthesis for explanations, text for code
Summary
When working with Claude Code via voice input (/voice), the experience is one-directional: I speak, Claude responds with text. It would be transformative if Claude could speak back — but only the parts that make sense as audio.
The problem
Simply piping all output through TTS is impractical. Code blocks, file paths, diffs, and commands are useless as audio. But high-level explanations, design ideas, and summaries are perfect for voice.
Proposed solution
Claude should semantically separate its responses into two channels:
- Voice channel: Natural language explanations, ideas, summaries, status updates — things you'd say to a colleague
- Terminal channel: Code, diffs, file paths, commands, structured data — things you need to read and copy
The model already understands the difference — it just needs a way to express it. For example, a <speak> tag or a dedicated output stream that hooks/plugins can route to a TTS engine.
Why this matters
- No other CLI coding agent does this. It would be a genuine differentiator.
- Voice input is already shipped (
/voice). Completing the loop with intelligent voice output makes the interaction truly conversational. - Developers working on architecture, planning, and code review would benefit enormously — these tasks are naturally conversational, not text-heavy.
Example
[VOICE] "I'll extract the speed manager into a separate service that listens
for hotkeys and controls pause state. This removes the logic from the HUD footer
and follows the single-responsibility pattern we use elsewhere."
[TERMINAL]
// Code diff, file paths, implementation details shown as textThis issue has 3 comments on GitHub. Read the full discussion on GitHub ↗