Skip to content

Respect terminal cursor settings (shape, color) #30082

@desaflow

Description

@desaflow

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    duplicateThis issue or pull request already exists

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions