[FEATURE] Add `cursorStyle` setting to control input cursor shape
Resolved 💬 2 comments Opened Apr 15, 2026 by Nnboy Closed Apr 15, 2026
Feature request
Claude Code currently forces a steady block cursor in the input box via DECSCUSR escape sequences, overriding the terminal's configured cursor style. This is inconsistent with users who prefer a bar/beam cursor (e.g., cursor-style = bar in Ghostty, cursor.style = Beam in Alacritty).
Proposal
Add a cursorStyle setting to settings.json:
{
"cursorStyle": "bar" | "block" | "underline" | "inherit"
}
inherit(ideal default): don't emit DECSCUSR at all — use whatever the terminal is configured tobar/block/underline: emit the corresponding DECSCUSR sequence
Rationale
- Users deliberately configure their terminal cursor; TUI apps silently overriding it is surprising
- Modern terminals (Ghostty, WezTerm, Kitty, Alacritty) all expose cursor-style config — Claude Code is currently the odd one out
- Low-risk change: one setting, a couple of escape-sequence branches
Current workaround
None. The DECSCUSR write happens inside the Ink/React rendering layer and can't be overridden from user config.
Environment
- Claude Code: 2.1.109
- OS: Ubuntu 24.04
- Terminal: Ghostty (
cursor-style = bar) - Model: Claude Opus 4.6
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗