Skip to content

feat(cli): add "clean" accessibility skin#36943

Open
TumCucTom wants to merge 3 commits into
NousResearch:mainfrom
TumCucTom:feat/clean-accessible-skin
Open

feat(cli): add "clean" accessibility skin#36943
TumCucTom wants to merge 3 commits into
NousResearch:mainfrom
TumCucTom:feat/clean-accessible-skin

Conversation

@TumCucTom

@TumCucTom TumCucTom commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a new built-in clean skin to the CLI, addressing the CLI portion of the request in #36865 for a true "Clean/Professional" theme. This PR focuses on the CLI interface — the Dashboard HTML/CSS portion is tracked in a separate PR.

Note on scope

The original issue #36865 describes problems with the Dashboard HTML UI (background webp overlays, grid textures, decorative pseudo-elements). This PR addresses the CLI counterpart: a clean, high-contrast terminal skin for users who prefer a distraction-free interface.

Design choices

Concern Clean skin
Background Solid #1E1E1E (dark grey) — no textures, noise, or webp overlays
Banner art Empty banner_logo + banner_hero — no ASCII art hero on startup
Prompt symbol Plain ASCII $ (no kawaii ❯ or god-themed ⚔/Ψ/◉)
Tool prefix Plain ASCII | (no ┊/╎/│)
Spinner ASCII-only [...] brackets, no wings
Branding "Hermes Agent" (no thematic rename like Ares/Poseidon)
High-contrast status Traffic-light green/amber/red for context usage

All spinner faces are 7-bit ASCII so they render consistently on every terminal without font fallback. The status-bar color stops (status_bar_good #2EA043, status_bar_warn #D29922, status_bar_bad #F85149) match the GitHub Primer palette — proven readable at WCAG AA against the #1E1E1E background.

Usage

# Activate via slash command
/skin clean

# Or in ~/.hermes/config.yaml
display:
  skin: clean

Implementation

  • One new entry in _BUILTIN_SKINS (53 lines) in hermes_cli/skin_engine.py.
  • Listed in the module docstring's BUILT-IN SKINS section.
  • New test test_clean_skin_loads in tests/hermes_cli/test_skin_engine.py asserts:
    • Solid #1E1E1E for status bar / completion menu / voice-status backgrounds
    • High-contrast text colors on the dark background
    • No banner art (banner_logo == "" and banner_hero == "")
    • Plain ASCII $ prompt symbol and | tool prefix
    • All spinner faces are 7-bit ASCII (no decorative Unicode)
    • Green/amber/red status bar palette
  • Also added clean to the test_list_skins_includes_builtins regression check.

Test plan

pytest tests/hermes_cli/test_skin_engine.py -v

All 34 tests in the file pass (33 prior + 1 new). Manually exercised:

>>> from hermes_cli.skin_engine import load_skin
>>> skin = load_skin("clean")
>>> skin.banner_logo, skin.banner_hero
('', '')
>>> skin.get_color("status_bar_bg"), skin.get_color("banner_text")
('#1E1E1E', '#E6E6E6')
>>> skin.get_spinner_wings()
[]

Platforms

  • Tested on macOS aarch64, Python 3.11.15.
  • ruff check clean.
  • check-windows-footguns.py reports no issues.

Partially addresses #36865 (CLI portion only).

TumCucTom and others added 2 commits June 1, 2026 22:58
Adds a new built-in skin tuned for low-distraction, accessibility-
friendly use — solid dark grey backgrounds, no banner art, no
decorative spinner wings, and a plain ASCII prompt symbol.

Closes NousResearch#36865.

Co-authored-by: Zippy AI <tomkinsbale@icloud.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The new contributor-check CI workflow requires every new committer
email to be mapped to a GitHub username in scripts/release.py.
Adds both known emails for the same contributor.

Co-authored-by: Zippy AI <tomkinsbale@icloud.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@TumCucTom TumCucTom force-pushed the feat/clean-accessible-skin branch from c6d686c to 9a5a317 Compare June 1, 2026 21:59
@coreynull

Copy link
Copy Markdown

A CLI skin would be great too but the original request was for the HTML Hermes Dashboard. The background image and static/noise is especially problematic. "Themes" are in the bottom left. I do appreciate the option for larger fonts. :)

See screenshot attached.
HermesDash

@TumCucTom

TumCucTom commented Jun 5, 2026

Copy link
Copy Markdown
Contributor Author

Update: The Dashboard accessibility issue is now handled in a separate PR:

New PR: #39740

This PR (#36943) focuses on the CLI skin only. The new Dashboard PR adds a 'Clean' theme that addresses all three requirements from #36865:

  1. Solid background — #1E1E1E, no textures or webp overlays
  2. System fonts — no decorative custom fonts
  3. No decorative pseudo-elements — warm glow disabled, noise grain disabled (opacity=0)

Apologies for confusion

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 comp/tui Terminal UI (ui-tui/ + tui_gateway/) P3 Low — cosmetic, nice to have type/feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants