Support cursor shape changes for vim mode (beam in insert, block in normal)
Open 💬 2 comments Opened Mar 9, 2026 by halvorlinder
Feature Request
When vim mode is enabled (via /vim or /config), the cursor shape should change based on the current mode:
- Insert mode: thin/beam cursor (
\e[5 qor\e[6 q) - Normal mode: block cursor (
\e[1 qor\e[2 q)
Current Behavior
The cursor appearance stays the same regardless of vim mode. The only visual indicator is the NORMAL/INSERT text in the prompt.
Expected Behavior
Claude Code should emit DECSCUSR escape sequences when switching between vim modes, similar to how shells with vi mode (zsh vi-mode, bash vi-mode) and terminal editors (neovim, vim) change the cursor shape.
Most modern terminals support this (iTerm2, WezTerm, Ghostty, Kitty, Alacritty, Windows Terminal, etc.), so this would provide a natural and familiar visual cue for vim mode users.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗