claude-code - 💡(How to fix) Fix [FEATURE] Add `cursorStyle` setting to control input cursor shape [1 comments, 1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#48529Fetched 2026-04-16 06:57:38
View on GitHub
Comments
1
Participants
1
Timeline
7
Reactions
0
Author
Participants
Timeline (top)
labeled ×4closed ×1commented ×1renamed ×1

Fix Action

Fix / Workaround

Current workaround

Code Example

{
  "cursorStyle": "bar" | "block" | "underline" | "inherit"
}
RAW_BUFFERClick to expand / collapse

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 to
  • bar / 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

extent analysis

TL;DR

Implement a cursorStyle setting in settings.json to allow users to choose their preferred cursor style, defaulting to inherit to respect the terminal's configured cursor style.

Guidance

  • Add a cursorStyle setting to settings.json with options bar, block, underline, and inherit to provide users with a choice of cursor styles.
  • Update the Ink/React rendering layer to conditionally emit DECSCUSR sequences based on the chosen cursorStyle setting.
  • Set the default cursorStyle to inherit to ensure compatibility with users' terminal configurations.
  • Verify the fix by testing Claude Code with different cursorStyle settings and terminal configurations.

Example

{
  "cursorStyle": "inherit"
}

This example sets the cursorStyle to inherit, allowing the terminal's configured cursor style to be used.

Notes

The proposed solution requires changes to the Ink/React rendering layer, which may involve additional development and testing efforts. The cursorStyle setting should be thoroughly tested with various terminal configurations to ensure compatibility.

Recommendation

Apply the proposed workaround by implementing the cursorStyle setting in settings.json, as it provides a flexible and user-friendly solution to the issue. This approach respects users' terminal configurations and allows them to choose their preferred cursor style.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING