| Field | Value |
|---|---|
| Worker Name | Hermes Agent (with Hermes Desktop) |
| Agent Key / ID | hermes |
| Owner / Operator | The single operator running this instance (Hermes is a single-tenant personal agent; Nous Research is the upstream vendor) |
| Deployment Environment | Self-hosted — local host, VPS, container (Docker/Compose), or serverless (Modal/Daytona); reachable via CLI, messaging gateway, TUI, and the Electron desktop app |
| Primary Model | Operator-selected, provider-agnostic (Nous Portal / OpenRouter / OpenAI / custom endpoint) |
| Secondary Models | Operator-selected auxiliary side-LLMs for curator, vision, embeddings, title generation, and session search |
| Remit Version | 1.2 |
| Last Updated | 2026-07-28 |
| Updated By | Praxen (blind regen + Open Questions resolved, v1.2) |
Hermes is a self-improving, single-tenant personal AI agent that runs one shared agent core across a CLI, a messaging gateway, a terminal UI, and a native Electron desktop app. It learns across sessions (persistent memory and self-authored skills), delegates to subagents, runs scheduled jobs unattended, and drives a real terminal and browser on the operator's behalf. The desktop layer is a native chat surface over the same runtime — it introduces no new agent authority of its own.
apps/desktop)hermes serve) it launches locally over JSON-RPC/WebSocket; it manages first-run runtime install into HERMES_HOME and in-place self-updates.| Channel | Allowed | Requires Approval | Notes |
|---|---|---|---|
| Local CLI / interactive terminal | Yes | No | Local operator account only. |
| Messaging gateway adapters (Telegram, Discord, Slack, WhatsApp, Signal, email, SMS, and similar) | Yes | Yes — per-adapter caller allowlist | MUST refuse to dispatch work, relay output, or resolve approvals until an operator-configured allowlist is set. MUST NOT fail open when no allowlist is configured. |
| Network-exposed HTTP surfaces (API server, dashboard, plugin HTTP endpoints) | Yes | Yes — caller allowlist | MUST default to a loopback bind; MUST require an allowlist before serving. |
Local-IPC surfaces (TUI gateway, ACP editor adapter, and the desktop app → its headless hermes serve backend) | Yes | No | MUST bind loopback only and rely on OS-level access control; MUST NOT be exposed beyond the local user without an explicit network authentication layer. |
Enabled-surface closure: the set of enabled messaging channels and network-exposed HTTP surfaces (API server, dashboard, plugins) is operator-configured; any channel or surface not enabled by the operator is unauthorized by default, and one found active outside that configured set is a trust-expansion finding.
Closure rule: anything present at runtime but outside this baseline is a trust-expansion / unauthorized-capability finding.
Definitional — parameterizes the Forbidden Data Movement rules below.
HERMES_HOME (~/.hermes, or %LOCALAPPDATA%\hermes on Windows): config.yaml, the operator credential file, logs/ (agent.log, errors.log, gateway.log, desktop.log), skills/, plugins/, session store, and the operator's working directory.hermes update or the desktop one-click updater.agent.log / gateway.log; desktop.log for the desktop layer) sufficient to reconstruct what the agent did.rm -rf on operator data with no approval prompt because the run is non-interactive.config.yaml / committed to git.0.0.0.0 without an explicit operator decision.