[BUG] Text cursor invisible in light theme — bypasses terminal's context-aware cursor color (recurring, see #24587 #20928 #24929 #46374)
Preflight Checklist
- [x] I have searched existing issues and confirmed this is a recurring, unresolved report (see Related Issues below)
- [x] This is a single bug report
- [x] I am using the latest version of Claude Code
What's Wrong?
With theme: auto (resolving to a light terminal profile), the text input cursor renders white/light and is nearly invisible against a light background.
Critically: my terminal's cursor-color feature ("context-aware"/"smart" cursor color, which auto-contrasts the cursor against whatever is under it) is enabled and works correctly everywhere else, including the plain shell prompt in the same terminal profile. It does not take effect inside Claude Code's input field.
Key Evidence
- The cursor is correctly dark/contrasted in the same terminal, same profile, outside Claude Code (plain shell)
- The terminal's own context-aware cursor coloring, which dynamically picks a contrasting color, has no effect inside Claude Code's input box
- This strongly suggests Claude Code renders its own synthetic cursor character (a colored glyph) rather than positioning the terminal's real hardware caret, so terminal-level cursor color logic never sees it
Environment
- Claude Code version: 2.1.233
- Terminal: iTerm2, with the built-in context-aware/smart cursor color feature enabled
- Claude Code theme: auto (resolves to light)
What Should Happen?
The cursor should be visible against a light background: either by respecting the terminal's real cursor (so terminal-side contrast features work), or by having Claude Code's own theme system choose a cursor color with guaranteed contrast against its light theme's background instead of a fixed/white value.
Steps to Reproduce
- Use a terminal with a light-background profile and cursor-contrast features enabled (e.g. iTerm2 with context-aware/smart cursor color)
- Launch
claude - Confirm
/themeresolves to light (or set/theme lightexplicitly) - Type in the input field — cursor is invisible/white despite the terminal's cursor-contrast feature being on and working outside Claude Code
Related Issues
- #24587 — same bug (macOS), auto-closed as stale, never fixed
- #20928 — same bug (Linux, WezTerm + Konsole), auto-closed as stale, never fixed
- #24929 — same bug (Windows), auto-closed as stale, never fixed
- #46374 — same bug, most detailed report, explicitly pushed back on being closed as a "duplicate" of other stale-closed reports, confirmed still broken by multiple users on later versions, then auto-closed again by the stale bot after 7 days of inactivity
This has now been reported independently at least 5 times across macOS/Linux/Windows and multiple terminals (iTerm2, WezTerm, Konsole), and every report has been closed by inactivity rather than a fix. The root cause (synthetic cursor rendering bypassing terminal cursor-color handling) has not changed across versions.
Is this a regression?
No — reported as present since early versions per the linked issues.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗