跳到主要内容

inbox

❖ Community

hermes inbox: one read-only view of everything in flight for the active profile: failed or paused cron jobs, stalled or dropped delegations, orphaned background processes, blocked kanban tasks, running work, undelivered delegation results, upcoming cron runs and open chat sessions, with --json for scripts. A Hermes Labs plugin: built by Nous Research, not supported.

Open in Hermes Desktop
hermes plugins install inbox

README

From the reviewed commit 62dbc16 ↗; it updates when the author re-pins.

Inbox

Labs plugin: works, but unsupported. Nous Research built it and does not maintain it. See what "labs" means.

hermes inbox shows everything Hermes has in flight for the active profile in one read-only view: what needs your attention, what is running, which background results are waiting, what is scheduled and which chat surfaces are open. Inspired by Cursor's Inbox.

$ hermes inbox

  ◆ Needs attention (4)
    ⚠ cron 'nightly-backup'  last run FAILED: Script exited with code 1 stderr: backup target /mnt/nas not mounted
    ⚠ cron 'feed-watch'  paused (waiting on API key)
    ⚠ process proc_9f2c44  [GONE (stale checkpoint), 3h13m]  pytest -x tests/ --watch
    ⚠ kanban t_12200367  [blocked]  Get Stripe test keys from finance

  ◆ In progress (2)
    ◐ process proc_7c1e02  [running, 22m]  npm run dev -- --port 5173
    ◐ delegation dlg_41a7  [running, 5m ago]  Research venue pricing for 40 people in Austin

  ◆ Finished, result not yet delivered (1)
    ✔ delegation dlg_3b90  [completed, 3m ago]  (result awaiting delivery)  List every caller of charge_customer()

  ◆ Scheduled (2 active job(s))
    ⏱ nightly-backup  next: 2026-10-21T06:08:46.190275-07:00
    ⏱ morning-digest  next: 2026-10-21T08:00:00-07:00

  ◆ Open surfaces (2)
    ◎ session [cli] pid=1197440  Plan the offsite
    ◎ session [tui] pid=1197519  Refactor the billing module

Install

hermes plugins install inbox

It adds one CLI command (hermes inbox). No model tools, no hooks, nothing runs during chats. No dependencies beyond Hermes itself. The agent can still use it: ask it to run hermes inbox --json in the terminal.

Usage

hermes inbox            # the view above
hermes inbox --json     # the same snapshot as JSON, for scripts and dashboards
hermes -p work inbox    # another profile's inbox (install the plugin in that profile too)

Sections with nothing in them are left out, except "Needs attention" and "In progress", which always print so an empty inbox reads as all clear.

Section What appears
Needs attention Stalled or unknown delegations, delegation results dropped after failed deliveries (last 7 days), cron jobs whose last run failed or that were paused with a reason, background processes still in the checkpoint whose PID is gone, kanban tasks that are blocked or waiting for review.
In progress Live background processes, running async delegations, running kanban tasks.
Finished, result not yet delivered Delegations that completed but whose result has not reached its conversation yet.
Scheduled Enabled cron jobs and the next five runs.
Open surfaces Open CLI, TUI, Desktop and gateway chat sessions whose process is still alive, with the session title.

What it reads

Everything is read-only: JSON files are read as files, SQLite databases are opened with mode=ro, and session titles come from Hermes' read-only SessionDB attach. It never writes, repairs or prunes a store (SQLite may create a database's -wal/-shm sidecar files, as it does for any reader), and works whether or not a gateway is running. Paths resolve against the active profile's home (HERMES_HOME, or hermes -p <profile>), except the kanban board, which Hermes shares across profiles.

Source Store If it is missing or unreadable
Background processes <home>/processes.json (the process registry checkpoint). Host PIDs are re-checked with psutil; PIDs inside a sandbox backend can't be probed and show as sandboxed. Section empty; listed under "Not read".
Async delegations async_delegations table in <home>/state.db Same. A locked database gives up after 2 seconds instead of hanging.
Cron jobs <home>/cron/jobs.json Same.
Open chat surfaces <home>/runtime/active_sessions.json (active-session leases), titles from state.db via SessionDB(read_only=True). A lease counts only while its PID is alive and, when recorded, its process start time still matches (a recycled PID is not counted). Same; without state.db the session id shows instead of the title.
Kanban The current board's kanban.db, resolved the documented way: HERMES_KANBAN_DB, else HERMES_KANBAN_BOARD, else <root>/kanban/current, else <root>/kanban.db, with <root> = HERMES_KANBAN_HOME or the default Hermes root. Same.

Every section that could not be read is named at the bottom of the text view ("Not read") and in the sources field of the JSON ("read", "absent" or "unreadable (...)").

Not shown: pending approvals and clarify prompts. They live in the memory of the process that asked (the gateway or an open CLI), with no store another process can read, so answer them in that chat.

Configuration

None.

Development

cd inbox
HERMES_AGENT_REPO=../../hermes-agent PYTHONPATH=../../hermes-agent python -m pytest -q

The tests seed a temp HERMES_HOME through Hermes' own writers (SessionDB for state.db, kanban_db.init_db for kanban.db), so the queries run against core's real schema, and they check that building the inbox writes nothing to the home it reads.

Origin: hermes-agent PR #81507 (hermes inbox), moved out of core into this plugin.

Disclosure

accent-picker✓ Official★ 348

OKLCH accent colour picker for the Hermes Desktop status bar: drag it and the whole theme retints live, with palette commands to reset to the theme default or copy the current colour. A theme-authoring tool; the colour is scratch state and is never persisted. Desktop-only (desktop/plugin.js inside the plugin SDK surface); no agent tools, hooks, middleware or env vars.

Desktop
agent-importers✓ Official★ 348

`hermes import-agent`: import a Claude Code (~/.claude), Codex CLI (~/.codex) or Cursor (~/.cursor) setup into Hermes in one command. Instructions, Cursor rules and memories become memory entries, Bash permission rules become command allow/deny lists, MCP servers land in config.yaml and skills are copied; always previews first, and `--sync` re-imports sources that changed. Formerly built into Hermes core; profiles with a registered sync source are migrated automatically.

Tools
blender✓ Official★ 348

Official Blender Lab MCP server over stdio, pinned to upstream v1.0.3, with a Blender workflow skill. Requires Blender 5.1+, its separately installed MCP add-on, Git and uv. First startup downloads Python dependencies; prepare the uv environment before connecting.

Tools
bubblewrap✓ Official★ 348

Bubblewrap terminal backend for Linux: every terminal and execute_code command runs in its own bwrap sandbox on this machine at the host's own paths, with a read-only root, a writable working directory (per profile: restricted, workspace or network), SSH keys, cloud credentials and the Hermes home hidden, private temp and process directories, agent and docker sockets masked, and per-command memory, CPU and process limits (`hermes config set terminal.backend bubblewrap`).

Tools
claude-subscription-directsdk✓ Official★ 348

Experimental model provider that runs Hermes turns on a Claude Pro/Max subscription through the official Claude Code CLI (the Agent SDK path), so no separate API key or per-token bill. Requires the claude CLI installed and logged in; the plugin checks for it at load, in hermes model, in the pickers and before every request, and refuses cleanly with the install hint when it is missing.

Models
hermes-memory-wiki✓ Official★ 348

Memory Wiki dashboard tab: browsable subject pages and daily logs derived from local session history, plus a read-only Persistent Memory (MEMORY.md / USER.md) audit panel.

Desktop

← Back to the catalog · catalog built Oct 21, 2026