Bash commands render unhighlighted in tool calls and permission dialogs, though highlight.js and `bash` already ship in the CLI
Summary
Bash command text renders as undifferentiated monochrome in both the tool-call
label and the permission approval dialog. File diffs and markdown code blocks in
Claude's responses are syntax-highlighted, so the inconsistency is jarring:
the content I'm being asked to authorize is the least readable content on
screen.
Why this matters more than it looks
The recommended safe workflow is to read and approve each Bash command rather
than blanket-allowing. That workflow is exactly the one with the worst
typography. For anyone using approval prompts as a way to review and learn from
what the agent is doing — long pipelines, unfamiliar flags, multi-step commands —
a wall of white text is a real comprehension tax, and a mild safety one: a
destructive flag buried mid-pipeline does not stand out.
This appears to be unwired plumbing, not a missing feature
From strings on the shipped 2.1.220 binary (so treat the specifics as
inference, not ground truth):
- highlight.js is bundled, and
bashandshellare among the registered
languages.
- There is an internal code-rendering path that accepts a
languageparameter
and calls the highlighter; NotebookEdit passes language: "python" through
it for cell contents.
- A
syntaxHighlightingDisabledsetting already exists, documented in-binary as
disabling diff highlighting — so there's an established opt-out to respect.
If that reading is right, the Bash renderer simply never routes its command
string through the path that already exists. No new dependency, no new theme
work.
Request
Render the Bash command through the existing highlight path withlanguage: "bash", honoring syntaxHighlightingDisabled. Applies to both the
tool-call label and the permission dialog; the dialog matters more.
Notes
- There don't appear to be themeable syntax-token colors (theme files look like a
flat map of UI tokens — bashBorder, permission, diffAdded, …), so this
would presumably use the same built-in hljs color mapping diffs already use.
Consistency with diffs seems like the right target; per-token theming would be
a separate, larger ask.
- A custom theme can't work around this today: themes can recolor the Bash box
border but not the command text.
Prior report
Filed previously as #37171, which received no maintainer response and was closednot_planned by the inactivity bot. Refiling per that bot's instruction to open
a new issue if still relevant.
Environment
- Claude Code 2.1.220 (Homebrew cask, native arm64 binary)
- macOS 15 (Darwin 25.5.0), Apple Silicon
- Ghostty,
TERM=xterm-256color,COLORTERM=truecolor - Themes tried:
dark,dark-ansi— no difference to command text, as expected
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗