Respect terminal cursor settings (shape, color)
Resolved 💬 3 comments Opened Mar 2, 2026 by desaflow Closed Mar 6, 2026
Problem
Claude Code uses Ink's fake cursor rendering which completely overrides the terminal's cursor settings. The real terminal cursor is hidden via \x1b[?25l and replaced with a chalk.inverse space character — always a white block, regardless of what the user has configured in their terminal.
This means:
cursorShape: "bar"in Windows Terminal settings → ignoredcursorColor: "#CC0000"→ ignored- Any cursor customization in any terminal emulator → ignored
Expected behavior
Claude Code should respect the terminal's native cursor settings (shape, color, blink) the same way every other CLI tool does.
Current workaround
Patching cli.js directly to change H1.inverse to H1.bgRgb(r,g,b) — works but gets overwritten on every update.
Suggested fix
Either:
- Add a config option (
cursorStyle: "native") that disables the fake cursor and uses the real terminal cursor positioned at the input caret - Add cursor color/shape settings to Claude Code's config (
~/.claude/settings.json) - At minimum, read the terminal's cursor color from the color scheme rather than hardcoding inverse (white)
Environment
- Claude Code v2.1.63
- Windows Terminal on Windows 11
- Also affects any terminal emulator with custom cursor settings
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗