Hermes Agent

The board

Six columns. A card moves right as work happens. Swipe sideways. Open a card to read it. Nudge dispatcher runs one pass now.

The simulated board

Six columns in a horizontally scrolling region. Use arrow keys to scroll, or open a card to read its detail below.

  • board loaded · 4 ready · 1 in flight
  • dispatcher idle · next pass in 60s
Generate product description: SKU-1004 t_0040
ready content-ops @copywriter
Body Independent card in the same content queue.
Run history
- no runs yet @copywriter
The dispatcher has not started an agent on this card.
What this means Three profiles pulling from one board in parallel is the simplest way to use this.
Write auth integration tests t_0f5a
todo auth-project @qa-dev
Body Cover happy path, wrong password, expired token, concurrent refresh.
Run history
- no runs yet @qa-dev
The dispatcher has not started an agent on this card.
What this means Waiting on the API card. The dependency engine promotes it to Ready by itself once the parent is done. Nobody has to remember.
Implement auth API endpoints t_23f6
running auth-project @backend-dev
Body POST /register, POST /login, POST /refresh, POST /logout.
Run history
1 active @backend-dev
Started, no end time yet.
What this means In flight. The attempt row exists already with no end time. If the process dies, the row is closed as crashed rather than vanishing.
Review password reset PR t_28a3
ready auth-project @reviewer
Body Review the implementation of the password reset flow.
Run history
- no runs yet @reviewer
The dispatcher has not started an agent on this card.
What this means When the reviewer's agent starts, it is handed the implementer's summary and changed-file list before it looks at any code.
Translate homepage to Spanish t_5a39
done content-ops @translator
Body Translate the marketing homepage.
Run history
1 completed @translator
translated 4 pages, style matched existing marketing voice
What this means Finished cards keep their summary forever, which is what makes the board searchable after the fact.
Transcribe Q3 customer call #4 t_6f4e
ready content-ops @transcriber
Body One of five independent transcription cards for the same profile.
Run history
- no runs yet @transcriber
The dispatcher has not started an agent on this card.
What this means Assigned, nothing depends on it, so it only waits for the next pass of the dispatcher.
Write the Q4 recap post t_9b21
triage content-ops @unassigned
Body One line, no spec yet. Nobody has decided what the pieces are.
Run history
- no runs yet @unassigned
The dispatcher has not started an agent on this card.
What this means A one-line idea with no assignee. With orchestration on, the decomposer reads it, writes child cards, and routes each to the closest profile you actually have. Turn orchestration off and it sits here until you split it yourself.
Draft the outline t_a1c2
ready content-ops @writer
Body Child card written by the decomposer.
Run history
- no runs yet @writer
The dispatcher has not started an agent on this card.
What this means The decomposer read your profile list and routed this child to the closest match.
Check the numbers t_b3d4
ready content-ops @researcher
Body Child card written by the decomposer.
Run history
- no runs yet @researcher
The dispatcher has not started an agent on this card.
What this means The parent card stays alive until every child is done, then wakes up to judge the result.
Design auth schema t_d460
done auth-project @backend-dev
Body Design the user/session/token schema for the auth module.
Run history
1 completed @backend-dev
users(id, email, pw_hash), sessions(id, user_id, jti, expires_at); refresh tokens stored as sessions with type='refresh'
What this means This is the handoff in action. The next agent reads this summary instead of re-reading a design document.
Deploy to staging (missing creds) t_ef5d
blocked ops @deploy-bot
Body Deploy the current build to staging.
Run history
1 spawn_failed @deploy-bot
AWS_ACCESS_KEY_ID not set in deploy-bot env
2 spawn_failed @deploy-bot
AWS_ACCESS_KEY_ID not set in deploy-bot env
3 gave_up @deploy-bot
AWS_ACCESS_KEY_ID not set in deploy-bot env
What this means The circuit breaker tripped. The agent never started, so there is nothing to debug in the work itself. The environment is wrong.

The words that do not mean what they mean elsewhere in Hermes.

Tick

One pass of the dispatcher. Default 60 seconds. Nudge dispatcher forces one now instead of waiting for the timer.

In Hermes kanban dispatch · 60 s
Claim

The atomic step that moves a card to running and pins it to one worker. Two dispatchers cannot claim the same card.

In Hermes claimed event
Worker

A full OS process running the assigned profile, spawned for one card. Not a subagent: its own identity, its own memory, its own tools.

In Hermes HERMES_KANBAN_BOARD pinned in the child env
Run

One attempt. Outcome, summary, metadata, error. Retry history is the primary representation, not a latest-state field on the card.

In Hermes task_runs
Worker context

What the worker is handed when it calls kanban_show: the card, its own prior attempts, each parent's most recent completed summary and metadata, the comment thread, attachment paths.

In Hermes build_worker_context
Triage

Where a one-line idea lands. With auto-decompose on, the decomposer splits it into assigned children, at most 3 cards per tick.

In Hermes kanban.auto_decompose_per_tick: 3
Workspace

Where the worker works. scratch is deleted on completion; dir: must be an absolute path and is preserved; worktree is preserved.

In Hermes ~/.hermes/kanban/workspaces/<id>/
Artifacts

Files the worker declares when it completes. They are copied into per-task attachment storage before the scratch directory is removed.

In Hermes kanban_complete(artifacts=[...])
Heartbeat

A long-running worker reporting in, so the dispatcher does not reclaim its card as a stale claim.

In Hermes dispatch_stale_timeout_seconds · 4 h
Tenant

A soft label inside one board. Boards are the hard boundary. A worker cannot see another board, and links across boards are refused.

In Hermes --tenant auth-project
Comment

The inter-agent protocol. A re-spawned worker reads the whole thread as part of its context, so notes you leave are instructions.

In Hermes kanban_comment

Check yourself

A worker spawns on a card. Where do its instructions come from?

Screen 2 of 7.