Voice mode: UI renders nothing on Windows despite successful transcription and API response
Bug Description
Voice mode records and transcribes audio successfully, the API receives the transcript and responds (including executing tool calls), but the terminal UI never renders any output. The screen remains blank/unchanged after releasing the Space key.
Environment
- Claude Code version: 2.1.83
- OS: Windows 11 Pro (10.0.26200)
- Terminal: Windows Terminal (Git Bash shell)
- Sox: v14.4.2 (installed via Scoop,
AUDIODRIVER=waveaudioset)
Steps to Reproduce
claude --debug-file voice-debug.log/voiceto enable voice mode- Hold Space, speak, release Space
- UI shows no response -- screen stays at the input prompt
Debug Log Evidence
The debug log confirms the entire pipeline works backend-side:
Recording and transcription succeed:
[voice_stream] TranscriptText: "You hear me? Are you listening to me?"
[voice] onTranscript: isFinal=true text="You hear me? Are you listening to me?"
[voice] Final transcript assembled (37 chars): "You hear me? Are you listening to me?"
[voice] Injecting transcript (37 chars)
API receives and responds:
Stream started - received first chunk
Multiple tool calls (Bash, Read) are executed across several API rounds.
But the renderer never repaints:
High write ratio: blit=0, write=37408 (100.0% writes), screen=606x120
High write ratio: blit=0, write=37421 (100.0% writes), screen=606x120
High write ratio: blit=0, write=37594 (100.0% writes), screen=611x120
blit=0 persists throughout -- the screen buffer is written to but never flushed to the terminal. Normal text input in the same session renders fine; only the voice injection path fails to trigger a UI repaint.
Expected Behavior
After releasing Space, the transcribed text should appear in the input area and Claude's response should render on screen, same as typing the text manually.
Actual Behavior
Nothing visible happens. The input prompt remains as-is. The backend fully processes the request (confirmed via debug log) but the Ink-based TUI does not repaint.
Additional Notes
sox -dinitially failed with "no default audio device configured" untilAUDIODRIVER=waveaudiowas set as a user environment variable. This may or may not be related.- Normal (typed) interactions render correctly in the same terminal.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗