Hermes Agent Cron Jobs: The 24/7 Employee Who Never Forgets
Hermes Agent cron jobs run an AI agent on a schedule and deliver the result to your Telegram, email, or chat. Here are the five jobs worth setting up, what failures look like, and what it actually costs.
Hermes Agent Cron Jobs: The 24/7 Employee Who Never Forgets
Hermes Agent cron jobs are scheduled automations that run the agent on a timer and deliver the result wherever you actually read things, usually Telegram. Hermes Agent itself is an open-source autonomous agent built by Nous Research, and its cron system lets you describe a task once, in plain language, and have it fire at 8am, or every Tuesday, or on the 1st of the month, whether you remember it or not. That last part is the point. A business owner forgets follow-ups; a scheduler does not.
I run a handful of these jobs for clients and for my own operation, and imo this is the most underrated feature in the whole agent stack. People buy AI for the clever conversation. What they keep paying for is the stuff that happens at 6:55am without them touching anything.
What is a Hermes Agent cron job and how does it work?
A cron job inside Hermes is a prompt plus a schedule, stored in the agent's own job table. At fire time the gateway spins up a fresh agent session with the normal static tool list, the session executes your prompt, and the final response gets delivered to a target you chose at creation: your Telegram, Discord, Slack, email, or just a local file under ~/.hermes/cron/output/.
Three creation paths, same result. In chat: /cron add "every 1h" "Check server status". From a terminal: hermes cron create "every morning at 9" "Summarize my inbox". Or you just talk to the agent and say "every morning at 9am, check Hacker News and send me a summary on Telegram" and it sets itself up.
Schedules accept natural language ("every 2h", "in 30m" for one-shots, "every 1d at 09:00") or standard cron expressions. If you've ever fought with 0 21 */2 * * syntax, the natural language is a relief.
One design detail I appreciate: a scheduled session cannot create more cron jobs. Someone at Nous thought about runaway loops, and it shows.
Why should a small business owner care?
The boring numbers first. A 2023 survey of 251 US entrepreneurs, cited in Stealth Agents' 2026 administrative workload research, put administrative tasks at about a third of the average workweek, roughly 16 hours weekly. Not all of that is automatable, obviously. But a big slice of it is recurring: the same checks, the same summaries, the same reminders, done on a cycle because nobody ever got around to systematizing them.
Here's the honest framing, since I need to be honest about what a cron job is and isn't. A scheduled agent is not going to negotiate your contracts. What it does reliably is the recurring layer: check, summarize, remind, draft, alert. The stuff you'd delegate to a diligent junior admin if you could hire one for the cost of some tokens.
That cost point matters too. The scheduler runs on hardware you already have or a $5 VPS, and hosting is the only fixed line. A recurring job spends money only when it actually makes an inference call, so a five-job fleet on cheap models is pocket change, not a retainer. There's also a no-agent mode for jobs that need zero reasoning at all: pass --no-agent with a script and the scheduler runs the script on schedule and delivers its stdout verbatim, no LLM involved. Free watchdogs, basically. One constraint: the script has to live under ~/.hermes/scripts/, the scheduler won't execute arbitrary paths, which is the right call security-wise.
What are the most useful cron jobs for a small business?
These map to what actual one-person companies lose time on. I've shipped variants of each.
Daily 8am sales summary to Telegram. The job pulls yesterday's numbers from wherever they live (Stripe dashboard, a spreadsheet, your CRM export) and posts a short digest to your chat. Delivery target is just telegram, or telegram:123456 for a specific chat ID, or telegram:-100123:17585 if you use Telegram topics. The agent's final response is delivered automatically, there's no "now send this" instruction needed in the prompt.
Weekly competitor price check. Every Monday the agent visits the three competitors you actually lose deals to, notes price or positioning changes, and files a comparison. Attach a skill if you've written one (--skill pricing-watch) so the job inherits your reusable workflow instead of you restuffing instructions into every prompt.
Monthly invoice reminders. On the 1st, the job lists clients with open invoices past 30 days and drafts the nudge email for each. You review, you hit send. I recommend keeping a human on the send button for anything client-facing; automation earns you the draft, not the relationship.
Morning calendar briefing. Weather plus today's meetings plus the one thing you flagged yesterday. Small job, cheap, and it's the kind of thing people actually read.
Nightly backup verification. Classic no-agent job. A shell script checks that last night's backup exists and isn't zero bytes; stdout gets delivered; you only hear about it when something's wrong. hermes cron create "every 5m" --no-agent --script backup-check.sh --deliver telegram is the whole setup.
What happens when a Hermes cron job fails?
Scheduled automation dies quietly in most stacks. Hermes is unusually vocal about failure, which imo is the real selling feature.
- Before a job fires, the scheduler validates config: API key resolves, attached skills are ready, delivery targets have credentials. A misconfigured job gets status
blocked_config, one alert, and no LLM call. In plain terms: a broken job never silently burns your API budget. - Execution and delivery are tracked separately. If the agent ran fine but Telegram hiccuped, the job logs
delivery_failedwith the reason, and it doesn't count against the job's failure streak, so a flaky platform doesn't bury the real signal. - Each job tracks consecutive failures and nudges you when a streak builds.
hermes cron doctorreports the whole fleet in one pass: failed runs, missing scripts, jobs that stopped firing. - Model drift is guarded. If you switch your chat model to something expensive, unpinned jobs fail closed and alert once instead of silently inheriting the pricier provider on every run. Pin a job's model with
hermes cron edit <job_id> --provider <p> --model <m>and the guard never engages for that job. This is the correct default and I wish more tools copied it.
For the money side of running an agent fleet generally, I wrote a full breakdown of what it costs to run an AI agent monthly.
How do cron jobs stay smart across runs?
Two features turn a cron job from "script that emails me" into an actual employee, which is where the title's "never forgets" claim actually earns itself.
Skills first. A job can load one or more skills before running its prompt, in order, and the prompt becomes instructions layered on top. Build the pricing-check skill once with its sources and format, then every scheduled run inherits it. When the workflow needs to change you edit the skill, not the job. I do this maybe once a month for some client or another, and it's always the difference between a fleet that's maintainable and one that calcifies.
Memory second. Scheduled runs land in the same agent, so lessons persist. The Thursday job that kept misreading your invoicing dates gets corrected in conversation, and next Thursday's run remembers the correction. That's the "never forgets" part done properly. If you want the deep version, I wrote about how Honcho memory makes Hermes actually remember your business. And if you prefer chatting over Telegram to a terminal, that's a supported frontend, see my comparison of Hermes Desktop vs the Telegram frontend.
Where should the whole thing run?
Anywhere the agent runs. A Mac mini in the closet, a $5 VPS, an SSH box, or serverless backends like Daytona and Modal where the environment hibernates when idle and costs nearly nothing between runs. For an SMB the VPS answer is almost always right: always-on, no sleep schedules, and you talk to the agent through Telegram regardless of where it lives. hermes setup --portal is the lowest-friction auth path for unattended runs since OAuth refresh happens automatically, which matters when a job fires at 3am and nobody's awake to re-login.
Start with one job, the 8am summary. It's the cheapest one to trust and the first one people get attached to. Then add the backup check, then the competitor watch. Three jobs in, you'll stop thinking of it as software and start thinking of it as the person who opens up before you do.
If you want this set up for your business without the archaeology, that's the kind of thing I do - more at ishchuk.eu.
Frequently asked questions
- What is a Hermes Agent cron job and how does it work?
- A Hermes Agent cron job is a scheduled automation: a prompt plus a schedule, managed through the cron system built into Hermes Agent, an open-source autonomous agent by Nous Research. At the scheduled time the agent spins up a fresh session, runs the prompt with its normal tool list, and delivers the final response to a target you choose, such as Telegram, Discord, Slack, email, or a local file. Jobs are created in plain language (for example "every morning at 9am, summarize my inbox and send it to Telegram") via chat, the `/cron add` command, or the `hermes cron create` CLI command, and schedules accept natural language or standard cron expressions.
- How much does a Hermes Agent cron job cost?
- The scheduler is free and open source. The fixed cost is hosting, typically a $5 per month VPS or hardware you already own; the variable cost is LLM tokens, charged only when a job actually fires and makes an inference call. Hermes also offers a no-agent mode that runs a shell script on schedule and delivers its output verbatim with zero LLM involvement, which costs nothing beyond the server. A small fleet of recurring jobs on cheap models typically costs a few dollars a month.
- What are the most useful cron jobs for a small business?
- The highest-value recurring jobs are a daily morning sales summary delivered to Telegram or chat, a weekly competitor price or positioning check, monthly invoice reminders that draft follow-up emails for overdue clients, a morning calendar and weather briefing, and a nightly backup verification script. Backup checks work best in no-agent mode, where the script's output is delivered only when something needs attention, keeping the job free and quiet.
- What happens when a Hermes Agent cron job fails?
- Failures are tracked explicitly rather than silently. Before a job fires, the scheduler validates configuration and marks misconfigured jobs as blocked without spending tokens, sending one alert. Execution and delivery are tracked separately: if the agent succeeds but the message does not reach Telegram, the job logs a delivery failure with the reason, and this does not count toward the job's failure streak. Each job tracks consecutive failures, and the command `hermes cron doctor` reports fleet health including failed runs, missing scripts, and jobs that stopped firing. A drift guard also prevents unpinned jobs from silently switching to an expensive model after you change your chat model.
- Can Hermes Agent cron jobs send messages to Telegram automatically?
- Yes. When creating a job you set a delivery target such as `telegram` for your home channel, `telegram:123456` for a specific chat ID, or `telegram:-100123:17585` for a specific Telegram topic. The agent's final response is delivered to that target automatically, so the prompt only needs to describe the work, not the sending. Delivery can also fan out to multiple channels at once, including Telegram, Discord, and Slack together.