Get Started
lnk-hermes lets a Link agent run on
Hermes Agent by Nous Research.
It answers Link's harness adapter commands: installing Hermes,
configuring it, and saying how to run it. It comes with Link: lnk agent use hermes adds it and installs Hermes the first time, in its own home,
~/Link/Agents/<agent>/Harnesses/hermes. Every other command is on
Link's Agents page. How it compares
with Link's other harnesses: Harnesses.
Quickstart
lnk up agents
lnk agent use hermes # installs it, then starts it with your settingsUse a hosted model
Anthropic, OpenAI or OpenRouter, with a key.
ANTHROPIC_API_KEY=sk-ant-... lnk agent startUse a local model
Hermes takes any local runtime lnk model list finds (Ollama, LM Studio,
llama.cpp, ...), configured as a custom provider at its /v1 address.
It needs the models plugin, and a 64k-token context (see
Troubleshooting for Ollama).
lnk up models
lnk agent start --model qwen3Move from OpenClaw to Hermes
use hands Hermes the same model, files folder and channels (its
Telegram bot, its Slack app, its Discord bot), so it answers the same
chats; WhatsApp and Signal link again from a QR code. OpenClaw's memory and conversations stay in its
home: Hermes's own hermes claw migrate imports OpenClaw's memory and
skills (one way; Link doesn't run it for you).
lnk agent use hermes
lnk agent status
lnk agent use openclaw # and backTalk to it in Slack
Hermes's Slack works through Link's proxy, without lan. Hermes's own
commands (/sethome, /stop, /commands) work as messages in your DM
with it: type a space before the /, since Slack takes a leading /
for a slash command of the app, and Link's app has none.
How it runs
lnk agent start installs Hermes's own release, the one Link pins,
with its own Python and Node, in its home, and runs its gateway there,
in the sandbox. Its terminal starts in your files folder. What it
installs and which ports it uses: Security.
It reports its scheduled jobs to your direct message with the agent on
each channel: Link sets that as Hermes's home channel at every start,
over a /sethome. A Discord bot connected before Link kept its direct
message has none: send /sethome there, or connect it again.
Troubleshooting
| Symptom | Fix |
|---|---|
| It fails or forgets with a local Ollama model | Hermes needs a 64k context: OLLAMA_CONTEXT_LENGTH=64000 ollama serve. |
The install fails at git clone on a Mac | Its installer needs git, from developer-tools, on unless you denied it: lnk agent allow developer-tools. |
| Something else on your Mac uses port 8642 or the ports after it | Stop it: main's port is fixed. Another agent's is in its own block (lnk agent list --json). |
Files it keeps
| File | What it is |
|---|---|
<harness home>/.hermes/.lnk-tools.json | The MCP servers this adapter added to Hermes's settings, one per tool, so it removes only its own. |
<harness home>/bin/lnk-hermes | This adapter, copied at each start: Signal's relay runs it in the sandbox. |
Why it works this way: Decisions. What it may do: Security.
Work on its code
Build and test
It depends on link-plugin from link-core, checked out beside
this folder.
cargo fmt --check
cargo clippy --all-targets --locked -- -D warnings
cargo test --locked
# Hermes Agent itself, installed and run by link-core's lnk-harness in its
# sandbox, on the wire (Linux, bubblewrap; a few hundred MB)
# and the conformance kit (link-core's), run against it
LNK_TEST_REAL=1 cargo test --locked --test on_the_wire -- --test-threads 1Release
Link's release builds lnk-hermes from this folder and ships it as one of
Link's plugins, at the core's version, signed with Link's key.
License
MIT or Apache-2.0, at your option.
