Skip to main content
Hermes lets your OpenHome agent answer questions and run tasks through your local Hermes Agent from Nous Research. You ask a question out loud, Hermes answers using its tools, memory, and skills, and the reply is spoken back in natural, conversational language.
OpenHome doesn’t run on your local machine, so it can’t reach localhost on its own. OpenHome Local Link, the openhome local gateway from the OpenHome CLI, runs on your PC and provides that connection. It routes each request to whichever local handler is available, including Hermes when it’s installed and configured. No separate bridge script or client app to install. For the lighter-weight terminal alternatives, see Connect to OpenClaw and Local Connect.

What you can build

  • A voice front-end for your Hermes Agent’s tools, memory, and skills
  • Hands-free system queries (disk usage, running processes, file lookups)
  • Conversational research and Q&A with follow-up questions
  • Voice-driven developer workflows backed by Hermes’ tool calls
  • Any task your Hermes install can already do, now spoken

How it works

The integration has two pieces:

The Ability (main.py)

  1. Trigger: you say the wake phrase (e.g. “hermes”). OpenHome activates the Ability.
  2. Connection check: the Ability pings Local Link to confirm it’s connected, then runs a discovery call to confirm hermes is one of the detected handlers.
  3. Confirmation on destructive requests: a request containing rm -rf, sudo, kill, killall, or pkill is confirmed with you before it’s sent.
  4. Forward to Hermes: the request is sent over Local Link with exec_local_command(), and the reply is spoken back.
  5. Conversation loop: after the first answer it keeps listening, so you can ask follow-up questions without repeating the wake word.
  6. Exit: saying an exit word (“stop”, “that’s all”, “goodbye”, “never mind”) ends the session and hands control back to your normal OpenHome assistant.
Local Link is the openhome local gateway running on your computer. It routes each incoming request to a local handler:
  • local-link: a raw shell executor. Always available.
  • hermes: used when Hermes is installed and configured.
  • openclaw: used when OpenClaw is installed and its gateway is running.
The gateway auto-detects which handlers are ready and reports them to the Agent, which is how the Ability’s discovery check finds hermes.

Setup

1. Install Hermes

Install the Hermes Agent from Nous Research and configure it with an LLM API key (Anthropic, OpenAI, etc.) as described in the project’s README. Local Link drives Hermes over ACP (Agent Client Protocol), so the ACP extra needs to be installed too:
Local Link detects this automatically on startup and will install it for you on first use if it’s missing. If detection still fails, run that command manually from your Hermes checkout.

2. Install and log in to the OpenHome CLI

Local Link ships with the OpenHome CLI. Install it with the one-line installer, or from the repo if you need Python 3.10+ directly:
See OpenHome CLI for the repo-based install method, JWT setup, and the full command reference. Run the gateway on the same machine where Hermes is installed, and keep it running:
openhome local run runs it in the foreground for debugging. start and run accept --client-id (device name, default laptop), --role (default agent), and --timeout (per-request seconds, default 30). Give each device a distinct --client-id if you run more than one.

4. Install the Hermes Ability

Add the ready-made Hermes template from the Marketplace:
1

Open the Marketplace

Dashboard → Marketplace.
2

Add the Hermes template

Find the Hermes ability template and add it to your account.
3

Review or tweak (optional)

Open it in the Live Editor if you want to review or customize the code.
4

Set trigger words

Set Trigger Words, e.g. hermes, ask hermes, hey hermes.
5

Enable it

Enable the Ability on your agent.
To edit the Ability later, use the OpenHome Live Editor, no re-upload needed.

Using it

Say the wake word, with or without a question:
“Hermes.” “Sending your inquiry to Hermes, one moment.” “What’s my disk usage and the biggest folders in my home directory?” “Your main drive is about 72 percent full, with roughly 64 gigabytes free. The largest folders are Videos and Projects, each around 28 gigabytes.” “What time is it?” “It’s 1:42 in the afternoon.” “That’s all, thanks.” “Exiting now.”
You don’t repeat the wake word for follow-ups, the loop keeps listening until you signal you’re done.

Troubleshooting

Local Link is connected but didn’t detect the Hermes handler, this means its ACP interface isn’t available. Install the ACP extra from your Hermes checkout: cd ~/.hermes/hermes-agent && uv pip install -e '.[acp]', then restart the gateway: openhome local stop && openhome local start.
Hermes requests already get an automatic 120-second floor, ACP turns with tool calls commonly run 40s or more, so this is rarely a plain timeout issue. Watch openhome local logs for what actually happened. Raise --timeout further only if you’re seeing genuinely longer turns.
Local Link’s ACP integration currently denies tool-call approval requests by default as a fail-safe (voice-based approval is planned). Don’t configure Hermes itself to auto-approve tool calls to work around this, that would bypass Local Link’s approval layer entirely. If a workflow needs tool calls, run Hermes directly outside of Local Link for now.
Wrong or expired API key. Re-run openhome login with a fresh key from Dashboard → Settings → API Keys.
Give each gateway a distinct --client-id when running openhome local start.

Security & privacy

Local Link runs Hermes with your user permissions, it can run shell commands, read/write files, and more. Only trigger it with requests you’d be comfortable running yourself.
  • The Ability confirms destructive-looking requests (rm -rf, sudo, kill) before sending them, but that’s a safety net, not a guarantee.
  • Auto-approving Hermes tool calls removes the manual approval step, enable it knowingly.
  • Treat your OpenHome API key as a secret. If it has ever been pasted somewhere public, rotate it in the dashboard.
  • Anyone with access to your OpenHome account can reach Hermes through your gateway while it’s running.

Architecture

Local Link spawns a single hermes acp process when it starts and holds it open for as long as it’s running, every request reuses that same process and session rather than starting Hermes fresh each time. That’s what makes follow-up questions retain context and keeps replies fast: the plugin/config/skill load cost is paid once at startup, not on every turn.

Resources