Hermes Agent background work means the agent keeps doing jobs while you aren't typing to it, and there are seven real ways to set that up.
The seven ways are scheduled cron jobs, the gateway running as a service, /bg background sessions, background terminal processes, delegated subagents, kanban workers and the /loop command.
Hermes Agent is the free, open-source agent from Nous Research, and none of these seven features costs anything beyond the model you connect.
I checked every command in this post against the official Hermes docs and the read-only help output of my own install, which is Hermes Agent v0.21.4, on 12 October 2026.
The examples are my own jobs, including the daily 6am to-do recap that ran on my Mac this morning.
What "Hermes Agent Background" Actually Means
People use the word background for three different things, and mixing them up is why setups break.
The first meaning is a job that runs on a schedule with no chat open, which is cron.
The second meaning is the agent process itself staying alive after you close the terminal, which is the gateway service.
The third meaning is work that runs beside your current chat, which covers /bg, background processes, subagents and /loop.
Kanban sits across all three, because its workers are separate processes that the gateway dispatches.
Here is the whole map before the setup steps.
| Way | Real command | Lives where | Survives a closed terminal |
|---|---|---|---|
| Cron jobs | hermes cron create "0 6 * * *" "..." |
Its own fresh session per run | Yes, if the gateway is running |
| Gateway service | hermes gateway install |
launchd, systemd or a Windows Scheduled Task | Yes |
| Background sessions | /bg <prompt> |
A separate session beside your chat | Only on a gateway chat |
| Background processes | "Run this in the background" | The agent's terminal tool | No, it belongs to the session |
| Subagents | delegate_task, used automatically |
Child agents under your session | No, a restart does not resume them |
| Kanban workers | hermes kanban create "..." --assignee <profile> |
One OS process per task | Yes, the board is a database |
| Loops | /loop 5m <prompt> |
Your current session | Only on a gateway chat |
Step 1: Put The Gateway In The Background First
Everything durable depends on the gateway, so this is the first job.
The gateway is the long-running Hermes process that answers Telegram, Discord and the other chat apps, runs the cron scheduler and dispatches kanban workers.
You install it as a service with one command.
hermes gateway install
hermes gateway start
hermes gateway status
On macOS the command installs a launchd agent, on Linux it installs a systemd user service, and on Windows it registers a Scheduled Task that runs at logon.
On a Linux server you should also enable lingering, so the user service keeps running after you log out.
sudo loginctl enable-linger $USER
The docs describe a boot-time system service for headless hosts as well.
sudo hermes gateway install --system
You can watch the service with the log command.
hermes logs gateway -f
hermes gateway run is the foreground version, and the help text recommends it for WSL and Docker.
If a service already supervises the gateway, hermes gateway run refuses to start a second one unless you pass --force, which protects the shared state.
My full server walkthrough, including Telegram, is in my best Hermes Agent VPS post.
🔥 Want my exact Hermes Agent Background setup, step by step? Inside the AI Profit Boardroom you get step-by-step video trainings, my installable Agent OS and four coaching calls a week with 3,400+ members building real automations. → Join the AI Profit Boardroom
Step 2: Schedule Hermes Agent Background Jobs With Cron
Cron is the feature most people mean when they say background agent.
A cron job is a prompt on a schedule, and each run starts a fresh agent session with no chat attached.
You can create one from the terminal.
hermes cron create "0 6 * * *" "Read my to-do file and send me a short recap of today's priorities." --name "Daily 6AM To-Do Recap"
You can create one inside a chat.
/cron add "every 2h" "Check server status"
You can also just ask in plain English, and Hermes uses its own cron tool to build the job.
The schedule accepts cron expressions like 0 9 * * 1-5, intervals like every 2h, one-shot delays like in 30m, and natural forms like weekdays at 9am.
The official docs say cron execution is handled by the gateway daemon, which ticks the scheduler every 60 seconds.
That one sentence explains most "my job never ran" complaints, because a job can't fire while the gateway is down.
My real cron jobs
I ran hermes cron status on my Mac on 12 October 2026, and it reported the gateway running with five active jobs.
The first job is called Daily 6AM To-Do Recap, and it uses the schedule 0 6 * * *.
The list showed that it last ran at 06:01 this morning with the status ok and the dispatch marked on time.
The other four are a 7am inbox summary, an 8am inbox triage, a 6pm wrap-up and a 9pm job that writes a summary into my notes vault.
In my Herald OS video I also showed a daily Japanese learning job in the same automations list.
The flags that matter
- The
--deliverflag sends the result totelegram,discord,slack,emailor another target, andlocalonly saves a file. - The
--skillflag loads one of your skills before the prompt runs, and you can repeat it. - The
--workdirflag runs the job inside a project folder and loads that folder'sAGENTS.md. - The
--modelflag pins one job to a specific model, so a cheap job can use a cheap brain. - The
--no-agentflag with--scriptruns a script on a schedule with no model call at all. - The
--pausedflag creates the job switched off, so you can review it before it ever fires.
A cron prompt must be self-contained, because the job has no memory of the chat where you created it.
"Check on that server issue" is a bad prompt, and a prompt that names the server, the command and the success check is a good one.
Output from every run is saved under ~/.hermes/cron/output/, even when nothing is delivered.
🔥 Want my real cron prompts and the Agent OS they run inside? The AI Profit Boardroom includes my Agent OS, my Hermes walkthroughs and four live coaching calls a week with 3,400+ members. → Join the AI Profit Boardroom
Step 3: Run Work Beside Your Chat With /bg
The /bg command runs a prompt in a separate background session while your main chat stays free.
/bg Analyse the logs in /var/log and summarise any errors from today
Hermes confirms the task with an ID, and the result appears as a panel when it finishes.
The background session knows nothing about your current conversation, so you give it the whole task in one prompt.
It inherits your model, provider and toolsets from the current session.
On Telegram or Discord the result is sent back to the same chat when it completes.
Step 4: Let Hermes Start Background Terminal Processes
Hermes can start a long shell command in the background and keep talking to you.
You don't type a special command for this, because the agent's terminal tool has a background option.
You ask for it in plain words, such as "run the test suite in the background and tell me when it finishes".
Hermes then manages the process with its process tool, which can list, poll, wait for, read the log of and kill a running command.
In the TUI you press Ctrl+T to open the live work monitor, which shows subagents and background processes together.
The /stop command kills all running background processes and interrupts the agent.
One limit matters here, because a background process belongs to the agent that started it.
A process started by a subagent is killed when that subagent finishes, so a dev server or a watcher should be started from the main session.
Step 5: Delegate To Background Subagents
Hermes can split a task and hand the pieces to child agents.
The tool is called delegate_task, and the docs say the agent uses it automatically when a task is complex enough.
Each child gets a fresh conversation and its own terminal, and only its final summary comes back to the parent.
Top-level delegations run in the background automatically, so Hermes hands you a handle and the conversation continues.
The config defaults are 10 parallel children per batch and 250 iterations per child, and nested delegation is off unless you raise max_spawn_depth.
The TUI has an /agents overlay that shows a live tree of running subagents with cost and token rollups, and it lets you stop one child without touching its siblings.
Children can't ask you questions, write to shared memory, send messages or create cron jobs, which keeps a runaway child contained.
A Hermes restart does not resume a running child, so the docs point you to cron for work that must survive a restart.
Herald OS, the free desktop shell I tested on top of Hermes, has a setting for the number of background agents and a setting for where agents run their tasks.
I walked through those settings in my Herald OS post.
Step 6: Give Long Jobs To Kanban Workers
Kanban is the durable version of delegation.
Every task is a row in a database at ~/.hermes/kanban.db, and every worker is a full operating system process with its own profile.
hermes kanban create "Draft the weekly SEO report" --assignee researcher --max-runtime 30m
hermes kanban list
hermes kanban show <task-id>
The dispatcher runs inside the gateway, so there is nothing extra to install once step 1 is done.
The old hermes kanban daemon command is marked deprecated in the help text for that reason.
A task that fails repeatedly is blocked automatically, and the default limit is two consecutive failures.
hermes kanban swarm builds a small graph of parallel workers, a verifier and a synthesiser for one goal.
🚀 Ready to put Hermes Agent Background to work in your business? Inside the AI Profit Boardroom you get step-by-step video trainings, my installable Agent OS and four coaching calls a week with 3,400+ members building real automations. → Join the AI Profit Boardroom
Step 7: Keep Watch With /loop
The /loop command re-runs a prompt on a timer inside your current session.
/loop 5m check the deploy status and tell me if it's live yet
Each wakeup is a real agent turn that reads the current state fresh.
If you leave the interval out, the loop paces itself from one minute up to a 15 minute ceiling while nothing changes.
You can cap it with --times 30 or end it with --until queue depth reaches zero, and /loop stop ends it by hand.
A safety budget called loops.max_ticks pauses a loop after 100 wakeups by default.
The docs are clear that /loop lives inside a session, so unattended overnight work belongs in cron.
If your version doesn't recognise the command, run hermes update first.
I recorded real sessions with it for my Hermes /loop guide.
Two cousins are worth knowing, because /heartbeat every 10m <prompt> keeps one recurring instruction in a session and /goal <text> keeps working until a judge model says the objective is done.
Running Hermes Agent In The Background On A Server
The supported way to run detached on a server is the service from step 1.
The service restarts the gateway if it crashes and brings it back at boot, which a terminal trick can't do.
Docker is the second supported route, and the docs show the official image running gateway run in detached mode.
Inside that image the gateway is supervised and restarted automatically if it crashes.
You can still run hermes gateway run inside tmux or under nohup for a quick test.
I'd treat that as a test only, because nothing restarts the process after a reboot.
How To See What's Running And Stop It
Background work is only useful if you can check on it in ten seconds.
| I want to know | Command |
|---|---|
| Whether the scheduler is alive | hermes cron status |
| What is scheduled and when it last ran | hermes cron list |
| The history of run attempts | hermes cron runs --limit 20 |
| Whether any job is unhealthy | hermes cron doctor |
| Whether the gateway is up | hermes gateway status |
| What the agent did in the last hour | hermes logs --since 1h |
| Only the cron lines in the log | hermes logs --component cron |
| Which sessions ran | hermes sessions list |
| What it cost in tokens | hermes insights --days 7 |
| What is on the board | hermes kanban list |
Stopping has three levels.
hermes cron pause <job> stops one job, and hermes cron resume <job> brings it back.
/stop inside a session ends that session's background processes and subagents.
hermes pause is the global emergency stop, and it halts new cron dispatch, new kanban dispatch and new gateway turns until you run hermes resume.
The help text states that hermes pause never kills work that is already in flight.
Herald OS adds an activity history screen, which I like because it shows background work you forgot you started.
🔥 Want help wiring background agents into your own business? Inside the AI Profit Boardroom you get my Hermes setups, my Agent OS and four coaching calls a week where you can ask me directly. → Get access here
Approvals And Safety For Unattended Runs
An unattended agent has nobody to click approve, so Hermes makes the decision for you in advance.
The setting is approvals.cron_mode in ~/.hermes/config.yaml, and its default is deny.
That default means a cron job that hits a dangerous command is blocked and has to find another path.
Webhook and API sessions have the same default through approvals.unattended_mode.
An approval prompt that nobody answers times out after 300 seconds and is denied.
A hardline blocklist sits underneath everything, and the docs say that not even --yolo bypasses it.
You can add your own never-run patterns under approvals.deny.
I also trim the tools that cron gets, which you do by running hermes tools and picking the cron platform.
Hermes scans cron prompts for prompt-injection and secret-exfiltration patterns when you create or edit a job.
By default a cron run can't create more cron jobs, which stops a scheduling loop from running away.
Herald OS has an auto-approve switch and an "ask before sending messages" option, and I'd leave the asking on.
Cost Control For Background Agents
Every background tick is a real agent turn, so cost control is mostly about how often and which model.
- You can set
hermes config set cron.model <name>so every unpinned job runs on a cheaper model than your chat. - You can pin one job with
--modeland lower its thinking with--reasoning-effort minimal. - You can use
--no-agentfor watchdog scripts, which spend no tokens at all. - You can use
--monitor-urlor--monitor-script, which skips the agent run entirely when nothing has changed. - You can end a quiet job's reply with
[SILENT], which suppresses the message while still saving the output. - You can set
delegation.modelso subagents run on an inexpensive model while the parent plans on a strong one.
The scheduler also checks each job's configuration before it runs, and a misconfigured job is blocked without making a model call.
hermes insights --days 7 shows token usage and cost by day, and hermes usage prints your provider's rate-limit windows.
My /loop guide has a useful bit of backoff maths, because a fixed two-minute loop fires 240 times overnight while a self-paced one fires about 35 times.
Mac, VPS Or Hermes Cloud For Background Work
Your background jobs only run while the machine is awake.
On a Mac, the Hermes docs recommend the built-in caffeinate tool.
caffeinate -i -w $(cat ~/.hermes/gateway.pid) &
That command keeps the Mac awake for as long as the gateway is running.
The docs warn that caffeinate can't stop a MacBook sleeping when you close the lid.
If a recurring job's time passes while the gateway is down, the job catches up once when the scheduler is back.
A VPS removes the sleep problem, and Hermes Cloud removes the server as well.
When I checked on 10 October 2026, Hermes Cloud's Standard size cost $0.51 a day while running, with inference billed separately.
I run my own jobs on a Mac because that's where my local models and my Agent OS live.
If you're choosing a chat front end for these jobs, read my Hermes Agent bot post, and if you're choosing where commands execute, read my Hermes Agent backend post.
My best Hermes Agent use cases ranking has more jobs worth scheduling.
FAQ: Hermes Agent Background
How do I run Hermes Agent in the background?
You install the gateway as a service with hermes gateway install, and then you create jobs with hermes cron create.
The gateway ticks the scheduler every 60 seconds, so the jobs fire with no terminal open.
Does Hermes cron work without the gateway running?
No, because the docs say cron execution is handled by the gateway daemon.
hermes cron status tells you whether the scheduler is alive and flags any overdue job.
How do I see what Hermes Agent is doing in the background?
You run hermes cron list, hermes cron runs, hermes gateway status and hermes logs -f.
Inside the TUI, /agents shows subagents and background processes live.
How do I stop all background Hermes Agent work?
hermes pause halts new cron, kanban and gateway work until you run hermes resume.
/stop ends the background processes and subagents of the session you're in.
Is it safe to let Hermes Agent run unattended?
It's safe if you keep the default approvals.cron_mode: deny and limit the cron toolset.
I'd also start every new job with --paused, run it once by hand and then resume it.
Also On Our Network
- 🌐 How a business actually uses background Hermes agents
- 🌐 Every Hermes background mode explained and scored
- 🌐 The background-agent quick-start for an Agent OS
- 🌐 Which models to give your background jobs, with real scores
📺 Video notes + links to the tools 👉
🎥 Learn how I make these videos 👉
🆓 Get a FREE AI Course + Community + 1,000 AI Agents 👉
About Julian
I'm Julian Goldie, an SEO entrepreneur, author and founder of the AI Profit Boardroom, which has 3,400+ members.
I help business owners scale with AI agents, automation and SEO.
- I've built a 7-figure SEO and link-building agency, Goldie Agency, with 70+ people in Bangkok.
- I've grown a YouTube channel to 400,000+ subscribers.
- I wrote the book "Link Building Mastery", which covers nine link building strategies.
- My Udemy courses have taught 29,000+ students.
→ Get my best AI training inside the AI Profit Boardroom
Install the gateway, schedule one small job tonight, and you'll have your first Hermes Agent background worker running by morning.











