claude-code - 💡(How to fix) Fix [FEATURE] Streaming response hook for external voice and accessibility integrations

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Root Cause

Other tools (OpenAI Realtime API, Gemini Live) solve this with voice-to-voice streaming at the model level. Claude Code cannot use that approach because it would lose local project context, file access, and tool calls -- the entire reason to use Claude Code over a raw API.

Fix Action

Fix / Workaround

I built the Stop hook workaround described above. It proves the pipeline is sound but the latency is architectural -- there is no way to make it faster without streaming output.

RAW_BUFFERClick to expand / collapse

Preflight Checklist

  • I have searched existing requests and this feature hasn't been requested yet
  • This is a single feature request (not multiple features)

Problem Statement

Claude Code's only response exit point is the Stop hook, which fires after a full response completes. There is no way for an external tool to receive response tokens as they stream.

I built a browser-based voice interface for Claude Code: push-to-talk mic → transcript injected into active Claude Code session → Stop hook captures the completed response → browser speaks it back. The pipeline works, but every exchange takes 30-60 seconds of silence before the browser receives anything. The full response must finish before a single word exits.

For accessibility users who rely on voice as their primary input method, this latency makes Claude Code's local context -- its greatest strength -- effectively unusable in a voice workflow.

Proposed Solution

A PostResponseChunk hook that fires as tokens are generated, delivering partial response text to an external process in real time.

Or a local SSE endpoint from the Claude Code process that external tools can subscribe to and receive streaming output.

Either would allow a browser, voice UI, or accessibility tool to display and speak Claude Code's response as it generates -- the same experience users currently get visually in the terminal.

Alternative Solutions

I built the Stop hook workaround described above. It proves the pipeline is sound but the latency is architectural -- there is no way to make it faster without streaming output.

Other tools (OpenAI Realtime API, Gemini Live) solve this with voice-to-voice streaming at the model level. Claude Code cannot use that approach because it would lose local project context, file access, and tool calls -- the entire reason to use Claude Code over a raw API.

Priority

Critical - Blocking my work

Feature Category

Developer tools/SDK

Use Case Example

USE CASE EXAMPLE:

  1. Developer with a motor disability uses voice as their primary input method
  2. They speak a question about their codebase into a browser interface
  3. The transcript is injected into the active Claude Code session
  4. Claude Code answers using full local project context, memory, and tools
  5. With streaming: the browser begins speaking the response within 1-2 seconds
  6. Without streaming: the browser waits 30-60 seconds in silence, then plays the full response at once

The difference between step 5 and step 6 is the difference between a usable tool and an unusable one.

Additional Context

Existing issue #61574 asks for TTS readback inside Claude Code. This request is different -- it asks for an output hook so external tools can build their own integrations. The hook approach is more flexible: it enables voice UIs, live dashboards, remote displays, and any accessibility tool without Anthropic having to build each one.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING