Allow configuring semantic TUI colors beyond syntax highlighting

Open 💬 1 comment Opened May 5, 2026 by JiangHe12

What problem does this solve?

The current Codex CLI theme support appears to affect syntax highlighting, but it does not let users configure the main TUI text and semantic UI colors.

In my setup, Codex CLI's primary chat text is rendered using the terminal default foreground. That makes large parts of the TUI appear as plain black text in my PowerShell 7 / Windows environment, even when my terminal profile uses a colorful palette. In contrast, Claude Code uses more semantic colors across its terminal UI, so the interface has much better contrast and is easier to scan.

This is not primarily about code syntax highlighting. It is about the main terminal UI: chat text, assistant/user sections, secondary/dim text, borders, status line, input/composer area, selections, and other non-code UI elements.

Environment

  • Codex CLI: 0.128.0
  • OS: Windows
  • Shell: PowerShell 7.6.1
  • Installation: npm global package @openai/codex
  • Config currently contains:
[tui]
theme = "github"

Changing tui.theme or using /theme does not address the main TUI foreground/contrast issue, because the setting is focused on syntax highlighting.

Current behavior

  • Primary TUI text mostly uses the terminal default foreground.
  • tui.theme / /theme changes syntax highlighting, but not the broader TUI color system.
  • Users cannot configure semantic colors for the main TUI.
  • Users who want a higher-contrast, more colorful UI similar to Claude Code or Gemini CLI have to either patch Codex source locally or change global terminal defaults, which is too coarse.

Requested behavior

Please add first-class configuration for semantic TUI colors beyond syntax highlighting.

A minimal version could be something like:

[tui.colors]
foreground = "#E6EDF3"
muted = "#8B949E"
accent = "#58A6FF"
assistant = "#C084FC"
user = "#39D353"
success = "#3FB950"
warning = "#D29922"
error = "#F85149"
border = "#30363D"
status = "#79C0FF"
selection_fg = "#FFFFFF"
selection_bg = "#264F78"

Or, if a larger design is preferred:

  • Add built-in UI themes such as dark, light, high-contrast, ansi, etc.
  • Let users select them through /theme or config.
  • Support custom theme files with semantic slots for the non-code TUI.
  • Keep syntax highlighting themes separate from UI themes, or expose both clearly.

Why terminal colors alone are not enough

Terminal color schemes are still useful, but they cannot solve this fully because Codex currently chooses where to use default, dim, cyan, green, red, magenta, etc. A user can change the terminal palette, but cannot tell Codex that primary text, muted text, borders, composer text, and role labels should use different semantic colors.

This is especially noticeable when comparing Codex CLI to Claude Code: Claude Code's terminal UI uses more intentional semantic coloring, which gives better contrast and scanability without requiring global terminal changes.

Related context

  • #1618 added/covered theme support, but comments indicate the current theming is focused on syntax highlighting.
  • #2020 covers light-background support. This request is broader: user-configurable semantic colors for the whole TUI, including dark/high-contrast setups.

View original on GitHub ↗

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