[BUG] Cursor renders in wrong location (outside input box) after submit / new response / resize — vim mode, Linux + macOS
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?
The visible white block cursor does not appear in the prompt input box. Instead it renders up in the conversation / text-summary area (above the input). After a redraw it is left misplaced outside the input box rather than positioned where I'm typing. This happens with vim mode enabled.
What Should Happen?
After every redraw, the cursor should be positioned inside the input box at the text caret location, not in the conversation/text-summary area above it.
Error Messages/Logs
None — purely a rendering/cursor-placement issue, no errors emitted.
Steps to Reproduce
- Launch
claudein a terminal with vim editor mode enabled (/vim). - Trigger any full redraw — each of these reproduces it independently:
- Press Enter to submit a prompt
- Let a new response stream in from Claude
- Resize the terminal window
- Observe: the white block cursor appears in the conversation / text-summary area instead of in the input box.
Reproduces in Alacritty, Ghostty, and GNOME Terminal, and on both Linux and macOS → not terminal- or OS-specific. Setting CLAUDE_CODE_NATIVE_CURSOR=1 does not fix it (cf. #63824). Turning vim mode off makes it behave a lot better. Likely related to #910 / #36765 (native-cursor handling) and #65810 (vim-mode cursor).
Claude Model
Opus
Is this a regression?
Yes, this worked in a previous version (exact last-working version not recorded).
Claude Code Version
2.1.169 (Claude Code)
Platform
Anthropic API
Operating System
Other Linux (Arch Linux, kernel 7.0.11-arch1-1, x86_64) — also reproduces on macOS
Terminal/Shell
Other (Alacritty / Ghostty / GNOME Terminal)
Additional Information
- Regression: did not happen on older versions.
- Claude Max subscription (auth via Anthropic API).
- No tmux/screen multiplexer.
- All three terminals run in truecolor (
COLORTERM=truecolor). - Shell: fish.
- Turning vim mode off significantly improves the behavior, implicating vim-mode cursor handling.
9 Comments
Update: tested with vim mode off (default editor mode). The cursor behaves a lot better — the hardware cursor stays in/near the input box across submit, streaming responses, and resize, rather than parking at the bottom of the terminal.
This strongly implicates vim-mode cursor handling as the cause (consistent with #65810). The bug is specific to (or at least dramatically worse with) vim editor mode enabled.
Additional environment: this also reproduces on macOS (same behavior — hardware cursor parks at the bottom of the terminal after submit / new response / resize, with vim mode enabled). So it is not Linux-specific — reproduces across Linux and macOS.
Found 3 possible duplicate issues:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
None of those issues look like it relates to this one, which is specific to vim mode
I confirm this as well, I have the same issue on my mac with vim mode
I'm also having this issue on 2.1.169 (Claude Code)
Also reproducing on 2.1.170, Linux (native Alacritty + tmux, and over mosh — where the misplaced cursor additionally breaks mosh's predictive echo, so typed characters appear at the top of the screen). vim mode enabled; disabling vim mode removes the issue.
Not a duplicate of #910 / #63824 / #42684 — those are not vim-mode-specific.
Also reproduces on Claude 2.1.173 in vim mode only. Both Ghostty and Kitty on MacOS.
Same problem. The price of antropic vibe-coding we all have to pay.