[FEATURE] Separate, themeable colors for inline code and links in markdown output
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
When Claude Code renders markdown in the terminal, inline code (backticks, ` like this ) and **links** (bare URLs, [label](url), #NNN references, file paths shown as autolinks) are rendered in colors that are very close to each other. In a reply that mixes both — e.g. a PR summary that interleaves branch names / file paths in code ` with clickable URLs — it's hard to tell at a glance which spans are code and which are links, because they read as the same color.
There is currently no way to give them distinct colors. The theme system exposes color tokens (and custom themes under ~/.claude/themes/*.json can already override several of them — see #69672), but there is no separate token for "inline code" vs "link" in rendered assistant markdown, so they can't be visually differentiated.
What I've already explored
/theme— none of the 6 presets (dark,light,dark-ansi,light-ansi, and the daltonized variants) differentiate inline code from links; they share the same rendered color.- Redefining the terminal's ANSI palette (Ghostty
palette = N=#rrggbb) — only helps if the two elements map to different ANSI slots. They appear to share a color, so this moves both at once and doesn't separate them. - Custom theme file (
~/.claude/themes/*.json) — overridable tokens exist, but none target inline code or link spans specifically.
Proposed Solution
Expose two distinct, overridable theme tokens for rendered assistant markdown:
inlineCode— foreground (and optionally background) color for `inline code` spans.link— foreground color for links / URLs /#NNNreferences / autolinked file paths.
Either of these would solve it:
- Make both tokens overridable in custom themes (
~/.claude/themes/*.json), consistent with how other tokens already work (#69672). - And/or pick visually distinct defaults for the two in the built-in themes, so they differ out of the box.
Alternative Solutions
A more general "per-element markdown color" config (the broader ask in the now-closed #35449 / #25234) would also cover this, but separate inlineCode / link tokens are the minimal, targeted fix.
Related Issues
- #35449 — Per-text color customization within AI responses (closed, not planned; mentions inline code)
- #25234 — Customizable markdown styling (closed, stale; mentions inline code, links, headings)
- #39369, #55931, #34065 — link/autolink coloring & ANSI palette respect (closed as duplicate)
- #69672 — precedent for exposing a new overridable theme token in
~/.claude/themes/*.json
Priority
Low - Nice to have
Feature Category
Configuration and settings
Environment
- Claude Code CLI (latest)
- Terminal: Ghostty, macOS