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 q or \e[6 q)
  • Normal mode: block cursor (\e[1 q or \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.

View original on GitHub ↗

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