Docs · Hermes Agent
Run Hermes Agent on your company's accounts
Hermes Agent is Nous Research's terminal agent. Here it gets your company's models, connectors and skills. It is one of the Selan apps.
Get started
How do I run Hermes with selan?
selan app hermes chat
The first time, selan app prints the commit and the scripts and asks
[y/N]: only y or yes approves, and Enter refuses. It installs Hermes, then starts it. Everything after hermes
goes to Hermes, so a single question without the screen is:
selan app hermes chat -m gpt-6.1-sol -q "hello"
You need curl and git. The installer fetches uv and
Python itself if you have none. It runs on macOS and Linux; on Windows use WSL.
How do I run Hermes without selan?
You need an API token, which an owner mints in control under Settings → API tokens. Read the script, then:
export SELAN_TOKEN=selanct_...
curl -fsSL https://raw.githubusercontent.com/selan-ai/selan-apps/main/hermes/install.sh | bash
~/.selan/apps/hermes/run.sh chat
Run the copy of run.sh that the installer leaves, rather than piping it, so
Hermes has a terminal.
How do I run Hermes on a server?
Add the selan-apps plugin to Claude Code and ask for a
deploy. deploy-google-cloud makes a Compute Engine VM in your project.
deploy-hostinger uses a Hostinger VPS you already have, and it has not been
tested against a real VPS.
On a server, Hermes runs as its chat gateway under systemd. A server has no session, so an owner creates an API token under Settings → API tokens and you paste it into a line that hides it. Claude never sees it. The skill keeps it in Secret Manager or in a file only root can read, and revokes it when you remove the deploy.
The gateway does nothing until it has a chat platform and an allowed user. Only you can
give those. Put them in ~/.selan/apps/hermes/home/.env on the server, for
example TELEGRAM_BOT_TOKEN and TELEGRAM_ALLOWED_USERS, and
restart the service. Do not set GATEWAY_ALLOW_ALL_USERS.
How it works
What does Hermes put on my disk?
Everything is under ~/.selan/apps/hermes.
| Path | What |
|---|---|
hermes-agent/ | The Hermes release the catalog pins. |
venv/, python/, uv/, cache/ | Its Python environment and the tools that build it. |
home/ | Hermes's own home: config.yaml, sessions and memory. |
marketplaces/ | Shallow clones of your company's plugin marketplaces. |
xdg/ | What Hermes and its tools keep in ~/.local, ~/.cache and ~/.config. |
run.sh | A copy of the launch script. |
Nothing goes to your shell rc files, to ~/.local/bin or to
~/.hermes. A bare hermes still uses ~/.hermes, so
always start it through run.sh or selan app.
The token is never written to disk. It reaches Hermes in its environment, as
ANTHROPIC_API_KEY with ANTHROPIC_BASE_URL pointing at the
gateway's Anthropic Messages endpoint. config.yaml only names it, and only
connectors on selan.ai that sign in with your Selan session get it. Hermes
can leave a background gateway process running with the environment of the launch that
started it, so every launch stops any such process first.
Which models, connectors and skills does Hermes get?
Each launch writes config.yaml again from what your company has switched
on, so a change reaches the next launch. Change Hermes's own behaviour with
hermes config, not by editing that file.
- Models. Your company's catalog, through the gateway. Pick one with
-m. - Connectors. The connectors that sign in with your Selan session.
- Skills. The skills in the plugin marketplaces your company switched on for the CLI.
What if Hermes did not work?
- It says
SELAN_TOKENis not set. By hand, export aselanct_token first.selan appsets it for you. - It says Hermes is not installed. Run
install.shfirst, or useselan app hermes, which does both. - It could not read company settings. The token is wrong, revoked or expired, or the gateway cannot be reached. Create a new one.
- A model answers with “extra usage”. That is the Claude subscription rule above. Pick another model.
- The server's gateway does nothing. It needs a chat platform and an allowed user in
home/.env. - Something else. Ask us.