The rule for day one
The official quickstart has one rule of thumb, and we'd make it the rule for your whole first day: if Hermes can't complete a normal chat, don't add more features yet. Every step below assumes the one before it works. If something breaks, run the recovery order from the docs: hermes doctor, then hermes model, then hermes setup.
Hour one: a model that actually answers
Run hermes setup, or hermes model if you already know your provider. The quickest path is the Nous Portal option (hermes setup --portal), which handles login, model choice and the Tool Gateway in one step. Any provider in the catalog works, though. If you plan to run a local model, set its context to at least 64,000 tokens before you start. Hermes rejects smaller windows at startup.
Then prove it works. Start hermes (or hermes --tui for the newer interface), ask something you can check, such as which file in the current folder looks like the main entrypoint, and keep the conversation going for a couple of turns. Exit, then run hermes --continue to make sure the session resumes. Use hermes status for a one-screen summary of your model, provider and gateway state.
Hour two: tools and approvals on purpose
Run hermes tools to see which toolsets are enabled on each platform, or hermes tools --summary for a quick printout. Our suggestion is to switch off anything you don't expect to use this week. Fewer tools means a smaller prompt and fewer surprises. You can always turn them back on.
Keep approvals.mode on the default, smart. Low-risk commands are approved automatically, clearly dangerous ones are denied, and uncertain ones come to you. Avoid off and /yolo until you know how the agent behaves on your machine. Note that scheduled jobs deny dangerous commands by default (approvals.cron_mode: deny), which is a sensible default to keep. If you want stronger isolation, set terminal.backend to docker with hermes config set terminal.backend docker.
Hour three: memory you can trust
Built-in memory is on by default, stored in MEMORY.md and USER.md. Tell Hermes a few durable facts: your name, your timezone, where your projects live. Then run /new and ask it to recall them. Memory is loaded as a snapshot at the start of a session, so new entries only show up after a session boundary. That's normal, not a bug.
If you'd rather approve what the agent writes about you, set memory.write_approval: true. Writes that aren't made in the foreground of the CLI are then staged for review with /memory pending, and you approve or reject them with /memory approve and /memory reject. This is optional, but useful while you're still building trust.
Afternoon: one skill and one scheduled job
Hermes already ships with bundled skills, and the agent picks them up by itself when a task matches one. Install exactly one more from the hub: browse with hermes skills browse or search with hermes skills search <keyword>, preview it with hermes skills inspect <identifier>, then install it with hermes skills install <identifier>. Installation runs a security scan first. Every installed skill also becomes a slash command.
Next, create one recurring job whose result is easy to check, for example: hermes cron create "every 1d at 09:00" "Summarize what changed in my notes folder yesterday" --name "Morning check". Cron jobs are run by the gateway, which ticks the scheduler every 60 seconds, so the gateway has to be running (next step). Check it with hermes cron status and hermes cron list, and trigger it once with hermes cron run <job_id> so you don't have to wait until tomorrow.
Evening: pair your phone
Run hermes gateway setup and connect one platform. Telegram is the most common choice. Install it as a background service with hermes gateway install (a user service on Linux, launchd on macOS, a login-time Scheduled Task on Windows) so it doesn't depend on an open terminal, then check it with hermes gateway status.
Then DM your bot. By default, an unknown sender gets an 8-character pairing code, which expires after one hour. Approve yourself on the host with hermes pairing approve telegram <CODE>, and check who has access with hermes pairing list. In the chat, run /sethome so scheduled results have a home channel, then point your job at it with hermes cron edit <job_id> --deliver telegram.
Before bed
- Take a snapshot with
hermes backupnow that you have a setup worth keeping. - Leave fallback providers, extra profiles and more skills for day two. The docs recommend getting the base provider stable before adding routing.
- On messaging platforms, a chat is one continuous session until you run
/new. Start a fresh one at natural breaks so memory and costs stay healthy.
Related guides
- Hermes Agent messaging gateway explained
- Hermes Agent security: approvals, allowlists, sandboxing
- How Hermes Agent memory works (and where it stops)
- How to write your first Hermes Agent skill
- How to schedule recurring tasks in Hermes Agent
- Moving to Hermes Agent from OpenClaw and other agents
Primary sources
- Quickstart (official docs) (opens in a new tab)
- Tools and Toolsets (official docs) (opens in a new tab)
- Security (official docs) (opens in a new tab)
- Persistent Memory (official docs) (opens in a new tab)
- Scheduled Tasks (official docs) (opens in a new tab)
- Messaging Gateway (official docs) (opens in a new tab)
- CLI Commands Reference (official docs) (opens in a new tab)
Spotted something wrong or out of date? Tell us on X at @HermesWatcher (opens in a new tab) and we will fix it.
New Hermes Agent updates every day on X. Follow @HermesWatcher