Releases: sanchomuzax/hermes-theme-editor
v0.4.4 — Font override + background filler fix
Font forced via !important in customCSS so DM Sans overrides Tailwind utility classes. assets.bg set to "none" to suppress the Hermes default background filler image.
v0.4.3 — Claude theme redesign
Anthropic theme redesigned to match claude.ai: near-black background, zero noise, DM Sans font, refined color tokens.
v0.4.2 — Font apply fix + background bleed fix
Fixes in 0.4.2
Font not changing — fixed
Two things were wrong:
-
Tailwind's
--font-sanswasn't being updated. Hermes uses both--theme-font-sans(the theme system variable) and Tailwind v4's--font-sans(used by.font-sansutility classes on components). We were only setting the first one. Now both are set together. -
Typography vars were skipped when falsy. The old code did
if (t.fontSans) setProperty(...)— meaning a blank value left the previous theme's font in place. Now every typography variable is always written unconditionally.
Background from another theme appearing — fixed
applyThemeToDom now mirrors Hermes's internal _PREV_DYNAMIC_VAR_KEYS pattern: every --component-* and --theme-asset-* variable written by the previous theme call is tracked and wiped before the new theme's variables are applied. Previously only --theme-asset-bg was cleared; now all asset slots and all component buckets are handled.
Native switcher / F5 reverting to wrong theme — fixed
handleActivate now writes to window.localStorage["hermes-dashboard-theme"] (same key as Hermes's own setTheme()). This means the native bottom-left theme switcher and F5 reload both see the correct active theme instead of whatever was active when the page first loaded.
v0.4.1 — Instant theme activate + screenshot
Fixes
Activate button now works like the native Hermes switcher
Previously, clicking ✓ Activate set the active theme in config but left all CSS variables at their old values until you reloaded the page. Now it calls applyThemeToDom() immediately after the API call — palette, fonts, border radius, and the background asset all switch in one click, without a reload.
Background asset cleared on theme switch
When the newly activated theme has no background image/gradient, the old theme's background is now properly removed (previously the old --theme-asset-bg variable was left in place).
Other
docs/screenshot.pngadded; shown at the top of the README on GitHub.
v0.4.0 — Hide from sidebar + Anthropic theme
What's new in 0.4.0
Fix: Hide from sidebar actually works now
The ⊘ Hide from sidebar button at the bottom of the Theme List panel calls the visibility API and immediately reloads the page — so the Theme Editor tab disappears in one click, no manual reload needed.
The Hermes Plugins page buttons require a page reload to take effect (Hermes core limitation). The new button inside the plugin does everything atomically.
To restore the tab: open the Plugins menu → find hermes-theme-editor → click Show in sidebar, then reload.
New: Anthropic / Claude gift theme
A high-quality anthropic theme is now bundled and installed automatically on first run of install.sh:
- Background
#1a1410— warm near-black - Accent
#d97757— Anthropic terracotta - Text
#e8e2d8— warm off-white - Font Inter + JetBrains Mono
- Custom scrollbar and focus-ring CSS matching the Claude.ai aesthetic
- All 17 shadcn color tokens carefully tuned
The file is copied to ~/.hermes/dashboard-themes/anthropic.yaml only if it doesn't already exist — re-installing never overwrites your edits.
Upgrade
cd hermes-theme-editor
git pull
bash install.sh
# restart Hermes Agentv0.3.0 — Instant apply, hex colours, native buttons
hermes-theme-editor v0.3.0
What's new
Instant theme apply on save
Saving the currently-active theme now applies all CSS variables directly to the page — no reload required. The plugin writes palette layers (color-mix), typography vars (--theme-font-*, --theme-base-size), layout vars (--radius, --theme-spacing-mul), colour overrides, component styles, assets, customCSS, and layoutVariant directly to :root, exactly mirroring what Hermes Agent does internally.
Hex colour input for rgba values
Colour-override fields that store rgba(...) values (e.g. border, muted) now display the correct hex colour in the text input instead of #000000. The resolver parses rgb/rgba strings and converts them to hex.
Native button styling
Save / Activate / Delete / Close buttons in the Live Preview column are now plain <button> elements styled with theme CSS variables, matching the rest of the editor UI. The SDK Button component was producing styles visually foreign to the editor.
Upgrade
bash install.sh
systemctl --user restart hermes-dashboard.service
v0.2.0 — Visual Theme Editor
hermes-theme-editor v0.2.0
Complete rewrite of the dashboard UI — from a basic theme selector to a full visual Theme Editor.
What's new
3-panel layout
- Left (220 px) — theme list: built-in presets (clone-only) + your user themes (fully editable)
- Centre (flex) — 8 collapsible editor sections covering every theme property
- Right (280 px) — live preview: mini Hermes UI mockup (header, sidebar, chat, input) updates as you type
Editor sections
- Theme identity — internal name + display label
- Base colours — background, midground, foreground (hex + alpha), warm glow (rgba), noise opacity
- UI colours — all 17 shadcn-compat colour-override tokens with human-readable labels
- Typography — sans-serif, monospace, display font pickers (21 open-source fonts) + custom URL
- Font sizes — base size (rem) and line-height sliders
- Layout — border-radius slider, density radio, layout variant
- Background asset — gradient string or image URL
- Custom CSS — textarea with live 32 KiB cap indicator
New field components: ColorField, GlowField, SliderField, FontPicker, RadioGroup, TextareaField
Built-in theme protection: default, midnight, ember, mono, cyberpunk, rose are read-only; Clone creates an editable copy.
Sidebar tab renamed from "Themes" to "Theme Editor".
Upgrade
bash install.sh
systemctl --user restart hermes-dashboard.service
v0.1.0 — Initial release
hermes-theme-editor v0.1.0
First development release of the Hermes Agent Theme Editor plugin.
What's included
- Backend API — FastAPI router mounted at
/api/plugins/hermes-theme-editor/
CRUD endpoints for user themes stored in~/.hermes/dashboard-themes/ - Theme validation — slug regex, hex colour checks, font URL domain whitelist, 32 KiB CSS cap
- Atomic persistence — temp-file + os.replace() writes; path-traversal protection
- Dashboard plugin manifest — native tab registered in the Hermes Agent sidebar
- i18n — English, Hungarian, Chinese translations
- LLM tools & slash command — theme_editor_* tools, /theme-editor command
- Tests — validator (22 cases), repository (14 cases), API integration (17 cases)
Installation
bash install.sh
systemctl --user restart hermes-dashboard.service
Pre-alpha. Not published to PyPI.