You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|**`clarify`**| Ask the user targeted questions when blocked (venue choice, contribution framing). |
2151
-
|**`send_message`**| Notify user when experiments complete or drafts are ready, even if user isn't in chat. |
2151
+
|**cron `deliver:`**| Notify the user when experiments complete or drafts are ready even if they're not in chat — schedule the check as a cron job with a messaging `deliver:` target (the agent no longer has a `send_message` tool; outbound delivery is handled by cron/`hermes send`). |
2152
2152
2153
2153
### Tool Usage Patterns
2154
2154
@@ -2159,7 +2159,7 @@ terminal("ps aux | grep <pattern>")
-**Direct reply** — send response back to the originating chat
195
195
-**Home channel delivery** — route cron job outputs and background results to a configured home channel
196
-
-**Explicit target delivery** — `send_message` tool specifying `telegram:-1001234567890`, or the [`hermes send` CLI](/guides/pipe-script-output)wrapping the same tool for shell scripts
196
+
-**Explicit target delivery** — the send engine specifying `telegram:-1001234567890`, exposed via the [`hermes send` CLI](/guides/pipe-script-output)for shell scripts and via cron `deliver:` targets
197
197
-**Cross-platform delivery** — deliver to a different platform than the originating message
198
198
199
199
Cron job deliveries are NOT mirrored into gateway session history — they live in their own cron session only. This is a deliberate design choice to avoid message alternation violations.
Copy file name to clipboardExpand all lines: website/docs/guides/delegation-patterns.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -218,7 +218,7 @@ Restricting toolsets keeps the subagent focused and prevents accidental side eff
218
218
## Constraints
219
219
220
220
-**Default 3 parallel tasks**: batches default to 3 concurrent subagents (configurable via `delegation.max_concurrent_children` in config.yaml, no hard ceiling, only a floor of 1)
221
-
-**Nested delegation is opt-in**: leaf subagents (default) cannot call `delegate_task`, `clarify`, `memory`, `send_message`, or `execute_code`. Orchestrator subagents (`role="orchestrator"`) retain `delegate_task` for further delegation, but only when `delegation.max_spawn_depth` is raised above the default of 1 (floor 1, no ceiling); the other four remain blocked. Disable globally via `delegation.orchestrator_enabled: false`.
221
+
-**Nested delegation is opt-in**: leaf subagents (default) cannot call `delegate_task`, `clarify`, `memory`, or `execute_code`. Orchestrator subagents (`role="orchestrator"`) retain `delegate_task` for further delegation, but only when `delegation.max_spawn_depth` is raised above the default of 1 (floor 1, no ceiling); the other three remain blocked. Disable globally via `delegation.orchestrator_enabled: false`.
|`hermes lsp`| Manage Language Server Protocol integration (semantic diagnostics for write_file/patch). |
47
47
|`hermes setup`| Interactive setup wizard for all or part of the configuration. |
48
48
|`hermes whatsapp`| Configure and pair the WhatsApp bridge. |
49
+
|`hermes whatsapp-cloud`| Configure the official Meta WhatsApp Business Cloud API adapter (Business account + public webhook required). Distinct from `hermes whatsapp` (Baileys personal-account bridge). |
49
50
|`hermes slack`| Slack helpers (currently: generate the app manifest with every command as a native slash). |
|`hermes project`| Manage named, multi-folder workspaces (projects). Anchors desktop session grouping and, when bound to a kanban board, gives tasks a deterministic worktree + branch convention. State is per-profile. |
58
60
|`hermes webhook`| Manage dynamic webhook subscriptions for event-driven activation. |
59
61
|`hermes hooks`| Inspect, approve, or remove shell-script hooks declared in `config.yaml`. |
60
62
|`hermes doctor`| Diagnose config and dependency issues. |
|`install`| Install as a systemd (Linux) or launchd (macOS) background service. |
227
231
|`uninstall`| Remove the installed service. |
228
232
|`setup`| Interactive messaging-platform setup. |
233
+
|`migrate-legacy`| Remove legacy `hermes.service` units left over from pre-rename installs. Profile units (`hermes-gateway-<profile>.service`) and unrelated services are never touched. Flags: `--dry-run`, `-y`/`--yes`. |
229
234
|`enroll`| Experimental: enroll this gateway with a relay connector and save relay credentials for connector-backed platforms. |
230
235
231
236
Options:
@@ -235,7 +240,7 @@ Options:
235
240
|`--all`| On `start` / `restart` / `stop`: act on **every profile's** gateway, not just the active `HERMES_HOME`. Useful if you run multiple profiles side-by-side and want to restart them all after `hermes update`. |
236
241
|`--no-supervise`| On `run`: inside the s6-overlay Docker image, opt out of auto-supervision and use pre-s6 foreground semantics — gateway runs as the container's main process with no auto-restart. No-op outside the s6 image. Equivalent to setting `HERMES_GATEWAY_NO_SUPERVISE=1`. |
237
242
238
-
`hermes gateway enroll` accepts `--token`, `--connector-url`, and `--gateway-id`. It exchanges the enrollment token with the connector and writes the resulting `GATEWAY_RELAY_ID`, `GATEWAY_RELAY_SECRET`, `GATEWAY_RELAY_DELIVERY_KEY`, and optional `GATEWAY_RELAY_URL` values to the active profile's `.env`.
243
+
`hermes gateway enroll` accepts `--token`, `--connector-url`, `--gateway-id`, and `--wake-url`. It exchanges the enrollment token with the connector and writes the resulting `GATEWAY_RELAY_ID`, `GATEWAY_RELAY_SECRET`, `GATEWAY_RELAY_DELIVERY_KEY`, optional `GATEWAY_RELAY_URL`, and (when `--wake-url` is given) `GATEWAY_RELAY_WAKE_URL` values to the active profile's `.env`.
239
244
240
245
:::tip WSL users
241
246
Use `hermes gateway run` instead of `hermes gateway start` — WSL's systemd support is unreliable. Wrap it in tmux for persistence: `tmux new -s hermes 'hermes gateway run'`. See [WSL FAQ](/reference/faq#wsl-gateway-keeps-disconnecting-or-hermes-gateway-start-fails) for details.
@@ -613,6 +618,28 @@ All actions are also available as a slash command in the gateway (`/kanban …`)
613
618
614
619
For the full design — comparison with Cline Kanban / Paperclip / NanoClaw / Gemini Enterprise, eight collaboration patterns, four user stories, concurrency correctness proof — see `docs/hermes-kanban-v1-spec.pdf` in the repository or the [Kanban user guide](/user-guide/features/kanban).
Projects are human-named workspaces that can span multiple folders / repos. They anchor desktop session grouping and, when bound to a kanban board, give tasks a deterministic worktree + branch convention. State is per-profile.
628
+
629
+
| Subcommand | Description |
630
+
|------------|-------------|
631
+
|`create`| Create a new project. |
632
+
|`list` (alias `ls`) | List projects. |
633
+
|`show`| Show a project's details. |
634
+
|`add-folder`| Add a folder / repo to a project. |
635
+
|`remove-folder`| Remove a folder from a project. |
636
+
|`rename`| Rename a project. |
637
+
|`set-primary`| Set the primary folder. |
638
+
|`use`| Set the active project. |
639
+
|`archive`| Archive a project (recoverable). |
640
+
|`restore`| Restore an archived project. |
641
+
|`bind-board`| Bind a kanban board to this project. |
642
+
616
643
## `hermes webhook`
617
644
618
645
```bash
@@ -1299,6 +1326,27 @@ of the update if cua-driver is on PATH, so most users will not need to
1299
1326
call `--upgrade` manually. Use it when upstream ships a fix you want
1300
1327
right now without waiting for the next Hermes update.
[Petdex](https://github.com/crafter-station/petdex) is a public gallery of animated sprite pets for coding agents. Install one and Hermes shows it reacting to agent activity across the CLI, TUI, and desktop app.
1336
+
1337
+
| Subcommand | Description |
1338
+
|------------|-------------|
1339
+
|`list`| Browse the petdex gallery. |
1340
+
|`install`| Install a pet from the gallery. |
1341
+
|`select`| Set the active pet (writes `display.pet.*`). |
1342
+
|`show`| Animate the active pet in the terminal. |
1343
+
|`off`| Disable the pet display. |
1344
+
|`scale`| Resize the pet everywhere (`display.pet.scale`). |
1345
+
|`remove`| Delete an installed pet. |
1346
+
|`doctor`| Check pet setup + terminal graphics support. |
1347
+
1348
+
You can also generate a brand-new pet from a text description with the `/hatch` slash command. See [Pets](../user-guide/features/pets.md).
1349
+
1302
1350
## `hermes sessions`
1303
1351
1304
1352
```bash
@@ -1392,11 +1440,22 @@ Launch the web dashboard — a browser-based UI for managing configuration, API
1392
1440
|`--port`|`9119`| Port to run the web server on |
1393
1441
|`--host`|`127.0.0.1`| Bind address |
1394
1442
|`--no-open`| — | Don't auto-open the browser |
1395
-
|`--insecure`| off | Allow binding to non-localhost hosts. Exposes dashboard credentials on the network; use only behind trusted network controls. |
1443
+
|`--insecure`| off |**Deprecated / no-op.** Formerly bypassed auth on a non-loopback bind. Since the June 2026 hardening a public bind *always* requires an auth provider (password or OAuth). Bind `127.0.0.1` and tunnel to keep it local. |
1444
+
|`--skip-build`| off | Skip the web UI build step and serve the existing `dist` directly. Useful for non-interactive contexts (Windows Scheduled Tasks, CI) where npm isn't available. Pre-build with `cd web && npm run build`. |
1396
1445
|`--isolated`| off | When launched from a named profile (`worker dashboard`), run a dedicated per-profile server instead of routing to the machine dashboard. |
|`--status`| — | List running `hermes dashboard` processes and exit. |
1399
1448
1449
+
### `hermes dashboard register`
1450
+
1451
+
Register this install as a self-hosted dashboard with your Nous Portal account. Creates an OAuth client, writes `HERMES_DASHBOARD_OAUTH_CLIENT_ID` into `~/.hermes/.env`, and prints how to engage the login gate. Requires being logged in (`hermes setup`).
1452
+
1453
+
| Option | Description |
1454
+
|--------|-------------|
1455
+
|`--name`| Human-readable label for the dashboard (default: auto-generated). |
1456
+
|`--redirect-uri`| Public HTTPS OAuth redirect URI (e.g. `https://hermes.example.com/auth/callback`). Omit for localhost-only use. |
1457
+
|`--portal-url`| Override the Nous Portal base URL for registration (default: the portal you logged into). Also settable via `HERMES_DASHBOARD_PORTAL_URL`. |
1458
+
1400
1459
```bash
1401
1460
# Default — opens browser to http://127.0.0.1:9119
0 commit comments