Bash commands render unhighlighted in tool calls and permission dialogs, though highlight.js and `bash` already ship in the CLI

Status Open
Reported on v2.1.220
Maintainer reply None cached
Activity 1 comment · opened Jul 29, 2026

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 bash and shell are among the registered

languages.

  • There is an internal code-rendering path that accepts a language parameter

and calls the highlighter; NotebookEdit passes language: "python" through
it for cell contents.

  • A syntaxHighlightingDisabled setting 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 with
language: "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 closed
not_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

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗