Operate Hermes Agent
Start from the installed runtime and the active profile, then change only the state the user placed in scope.
Establish the Active Runtime
- Run
hermes --version.
- Identify the active profile and Hermes home before reading or changing configuration.
- Use
hermes status for a broad runtime check and the narrower status command for the affected subsystem.
- Distinguish the installed launcher, the managed source checkout, profile state, and project-local context.
- Refresh the matching official docs when command names, defaults, provider catalogs, or security behavior matter.
- Use
hermes update --check before proposing an update. Inspect dirty files,
carried commits, divergence, and the install method before running the
mutating updater.
Choose the Operating Surface
- CLI conversation:
hermes or hermes chat.
- Modern terminal UI:
hermes --tui.
- Local management UI:
hermes dashboard; do not expose it beyond localhost without an explicit authentication and network plan.
- Profile isolation: use Hermes profiles when config, credentials, memory, sessions, skills, or gateway state must be independent.
- Repository isolation: use Git worktrees for parallel or experimental coding sessions.
- Remote or isolated execution: choose the terminal backend deliberately; use containerized or managed backends for untrusted or unattended work.
- Editor integration: hand ACP registry, launch, handshake, and session work to
operate-acp-agent-integration; use hermes acp --check as the local
non-interactive preflight.
Configure Through Owned Commands First
- Use
hermes setup for first-run configuration.
- Use
hermes model for provider authentication and model setup between sessions; use /model for switching among configured choices inside a session.
- Use
hermes tools for toolset and per-tool backend selection.
- Use
hermes skills for skill discovery, install, update, and tap management.
- Use
hermes portal info only for Nous Portal and Tool Gateway routing state.
- Edit
config.yaml or .env directly only when the CLI/dashboard cannot represent the needed setting or the task is explicitly config-file work.
Import Existing Agent Configuration Safely
Use hermes import-agent claude-code --dry-run or
hermes import-agent codex --dry-run before migrating an existing setup. Review
the proposed instruction, permission, MCP, skill, and memory mappings item by
item. Hermes does not import API keys or credentials; configure providers
separately with hermes setup or hermes model.
The normal importer skips name conflicts. Use --overwrite only after reviewing
the destination state and preserving anything that must survive. Do not use
--yes together with --overwrite for an unreviewed home directory.
Operate Persistent Goals And Voice
- Use
/goal draft <objective> when completion criteria, evidence, scope, and
stop conditions should be made explicit before autonomous continuation.
- Add quality gates with
/goal gate add <command> only when the command is a
deterministic, bounded proof. Use /goal wait for a real background process
rather than consuming continuation turns by polling.
- Keep
/goal single-session. Use Hermes Kanban for multiple independently
scheduled workers; neither surface implicitly creates the other.
- Treat voice mode, wake-word listening, and desktop push-to-talk as separate
microphone paths. Verify the selected input device and local-only exposure,
and tune barge-in only from observed false triggers or missed speech.
Protect Operator State
- Treat auth stores,
.env, provider keys, messaging tokens, and managed-scope configuration as secrets.
- Prefer checkpoints and worktrees for risky repository changes; confirm checkpoint state before promising
/rollback recovery.
- Keep command approval, user authorization, terminal isolation, tool allowlists, MCP filtering, and network exposure as separate controls.
- For unattended gateways, prefer Docker, Modal, or Daytona-style isolation over direct host execution when the workflow permits it.
- Do not run install, update, login, dashboard, gateway, or browser-opening commands when the user asked only for explanation or diagnosis.
Diagnose by Layer
- Launcher and version.
- Active profile and config source.
- Provider credentials and runtime resolution.
- Model selection and API mode.
- Toolset and backend selection.
- Skill or plugin discovery.
- Session, memory, or context-file state.
- Terminal backend, permissions, and network reachability.
- Gateway or hosted-service state, if involved.
- Goal judge/gate or voice-device state, if involved.
Report the exact layer that failed and the next read-only check before proposing a mutation.
Verification
Verify only the affected path. Examples:
- configuration:
hermes status plus the subsystem status command;
- provider: provider/model status and one harmless prompt;
- skill: discovery plus explicit invocation;
- terminal backend: a harmless command in the selected backend;
- worktree: repository path and branch isolation;
- security: approval, authorization, or isolation state without performing a dangerous action.
Read references/operator-surface-map.md for state locations, commands, failure modes, and official sources.
1---2name: operate-hermes-agent3description: Install, update, migrate to, configure, run, secure, and troubleshoot Hermes Agent across its CLI, TUI, desktop, dashboard, profiles, tools, skills, memory, models, goals, voice, sessions, worktrees, and terminal backends.4---56# Operate Hermes Agent78Start from the installed runtime and the active profile, then change only the state the user placed in scope.910## Establish the Active Runtime11121. Run `hermes --version`.132. Identify the active profile and Hermes home before reading or changing configuration.143. Use `hermes status` for a broad runtime check and the narrower status command for the affected subsystem.154. Distinguish the installed launcher, the managed source checkout, profile state, and project-local context.165. Refresh the matching official docs when command names, defaults, provider catalogs, or security behavior matter.176. Use `hermes update --check` before proposing an update. Inspect dirty files,18 carried commits, divergence, and the install method before running the19 mutating updater.2021## Choose the Operating Surface2223- CLI conversation: `hermes` or `hermes chat`.24- Modern terminal UI: `hermes --tui`.25- Local management UI: `hermes dashboard`; do not expose it beyond localhost without an explicit authentication and network plan.26- Profile isolation: use Hermes profiles when config, credentials, memory, sessions, skills, or gateway state must be independent.27- Repository isolation: use Git worktrees for parallel or experimental coding sessions.28- Remote or isolated execution: choose the terminal backend deliberately; use containerized or managed backends for untrusted or unattended work.29- Editor integration: hand ACP registry, launch, handshake, and session work to30 `operate-acp-agent-integration`; use `hermes acp --check` as the local31 non-interactive preflight.3233## Configure Through Owned Commands First3435- Use `hermes setup` for first-run configuration.36- Use `hermes model` for provider authentication and model setup between sessions; use `/model` for switching among configured choices inside a session.37- Use `hermes tools` for toolset and per-tool backend selection.38- Use `hermes skills` for skill discovery, install, update, and tap management.39- Use `hermes portal info` only for Nous Portal and Tool Gateway routing state.40- Edit `config.yaml` or `.env` directly only when the CLI/dashboard cannot represent the needed setting or the task is explicitly config-file work.4142## Import Existing Agent Configuration Safely4344Use `hermes import-agent claude-code --dry-run` or45`hermes import-agent codex --dry-run` before migrating an existing setup. Review46the proposed instruction, permission, MCP, skill, and memory mappings item by47item. Hermes does not import API keys or credentials; configure providers48separately with `hermes setup` or `hermes model`.4950The normal importer skips name conflicts. Use `--overwrite` only after reviewing51the destination state and preserving anything that must survive. Do not use52`--yes` together with `--overwrite` for an unreviewed home directory.5354## Operate Persistent Goals And Voice5556- Use `/goal draft <objective>` when completion criteria, evidence, scope, and57 stop conditions should be made explicit before autonomous continuation.58- Add quality gates with `/goal gate add <command>` only when the command is a59 deterministic, bounded proof. Use `/goal wait` for a real background process60 rather than consuming continuation turns by polling.61- Keep `/goal` single-session. Use Hermes Kanban for multiple independently62 scheduled workers; neither surface implicitly creates the other.63- Treat voice mode, wake-word listening, and desktop push-to-talk as separate64 microphone paths. Verify the selected input device and local-only exposure,65 and tune barge-in only from observed false triggers or missed speech.6667## Protect Operator State6869- Treat auth stores, `.env`, provider keys, messaging tokens, and managed-scope configuration as secrets.70- Prefer checkpoints and worktrees for risky repository changes; confirm checkpoint state before promising `/rollback` recovery.71- Keep command approval, user authorization, terminal isolation, tool allowlists, MCP filtering, and network exposure as separate controls.72- For unattended gateways, prefer Docker, Modal, or Daytona-style isolation over direct host execution when the workflow permits it.73- Do not run install, update, login, dashboard, gateway, or browser-opening commands when the user asked only for explanation or diagnosis.7475## Diagnose by Layer76771. Launcher and version.782. Active profile and config source.793. Provider credentials and runtime resolution.804. Model selection and API mode.815. Toolset and backend selection.826. Skill or plugin discovery.837. Session, memory, or context-file state.848. Terminal backend, permissions, and network reachability.859. Gateway or hosted-service state, if involved.8610. Goal judge/gate or voice-device state, if involved.8788Report the exact layer that failed and the next read-only check before proposing a mutation.8990## Verification9192Verify only the affected path. Examples:9394- configuration: `hermes status` plus the subsystem status command;95- provider: provider/model status and one harmless prompt;96- skill: discovery plus explicit invocation;97- terminal backend: a harmless command in the selected backend;98- worktree: repository path and branch isolation;99- security: approval, authorization, or isolation state without performing a dangerous action.100101Read [references/operator-surface-map.md](references/operator-surface-map.md) for state locations, commands, failure modes, and official sources.