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 → ignored
  • cursorColor: "#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:

  1. Add a config option (cursorStyle: "native") that disables the fake cursor and uses the real terminal cursor positioned at the input caret
  2. Add cursor color/shape settings to Claude Code's config (~/.claude/settings.json)
  3. 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

View original on GitHub ↗

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