Light-mode UX: past user messages are hard to distinguish from assistant output when scrolling back
Problem
When using Claude Code in a light-mode terminal, scrolling back through a long session to find what I sent (versus what Claude responded) is difficult. Past user messages are visually almost identical to surrounding assistant output — both are plain text on the same background. The only marker is the > prefix, which is easy to miss when skimming.
The active input box has nice highlighting (light blue background on the line being typed), but that styling disappears the moment a message is submitted, so it doesn't help with scroll-back navigation.
Use case
Long sessions where I want to:
- Re-read what I asked Claude two messages ago
- Find the exact phrasing of a past prompt to copy/edit
- Remind myself of the thread of a multi-turn conversation
Right now this means slowly scanning for > characters, which is tedious in a terminal full of mixed output.
Workarounds I've tried
- iTerm2 triggers with regex
^> .*and aHighlight Lineaction: unreliable inside a TUI because Claude Code redraws regions and can overwrite the highlight. - iTerm
⌘Fsearch for>: works, but requires a manual search every time. - Switching terminals (Ghostty, WezTerm, Kitty): doesn't help — the limitation isn't terminal-side, it's that Claude Code's TUI renders user and assistant lines with the same styling.
Proposed solutions (either would work)
- Theme option for past user messages: a setting (e.g. in
settings.json) that gives committed user messages a subtle background tint, similar to how Cursor, Warp, and the ChatGPT desktop app distinguish user vs assistant turns. Light-mode and dark-mode variants both helpful. - Emit a custom ANSI/OSC marker on user message boundaries: lets terminals (iTerm, WezTerm) hook into a clean, stable signal to style messages themselves.
Option 1 is more universal since not every user has a triggers-capable terminal.
Environment
- Claude Code v2.1.128
- iTerm2, light mode, macOS
- Affects any light-mode terminal user
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗