github / github/copilot-cli

Feature Request: Fine-grained per-element theming (border colors, chevron, prompt vs response foreground)

Open
#2,123 1 comment 2 reactions 0 assignees View on GitHub
area:theming-accessibility
Dominant language
Shell
Stars
11.2k
Forks
1.9k
Avg merge
14h 16m
Merged PRs (30d)
6

Description

### Describe the feature or problem you'd like to solve

The `/theme` command currently supports three high-level modes (`auto`, `dark`, `light`) that control overall ANSI color contrast — which is great for a baseline. It would be wonderful to take this further with **fine-grained theming** that allows customizing the appearance of individual UI elements. This would help users visually distinguish between user prompts, assistant responses, status indicators, and tool output — especially during long sessions where scrolling back to find specific parts of the conversation can be challenging.

### Proposed solution

It would be great to support per-element styling overrides in `config.json` (or a dedicated `theme.json` file). We can think along the lines of:

| UI Element | Customization |
|---|---|
| **User prompt text** | Foreground color |
| **Assistant response text** | Foreground color |
| **User chevron/icon (❯)** | Color, optionally the character itself |
| **Prompt input border / frame** | Border color, style |
| **"Thinking" / status indicators** | Foreground color, animation style |
| **Tool execution output** | Foreground color (muted vs. primary) |
| **Diff view** | Addition/deletion colors |
| **Code blocks** | Background and foreground colors |
| **Timeline / progress bars** | Accent color |

A possible `config.json` structure could look like:

```json
{
"theme": "dark",
"themeOverrides": {
"userPromptFg": "green",
"assistantResponseFg": "white",
"userChevronColor": "cyan",
"promptBorderColor": "blue",
"thinkingIndicatorFg": "yellow",
"toolOutputFg": "gray",
"diffAddFg": "#22c55e",
"diffRemoveFg": "#ef4444",
"codeBlockBg": "#1e1e2e"
}
}
```

Supporting both named ANSI colors (`"green"`, `"cyan"`) and hex values (`"#00FF00"`) for true-color terminals would make this flexible for a wide range of setups.

### Example prompts or workflows

1. Users who want their prompts to **stand out** could set `userPromptFg: "green"` and `promptBorderColor: "cyan"` while keeping responses in default white — making it easy to scroll back and locate what was typed.
2. Streamers could create visually appealing themes with branded accent colors.
3. Users with accessibility needs could increase contrast on specific elements without changing the entire terminal color scheme.
4. Teams could create and share theme JSON files for a consistent experience.

### Additional context

- **Environment:** Windows, Windows Terminal, Copilot CLI latest

---

*This issue was created using GitHub Copilot CLI 😃*

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.