[BUG] After exiting claude in the wsl terminal, an input error occurred

Resolved 💬 4 comments Opened Mar 25, 2026 by puzzle1404 Closed Mar 26, 2026

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?

In WSL (Windows Subsystem for Linux), after enabling claude in the terminal and exiting, entering ctrl+c in the terminal will change it to 9;5u9

What Should Happen?

ctrl+c can work success

Error Messages/Logs

Steps to Reproduce

这是一个经典的终端转义序列污染问题。Claude Code 退出后没有正确恢复终端状态,导致终端进入了某种特殊的键盘输入模式(具体是 "kitty keyboard protocol" 或类似的增强键盘模式)。

原因: Claude Code 启用了扩展键盘协议(如 \033[?2004h bracketed paste 或 \033[>4;1m kitty keyboard protocol),退出时没有正确禁用,导致 Ctrl+C 等按键被编码成 9;5u 这样的序列。

立即修复(在当前损坏的终端中):

printf '\033[?2004l' # 禁用 bracketed paste
printf '\033[>4;0m' # 禁用 kitty keyboard protocol
printf '\033[<u' # 退出 kitty keyboard mode
printf '\033=\033>' # 重置 keypad 模式
stty sane # 恢复 stty 设置
reset # 终极重置

或者直接运行:
reset

如果 reset 也无效(因为 Ctrl+C 打印乱码),可以盲打:
reset
然后回车(不需要看到输出)。

根本解决方案:

这是 Claude Code 的已知 bug。可以在 shell 的配置文件(~/.bashrc 或 ~/.zshrc)里加一个退出后自动修复的函数:

# 在 ~/.bashrc 末尾添加
claude() {
command claude "$@"
printf '\033[?2004l\033[>4;0m\033[<u'
stty sane 2>/dev/null
}

这样每次 claude 命令退出后都会自动清理终端状态。

Claude Model

None

Is this a regression?

Yes, this worked in a previous version

Last Working Version

_No response_

Claude Code Version

2.1.83

Platform

Other

Operating System

Ubuntu/Debian Linux

Terminal/Shell

Terminal.app (macOS)

Additional Information

_No response_

View original on GitHub ↗

This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗