Hermes Amp turns the Hermes dashboard into a late-90s audio-player cockpit: compact snapped windows, graphite bevels, LCD readouts, playlist-style sessions, tiny status LEDs, scanlines, and a functional data-mixer equalizer.
The goal is not just a visual reskin. The Sessions page becomes a usable agent cockpit where the playlist, inspector, transport controls, meters, logs, and visualizer all map to Hermes dashboard data.
- Replaces
/sessionswith a full media-player workspace. - Adds a functional
EQUALIZERdata mixer with persistent local settings. - Adds signal meters for health, token activity, API volume, cache reads, and log error pressure.
- Adds a read-only
CRON DECKfor armed, due, paused, and failed scheduled jobs. - Turns the visualizer into a chart lens for
MSG,TOK,API,COST,LOG,ERR,WARN,CACHE, andRUNS. - Uses
RECto bias charts toward newer activity. - Shows a mixer-driven preview waveform when no matching live data exists yet.
- Adds a selectable session playlist and
SESSION INSPECTOR. - Keeps transport controls practical:
+ CHAT,# LOGS,^ STATS,* SYNC. - Ships as a drop-in dashboard theme plus dashboard plugin. No Hermes fork required.
theme/hermes-amp.yaml- dashboard theme with cockpit layout, compact density, square chrome, graphite/cyan metal, and green LCD accents.dashboard/manifest.json- hidden slot-only dashboard plugin.dashboard/dist/index.js- SDK-based plugin bundle. No React build step required.dashboard/dist/style.css- plugin-specific styling.dashboard/dist/index.amp15.jsanddashboard/dist/style.amp15.css- manifest-pinned cache-busted release assets.demo-overrides/example- a hidden no-op user plugin that shadows Hermes' bundled Example plugin so demo screenshots are clean.
header-left- Hermes Amp identity plate.header-right- agent status LED and version/status readout.pre-main- mobile-visible agent stream strip with functional controls and live activity summary.sidebar- now-playing panel, equalizer, signal meters, and recent-session playlist.footer-right- media-stream style tagline.overlay- subtle vertical chrome.logs:topandsessions:top- compact page banners.
The animated visualizer is data-driven. It reads dashboard status, recent sessions, usage analytics, and log tail data via the dashboard SDK. The equalizer acts as a local chart mixer: raising or lowering MSG, TOK, API, COST, LOG, ERR, WARN, CACHE, or RUNS changes the visualizer lens, while REC biases the graph toward newer activity.
If there is no matching live data yet, the chart switches to a mixer-driven preview signal so the controls still visibly respond. Mixer settings persist to localStorage under hermes-amp-mix-v1.
The Sessions page is replaced by a media-player workspace: main player, selectable playlist, functional equalizer, signal meters, cron deck, log tail, and a session inspector. The inspector can resume a session, load a transcript preview, and delete a session after explicit browser confirmation.
The plugin overrides /sessions, so the Sessions nav item becomes the Hermes Amp workspace. The underlying data still comes from Hermes dashboard APIs.
Transport controls:
+ CHATopens the embedded Hermes chat.> SESSreturns to Sessions from cross-page banners.# LOGSopens Logs.^ STATSopens Analytics.* SYNCrefreshes the Hermes Amp HUD data immediately.
The /sessions cockpit omits SESS because it is already on the workspace route.
From this directory:
./install.shOr manually:
mkdir -p ~/.hermes/dashboard-themes ~/.hermes/plugins
cp theme/hermes-amp.yaml ~/.hermes/dashboard-themes/
cp -R . ~/.hermes/plugins/hermes-ampAfter install, restart hermes dashboard or rescan plugins:
curl http://127.0.0.1:9119/api/dashboard/plugins/rescanThen open the dashboard, click the palette icon, and choose Hermes Amp.
These checks were used during development:
node --check dashboard/dist/index.js
node --check dashboard/dist/index.amp15.js
jq . dashboard/manifest.json
ruby -e 'require "yaml"; YAML.load_file("theme/hermes-amp.yaml")'Live checks:
- Install with
./install.sh. - Rescan plugins with
curl http://127.0.0.1:9119/api/dashboard/plugins/rescan. - Open
http://127.0.0.1:9119/sessions. - Confirm the
HERMES.AMP WORKSPACEreplaces the native Sessions page. - Confirm the mixer presets change the chart lens and visualizer shape.
- Confirm
SESSION INSPECTORreplaces redundant shortcut panels. - Confirm
CRON DECKshows scheduled jobs or a no-job empty state.
The skin should feel nostalgic, but still usable. The theme owns the global dashboard chrome; the plugin owns functional HUD details. That separation keeps the contest entry drop-in and avoids forking Hermes.
The dashboard extension reference is here: https://hermes-agent.nousresearch.com/docs/user-guide/features/extending-the-dashboard