Skip to content

fix(cli): auto-select daylight skin on light terminal backgrounds - #11536

Closed
dwc1997 wants to merge 1 commit into
NousResearch:mainfrom
dwc1997:fix/cli-light-terminal-default-skin
Closed

fix(cli): auto-select daylight skin on light terminal backgrounds#11536
dwc1997 wants to merge 1 commit into
NousResearch:mainfrom
dwc1997:fix/cli-light-terminal-default-skin

Conversation

@dwc1997

@dwc1997 dwc1997 commented Apr 17, 2026

Copy link
Copy Markdown

What does this PR do?

This PR improves CLI readability on light terminal themes by auto-selecting a light-safe skin when no explicit skin is configured.
Previously, Hermes defaulted to the gold-heavy default skin, which can be hard to read on white/light backgrounds. With this change, startup now uses a best-effort light terminal detection and falls back to the built-in daylight skin automatically.
Explicit user settings are preserved: if display.skin is set, Hermes continues using that exact skin with no auto override.

Related Issue

Fixes #11300

Type of Change

  • 🐛 Bug fix (non-breaking change that fixes an issue)
  • ✨ New feature (non-breaking change that adds functionality)
  • 🔒 Security fix
  • 📝 Documentation update
  • ✅ Tests (adding or improving test coverage)
  • ♻️ Refactor (no behavior change)
  • 🎯 New skill (bundled or hub)

Changes Made

  • Updated hermes_cli/skin_engine.py:
    • Added _looks_like_light_terminal() helper
    • Updated init_skin_from_config() to:
      • respect explicit display.skin
      • otherwise default to daylight on light terminals, default otherwise
  • Added regression tests in tests/hermes_cli/test_skin_engine.py:
    • light terminal env selects daylight
    • explicit display.skin still takes precedence

How to Test

  1. Ensure no explicit skin is set in config (display.skin unset).
  2. Run with a light terminal hint, e.g.:
    • TERM_BACKGROUND=light (or HERMES_LIGHT_TERMINAL=1)
  3. Start Hermes CLI and verify active skin is daylight.
  4. Set display.skin: default and verify auto-detection does not override it.

Screenshots / Logs

N/A (startup behavior + test coverage)

@alt-glitch alt-glitch added type/bug Something isn't working P3 Low — cosmetic, nice to have comp/cli CLI entry point, hermes_cli/, setup wizard labels Apr 24, 2026
@alt-glitch

Copy link
Copy Markdown
Collaborator

Competing with #11553 and #12337 which address the same light-terminal detection for #11300 / #4807. Maintainers should pick one approach.

@dwc1997 dwc1997 closed this Apr 29, 2026
@dwc1997 dwc1997 reopened this May 1, 2026
Auto-select the daylight skin when no display.skin is configured and the terminal appears to use a light background. Keep explicit skin selections unchanged and add regression tests for TERM_BACKGROUND-driven behavior.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/cli CLI entry point, hermes_cli/, setup wizard P3 Low — cosmetic, nice to have type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: TUI hardcodes bright yellow colors, unreadable on white terminal backgrounds

2 participants