Skip to main content

olympus

❖ Communityv2.1.1

Manage your Hermes agents from one dashboard tab: every agent (profile) on one list with its status, current task and tool, helpers and a week of runs; one Needs-you queue of questions waiting on your answer, failed or overdue cron jobs, stalled or failing Kanban workers, blocked or unassigned tasks, offline gateways and looping or expensive runs, each with its action; an inspector per agent; a Live view of every open run with its subagents and their last tool; a Floor with every agent at a fixed place, moving only on recorded tool calls; a Pop out window of the roster that stays on top; and a Performance view of run success, run time, tool failures and cost per agent, each compared with the days before, with the runs behind any day a click away. Controls (pause, resume or run a cron job; answer, retry, reclaim or reassign a Kanban task) are confirmed, logged and executed by Hermes' own dashboard and Kanban endpoints; `dashboard.olympus.controls: false` turns them off. Opt-in alerts run as a Hermes no-agent cron job.

Open in Hermes Desktop
hermes plugins install olympus

Screenshots

README

From the reviewed commit 501d8d9 ↗; it updates when the author re-pins.

Olympus

Olympus is where you manage your Hermes Agent agents: every agent on one list, what each is doing, what is waiting on you, and how reliably its runs succeed. It is a Hermes dashboard plugin.

It exists for operators running several agents with cron jobs and Kanban workers, who find out late that something failed, stalled or got stuck. The problems it targets, and the Hermes issues that show people have them, are in PRODUCT.md.

What you see

Agents: Needs you on top, then one row per agent with status, what it is doing now, a week of runs and its issues

  • Agents. One row per agent (Hermes profile): status in a word, the task and tool it is on now, its helpers, last activity, and a week of runs with the failed ones marked. Above it, Needs you: every question waiting on an answer (with the question the agent asked), failed or overdue cron job (including a run Hermes recorded as OK in which every tool call failed), stalled or failing worker, blocked or unassigned task, offline gateway, and looping or expensive run, once each, with its action. Pick an agent to open its inspector: what it did recently, its scheduled jobs and Kanban work, how it works, and whether your fixes worked. The inspector for one agent beside the roster: what it needs, what it is doing now, its jobs and tasks

  • Live. Every open run as it happens, read again every five seconds: one lane per agent with a run going, the run's source and elapsed time, the tool it is on, and under it each subagent delegate_task opened that is still running, with its own last tool. Finished subagents fold under "Tasks done 1 of 3, 1 failed" (from Hermes' own batch manifest) and open on a click. A strip of the last minute's tool calls marks the failed ones. Lanes with a failed subagent come first, then the busiest; ties keep your profile order. A subagent slides in under its parent when it starts. Idle agents fold into one line. Live: one lane per working agent, its run, the subagents under it with their status and last tool, and the last minute of tool calls

  • Pop out. Your agents in a small window that stays on top while you work elsewhere: one line per agent, the ones that need you first, with the status word, what each is on and for how long. A click opens that agent in the Olympus tab. Chrome and Edge open an always-on-top window (Document Picture-in-Picture); other browsers get a plain popup of the same list. Pop out: a small window listing every agent with its status, what it is on and for how long

  • Floor. Every agent at a fixed place in one frame, in name order, so the whole fleet reads from across a room: the agent's disc with a ring only when it needs you (waiting breathes, failed and stalled hold still), what it is on, the last minute's call count, and its subagents joined to it by hairlines. Nothing moves unless Hermes recorded it: a tool call expands one ring from the disc and fades (red for a failed call), a new subagent enters from the disc, a finished one keeps its slot and turns Done. Idle agents dim. The popout can show the floor instead of the list. Floor: one station per agent, its ring, what it is on and its subagents joined to it

  • Performance. For 7 or 30 days: runs, how many succeeded, typical and slow run time, tool calls that failed, and cost, per agent and across all of them, each compared with the same number of days before ("96% of 25, was 100% the 7 days before", "7% faster than before") beside a success-rate-per-day line. The runs-per-day chart has a value axis, every bar tells its numbers on hover, and a click on a bar lists the runs of that day. Outcomes follow Hermes' own session status, except that a scheduled run in which every tool call failed counts as failed. Any run opens step by step.

  • Checks. Findings across your agents, Kanban backlog grouped by who has to act, skill hygiene, configuration risks, and where spend goes.

Performance: runs per day, then each agent's success rate with its trend line and the comparison with the days before

Everything works at phone width too; the roster becomes cards and each panel opens full screen with a Back button.

Controls

From the queue and the inspector you can pause, resume or run a cron job (or pause all of an agent's jobs), and answer, retry, reclaim, reassign or assign a Kanban task. Every control says exactly what it will do and waits for you to confirm. Hermes' own API does the work (/api/cron/jobs/... and the Kanban plugin's task routes), and Olympus records each action in its log.

To turn every control off:

# $HERMES_HOME/config.yaml
dashboard:
  olympus:
    controls: false

Anything else (creating or deleting agents, jobs or tasks; editing prompts, models, skills, keys or config) stays on the Hermes page that owns it, and Olympus links there.

Install

Requires Hermes Agent v0.21.6 or newer; verified against v0.22.5. No Python dependencies and no build step.

hermes plugins install AIEngineerX/Olympus
hermes plugins enable olympus
hermes dashboard

Open the Olympus tab (default http://127.0.0.1:9119/olympus). Hermes loads a user plugin's API only once it is in plugins.enabled; until then the tab lists your agents from Hermes' own API and says how to enable the rest. If the tab shows no data after enabling, restart hermes dashboard once.

Alerts (opt-in)

Olympus can tell you when a task is waiting on your answer, a cron job fails or stops running on time, a Kanban worker stalls or fails, an agent's gateway is not running while jobs or tasks wait on it, a session starts looping, or spend jumps to twice its daily average:

hermes olympus install-alerts --deliver telegram   # any `hermes cron --deliver` target

This copies olympus_alerts.py into $HERMES_HOME/scripts/ and prints the hermes cron create --no-agent ... command to run. Hermes cron runs it on your schedule and delivers what it prints; no model is called, and a run with nothing new is silent. An alert repeats at most every six hours while it is still active. Preview with hermes olympus alerts --preview; stop with hermes cron remove <job id>. With plugins.isolation: host, copy alerts/olympus_alerts.py into $HERMES_HOME/scripts/ yourself.

What Olympus reads and writes

Olympus never writes Hermes files or databases. It opens every Hermes store read-only, makes no network calls of its own, runs no background processes and stores no credentials. Per request it reads, for each profile:

  • state.db: sessions and messages (timestamps, tokens, cost, tool calls, outcomes)
  • cron/jobs.json and cron/usage_audit.jsonl
  • config.yaml structure and flags (never values such as keys or base URLs)
  • which messaging platforms each profile has configured, as Hermes itself reports it (Olympus never opens a profile's .env)
  • gateway process state, and the last 8 KB of the agent, gateway and error logs
  • skills/ metadata and the skill hub lock

and the Kanban databases under the Hermes root. It writes only to $HERMES_HOME/plugin-data/olympus/ (daily snapshots, findings you marked fixed, the action log, alert state), plus $HERMES_HOME/scripts/olympus_alerts.py if you install alerts.

Hermes Desktop

Desktop does not render web-dashboard tabs, so Olympus ships a Desktop page too (desktop/plugin.js). Installing the plugin copies it into $HERMES_HOME/desktop-plugins/olympus/; turn it on under Capabilities → Plugins. Today it shows the findings that need you (with sessions that open in Desktop and "I fixed this"), fix tracking, cron spend and backlog triage. The roster, queue and inspector are coming to Desktop next.

Privacy

Session titles, task titles, cron names, model labels, message content and local paths are hidden by default. To show them on a private machine:

# $HERMES_HOME/config.yaml
dashboard:
  olympus:
    expose_local_labels: true

Both settings are re-read on every request. See SECURITY.md. Keep the Hermes dashboard on localhost.

API

Olympus mounts its own routes under /api/plugins/olympus/; the full table is in CONTRIBUTING.md.

Verify

npm run verify            # backend compiles, Python tests, frontend parses
npm run test:visual       # Playwright on fixture data, desktop and 390 px
npm run test:live         # the real Hermes dashboard, desktop and 390 px
npm run test:security     # live payload: no secrets, paths or raw ids
npm run test:performance  # live /overview and /performance response budgets
npm run test:compat       # whether Hermes mounted the Olympus API
npm run test:desktop      # Desktop page preflight

The live, security and performance smokes use an existing Hermes dashboard at OLYMPUS_SMOKE_URL (default http://127.0.0.1:9119/olympus), or start one.

Layout

dashboard/plugin_api.py   FastAPI backend: reads Hermes, builds every view
dashboard/dist/           hand-authored SDK React (index.js) and styles; no build step
desktop/plugin.js         Hermes Desktop page
alerts/olympus_alerts.py  script for the opt-in alert cron job
plugin.yaml, __init__.py  catalog manifest and the `hermes olympus` command
scripts/                  smokes, dev link, fixture builder
tests/                    Python tests and Playwright fixture checks
PRODUCT.md, DESIGN.md     what Olympus is for, and how it looks

Known issues

Seen on the test install; not yet fixed.

  • A Kanban worker that has finished can read as Working for up to ten minutes, because Hermes leaves the worker's session open after the task run ends. The next release will end the agent's status with the run.
  • While a worker runs, "Now" shows its task but not the tool it is using.
  • At 390 px the confirm popup for a control can overflow its row by a pixel.

If you hit anything else, open an issue and say what Olympus showed and what Hermes' own page showed.

Contributing, security, license

See CONTRIBUTING.md and SECURITY.md. MIT, AIEngineerX.

Disclosure

← Back to the catalog · catalog built Nov 3, 2026