What Hermes does differently

Most AI agent frameworks treat every task as a fresh reasoning problem. Hermes takes a different approach: after completing a task, it saves the successful execution path as a skill file. The next time it encounters a similar request, it loads the saved skill and follows the proven steps. Over time, the agent builds a library of playbooks tuned to your specific workflows.

Skills are plain-text YAML files stored in a local directory. You can read, edit, or delete them. There is nothing opaque about the system. If a skill produces bad results, you delete it and Hermes falls back to reasoning from scratch on the next matching request.

Install Hermes

Hermes ships as a single binary. Install it with one command:

curl -fsSL https://hermes-agent.dev/install.sh | bash

This downloads the latest release for your platform (macOS arm64, macOS x64, or Linux x64) and places the binary in ~/.local/bin/hermes. Verify the install:

hermes --version

If your shell does not find the command, add ~/.local/bin to your PATH. The installer prints instructions for this if it detects the directory is not in your PATH.

Configure the LLM provider

Generate a default config file:

hermes init

This creates ~/.config/hermes/config.yaml. Open it and set your provider:

llm:
  provider: anthropic
  model: claude-sonnet-4-20250514
  api_key: sk-ant-your-key-here

Hermes also supports OpenAI and Ollama. For OpenAI:

llm:
  provider: openai
  model: gpt-4o
  api_key: sk-your-key-here

For local Ollama:

llm:
  provider: ollama
  model: llama3.1:70b
  base_url: http://localhost:11434

Connect Telegram

Set up a Telegram bot to send tasks from your phone:

  1. Message @BotFather on Telegram and send /newbot.
  2. Choose a name and username for the bot. BotFather returns a token.
  3. Add the token to your config:
channels:
  telegram:
    enabled: true
    token: "7123456789:AAF..."
    allowed_users:
      - 123456789  # your Telegram user ID

Get your user ID by messaging @userinfobot. The allowed_users whitelist prevents anyone else from using your agent.

Run your first task

Start Hermes:

hermes start

Open your Telegram bot and send a task:

Write a bash script that checks disk usage on all mounted volumes and flags any over 80%

Hermes plans the task, executes it, and sends the result back. The first run on a new task type triggers skill generation. You will see a log line like:

skill saved: ~/.config/hermes/skills/disk-usage-check.yaml

How skills work

After a successful task, Hermes analyzes the steps it took and writes a skill file. A skill file looks like this:

name: disk-usage-check
trigger: "check disk usage"
steps:
  - action: shell
    command: "df -h --output=pcent,target | tail -n +2"
  - action: parse
    pattern: "extract lines where usage > threshold"
  - action: respond
    template: "Volumes over {threshold}%: {results}"
tags: [monitoring, disk, bash]

When the next request matches the trigger pattern, Hermes loads this skill instead of reasoning from scratch. The result is faster execution and more consistent output. Skills accumulate over time, and the agent gets better at your specific recurring tasks.

To review all saved skills:

hermes skills list

To delete a skill that is not working well:

hermes skills delete disk-usage-check

Deploy on Modal for always-on operation

Running Hermes on your laptop means the agent stops when your machine sleeps. For persistent operation, deploy to Modal, a serverless compute platform that bills per second of active execution.

  1. Install the Modal CLI: pip install modal
  2. Authenticate: modal setup
  3. Deploy Hermes:
hermes deploy modal \
  --llm-provider anthropic \
  --llm-key sk-ant-your-key \
  --telegram-token 7123456789:AAF...

The deploy command packages Hermes into a Modal function that wakes up when a Telegram message arrives and goes to sleep after processing. Idle time costs nothing. Active processing costs roughly $0.0001 per second on Modal's standard GPU-free tier.

For a typical personal agent handling 20 to 30 tasks per day, this works out to $2 to $5 per month in compute costs, plus your LLM API spend.

Troubleshooting

Next steps

With Hermes running and skills accumulating, explore connecting additional channels (Discord, Slack), adding tool integrations for GitHub or database access, and tuning the skill trigger patterns for higher match accuracy. See the agentic AI overview for how Hermes fits into a multi-agent workflow.

Frequently asked questions

What is the Hermes self-improving skill system?

When Hermes completes a task successfully, it analyzes the steps it took and saves them as a structured skill file in a local directory. On future requests that match the same pattern, Hermes loads the saved skill and follows the proven steps instead of planning from scratch. You can review, edit, or delete skill files manually. Skills are plain text, not opaque model weights.

How does Hermes compare to OpenClaw?

Both are open-source agent frameworks with messaging integrations. Hermes is a single binary with no runtime dependencies and emphasizes the self-improving skill system. OpenClaw is Node.js-based with a broader plugin ecosystem. Hermes is simpler to install; OpenClaw is more extensible. Try both and keep the one that fits your workflow.

What does Modal deployment cost?

Modal bills per second of compute time. A Hermes agent that handles 20 to 30 tasks per day and spends most of its time idle typically costs $2 to $5 per month on Modal. You also pay for LLM API calls separately. The Modal free tier includes $30 of compute per month, which is enough for light agent use.

Can I use Hermes without Telegram?

Yes. Hermes also supports Discord, Slack, and a local CLI mode where you interact directly in the terminal. Telegram is the fastest channel to set up for mobile access, but it is not required. You can run Hermes purely from the command line for local development tasks.

Are skills shared between Hermes instances?

Not by default. Skills are stored locally in the skills directory of each Hermes installation. You can copy skill files between instances manually, or point multiple instances at a shared directory via the config. There is no built-in skill marketplace or sync mechanism.