anthropics / anthropics/claude-code

[FEATURE] Configurable visual separation of user and Claude turns in the transcript (colors, alignment/indentation, separator or turn indicator)

Open
#94,600 2 comments 0 reactions 0 assignees View on GitHub
area:tui enhancement user-experience
Dominant language
Python
Stars
145k
Forks
23.1k
PR merge metrics
PR metrics pending

Description

### Preflight Checklist

- [x] I have searched existing requests. Similar ones (#60786, #47004, #69501, #69918) were auto-closed as stale, not declined, so I'm reopening the request here.
- [x] This is a single feature request: a configurable visual distinction between user and Claude turns.

### Problem Statement

In long sessions it's hard to find something I asked earlier, or where one exchange ends and the next begins. In the transcript, my prompts, Claude's replies and tool output all look very similar, so scrolling back means reading every block to spot the turn boundaries.

### Proposed Solution

Let users configure how conversation turns are shown, through settings or theme tokens, with a default that already separates turns:

1. **Colors per role:** a configurable color (text and/or background) for user messages and another for Claude's replies.
2. **Messenger-style alignment (optional):** user messages aligned to one side and Claude's replies to the other, like a chat app.
3. **Reply indentation (optional):** Claude's reply, including its tool calls, indented under the user message it answers, so each question and its answer read as one nested block.
4. **Turn indicator (optional):** a marker tying each reply to its prompt, such as a turn number (`#3` on the prompt and `↳ #3` on the reply) or a colored gutter bar spanning the whole turn.
5. **Turn separator (optional):** a horizontal line (or spacing) between each question/answer block.

Illustrative settings shape (names are only a suggestion):

```json
{
"transcript": {
"userMessage": { "color": "cyan", "background": "#1e2a38" },
"assistantMessage": { "color": "default" },
"layout": "default | messenger | indented",
"turnIndicator": "none | number | gutter",
"turnSeparator": true
}
}
```

Ideally this applies to the terminal (normal and fullscreen) and, where it makes sense, to the IDE extensions and the desktop/web apps.

### Alternative Solutions

- `Ctrl+O`, then `{` / `}` jumps between my prompts, and `/` searches. That helps when I know what I'm looking for, but not when I'm scanning the conversation visually.
- Dumping to scrollback (`[`) and using the terminal's search has the same limitation.
- A terminal color scheme can't target only user or only assistant messages.

### Priority

Medium - Would be very helpful

### Feature Category

Interactive mode (TUI)

### Use Case Example

1. A multi-hour session with many tool calls and long answers.
2. I need to re-check an instruction I gave an hour ago, and what Claude answered to it.
3. With distinct colors, the reply indented under its prompt or a turn number/gutter linking them, I spot my prompt and the answer that belongs to it right away, even when tool output sits in between.

### Additional Context

- Related: #60786, #47004, #69501 (TUI, closed as stale), #69918 (VS Code, closed as stale), #83119 (VS Code color/alignment, open) and #85295 (VS Code two-column layout, open).
- The fullscreen "jump to previous prompt" affordance (#90609) shows prompt navigation already matters; visual turn separation is the complementary piece.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the terminal transcript experience, including normal and fullscreen interactive mode, and the existing Ctrl+O prompt navigation. Compare the proposed settings shape and visual options against the related TUI and IDE requests; done means a decided, configurable separation of user and Claude turns that works across the supported transcript surfaces.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli, design
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.