[BUG] Windows: double Ctrl-C never exits — "Press Ctrl-C again to exit" shown, second press ignored, process left wedged
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report
- [x] I am using the latest version of Claude Code
What's Wrong?
On the native Windows build, pressing Ctrl-C twice does not exit Claude Code. The first press prints Press Ctrl-C again to exit; the second press is ignored. The process stays alive and the TUI stops responding to input entirely.
After the failed exit, the console reverts to line-buffered echo in front of the wedged TUI, so typed characters are echoed at the cursor — painting over Claude's own frame — and Enter does nothing. It reads as if the terminal has turned into a dead text box:
clearClaude account with subscription · Pro, Max, Team, or Enterprise
8eij. Anthropic Console account · API usage billing
Press Ctrl-C again to exitecho FAST_EXIT_WORKED
(Text typed after the failed exit — clear, echo … — echoed into the menu rows.)
The only way out is killing the process or closing the terminal.
What Should Happen?
The second Ctrl-C exits Claude Code and returns to the shell prompt, as it does on macOS/Linux.
Steps to Reproduce
- Windows 11 (build 26200), native install, Windows PowerShell 5.1 in Windows Terminal
- Run
claude— reproduced at the first-run screens (theme picker, and "Select login method") - Press
Ctrl-C→Press Ctrl-C again to exitappears - Press
Ctrl-Cagain (tried both ~300ms and ~2s after the first) - Claude does not exit; the TUI no longer responds to keys; typed text echoes over the frame
Error Messages/Logs
No crash or error output — the process simply never exits.
Evidence that this is not terminal- or transport-specific. I found this while debugging a remote-terminal tool, so I ran the control experiment in a plain local Windows Terminal with real keyboard events and nothing in the input path:
- Input delivery verified first: arrow keys moved the theme-picker selection immediately.
- Two real
Ctrl-Ckeystrokes 300ms apart →Press Ctrl-C again to exitshown, thenGet-Process claude→ still running. - Same behaviour through the remote terminal. With two presses ~2s apart, the "press again" message printed twice — i.e. each press is treated as a first press rather than the second one counting toward exit.
So the second press is being received, but never counted toward exiting.
Scope note: verified at the first-run/theme-picker and login screens. I did not verify the main REPL after login.
Claude Code Version
2.1.235 (Claude Code)
Platform
Anthropic API
Is this a regression?
Unknown — first Claude Code install on this machine.
Environment
- OS: Windows 11, build 26200
- Shell: Windows PowerShell 5.1, in Windows Terminal
- Install: native Windows build (
C:\Users\<user>\.local\bin\claude.exe) - Account: standard (non-administrator) user