Skip to content

[Bug]: CLI is unreadable on light/cream terminal backgrounds — no light mode support #4807

@aster2709

Description

@aster2709

Problem

Hermes CLI is completely unreadable on terminals with light or cream backgrounds. All built-in skins (default, ares, mono, slate, poseidon, sisyphus, charizard) use light-colored text designed for dark backgrounds. On a light terminal, the banner text, welcome message, prompt symbol, and user input text are nearly invisible.

Image

Environment

  • OS: macOS 15 (Darwin 25.2.0)
  • Terminal: Terminal.app with cream/light background
  • Hermes: Latest (fresh install via official installer script)
  • Model: claude-opus-4-6 via Anthropic provider
  • Skin: default (also tested mono, slate — all unreadable)

Steps to Reproduce

  1. Use any terminal with a light/white/cream background (e.g. Terminal.app default light theme)
  2. Install Hermes Agent via curl -fsSL ... | bash
  3. Run hermes
  4. Observe: banner text, welcome message, prompt text, and live input text are all nearly invisible

What Happens

  • Banner text uses colors like #FFF8DC, #FFD700, #FFBF00, #B8860B — all designed for dark backgrounds
  • Welcome message is rendered in a light yellow that disappears on cream
  • User input text while typing is invisible until Enter is pressed (prompt_toolkit text color issue)
  • The HUD status bar (dark background) is the only readable element

What I Expected

Either:

  1. A built-in light skin with dark text colors for light terminal backgrounds
  2. Auto-detection of terminal background color and adaptive theme selection
  3. At minimum, the skin engine's prompt color key should also control prompt_toolkit's input text color, so custom skins can fix this

Skin System Analysis

The skin engine (hermes_cli/skin_engine.py) supports custom color overrides via ~/.hermes/skins/*.yaml, and it correctly applies to banner, response borders, and UI elements. However:

  • Input text color while typing is not controlled by any skin key — it appears to be set by prompt_toolkit's default, which inherits from the terminal's ANSI color palette rather than the skin's prompt color
  • All 7 built-in skins assume dark backgrounds
  • The colors.prompt key in the skin schema exists but does not affect the actual typing input color

Workaround

Creating ~/.hermes/skins/light.yaml with dark hex values fixes banner/UI text but NOT the live input text. The only full workaround is switching to a dark terminal profile.

Suggested Fix

  1. Add a built-in light skin with dark text colors
  2. Wire colors.prompt (or add colors.input_text) to prompt_toolkit's input style so skins can control typing text color
  3. Consider auto-detecting terminal background via $COLORFGBG env var or similar

Screenshots

[Will attach screenshots showing the unreadable UI on a cream terminal background]

Feature Type

Bug / CLI improvement

Contribution

  • I'd like to implement this myself and submit a PR

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Low — cosmetic, nice to havecomp/cliCLI entry point, hermes_cli/, setup wizardtype/bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions