[BUG] TUI Raw Input Mode completely blocks external dictation and accessibility text injection streams
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Recent updates to Claude Code's terminal infrastructure (specifically the implementation of the fullscreen Terminal User Interface / TUI) have completely broken compatibility with external accessibility and dictation tools (e.g., Wispr Flow, Superwhisper).
When Claude Code is active in the terminal, it intercepts and filters all keyboard events via its custom raw keyboard hook handler (used to power autocompletion dropdowns and line history). Because it intercepts literal hardware key scans rather than accepting standard text strings, it completely drops, blocks, or truncates text being programmatically injected into the prompt cursor line by voice dictation utilities.
This creates a serious productivity and accessibility bottleneck, forcing developers to dictate text into a separate notepad window and manually copy/paste it into Claude Code. Furthermore, for users operating in remote developer environments (like VS Code Remote-SSH), the native /voice mode cannot be used as a workaround since the remote VM lacks physical microphone access.
The terminal text-entry layer needs to properly expose its input buffer to standard OS accessibility hooks and text injection streams.
Steps to Reproduce
- Open a terminal (local or remote) inside VS Code or a native terminal emulator.
- Launch
claude. - Focus the Claude Code prompt input bar.
- Attempt to inject a text stream using an external dictation tool (like Wispr Flow).
Expected Behavior
The prompt input bar should accept incoming text string data streams seamlessly, allowing standard accessibility and dictation utilities to populate the prompt line just like any standard shell environment.
Environment Context
- OS: Windows / macOS
- Claude Code Version: Latest active production release
- Terminal Integration: VS Code Integrated Terminal / Native Terminal
What Should Happen?
Recent updates to Claude Code's terminal infrastructure (specifically the implementation of the fullscreen Terminal User Interface / TUI) have completely broken compatibility with external accessibility and dictation tools (e.g., Wispr Flow, Superwhisper).
When Claude Code is active in the terminal, it intercepts and filters all keyboard events via its custom raw keyboard hook handler (used to power autocompletion dropdowns and line history). Because it intercepts literal hardware key scans rather than accepting standard text strings, it completely drops, blocks, or truncates text being programmatically injected into the prompt cursor line by voice dictation utilities.
This creates a serious productivity and accessibility bottleneck, forcing developers to dictate text into a separate notepad window and manually copy/paste it into Claude Code. Furthermore, for users operating in remote developer environments (like VS Code Remote-SSH), the native /voice mode cannot be used as a workaround since the remote VM lacks physical microphone access.
The terminal text-entry layer needs to properly expose its input buffer to standard OS accessibility hooks and text injection streams.
Steps to Reproduce
- Open a terminal (local or remote) inside VS Code or a native terminal emulator.
- Launch
claude. - Focus the Claude Code prompt input bar.
- Attempt to inject a text stream using an external dictation tool (like Wispr Flow).
Expected Behavior
The prompt input bar should accept incoming text string data streams seamlessly, allowing standard accessibility and dictation utilities to populate the prompt line just like any standard shell environment.
Environment Context
- OS: Windows / macOS
- Claude Code Version: Latest active production release
- Terminal Integration: VS Code Integrated Terminal / Native Terminal
Error Messages/Logs
N/A
Steps to Reproduce
Using my program, it worked at one time... you broke it :)
Claude Model
Sonnet (default)
Is this a regression?
Yes, this worked in a previous version
Last Working Version
You tell me
Claude Code Version
2.1.280
Platform
Anthropic API
Operating System
Ubuntu/Debian Linux
Terminal/Shell
Other
Additional Information
I have been using Wispr Flow for a very long time with no issues, and then all of a sudden, a recent Claude Code update completely broke it. Please fix this input handling, I rely heavily on this voice dictation setup for my daily coding workflow and need it functional again!
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗