- Set up a scheduled task using Hermes's built-in cron.
- Design at least one practical recurring Sectors workflow.
- Write self-contained prompts that survive a fresh, memory-less cron session.
- Understand what running Hermes on a VPS enables vs local-only operation.
Why Scheduling Matters
A tool you only open when you remember is still reactive. Scheduling makes Hermes genuinely autonomous, running the workflow and delivering the result without you starting anything. It has a built-in cron system, no external scheduler needed, that runs as long as the gateway is up.
How Scheduling Works
Describe the schedule in plain language when you set up the task, "every weekday at 7am" or "every Friday at 4:30pm" works fine. No cron syntax to write by hand.
The Golden Rule for Scheduled Prompts
Cron jobs run in fresh sessions with no memory of the chat that set them up. Every prompt must be self-contained, no "do the usual thing," spell out what to pull, from where, and where to send it.
[SILENT] convention: Hermes responds with just that token when nothing's worth reporting.
- Stdout delivered directly
- Zero model calls
- Zero token spend
cronjob, messaging, and clarify toolsets disabled, so skills needing interactive confirmation won't work headless. If a job silently fails, check the gateway is running and the timezone is right first, the two most common causes.
Not Every Job Needs to Be a Hermes Prompt
A standalone script on a VPS, triggered by plain OS-level cron, works well for deterministic jobs, fetch data, summarize cheaply, write a file, no reasoning needed. A daily AI news digest is a good example: a script pulls top Hacker News stories, summarizes them with a free-tier API, and writes the result straight to a file, all outside Hermes entirely.
0 7 * * * GEMINI_API_KEY=your-key VAULT_DIR=/root/vault python3 /root/scripts/news_digest.py >> /root/news_digest.log 2>&1
Runs daily at 7 AM server time. Check the VPS's timezone first with timedatectl, cron uses local system time. Save Hermes's own scheduling for jobs that genuinely need judgment, not just a fetch-and-format loop.
Practical Scenarios with Sectors
Three recurring workflows that provide real daily value. Each prompt is self-contained, per the golden rule above.
Pull the top 3 IDX stock movers from yesterday. For each, show the ticker, percentage change, and a one-line summary of any Sectors news. Send to Telegram.
Compare BBCA, BMRI, and TLKM's current price against 30 days ago. Show the change as a percentage. Format as a table and send to Telegram.
Check BBCA's current price. If it is below 9500 IDR, send a Telegram message: "Alert: BBCA has dropped below 9500. Current price: [price]."
Running on a VPS
Local means the gateway runs only while your machine is on, close your laptop and the morning briefing doesn't run. A VPS fixes that. Setup mirrors local (SOUL.md, Sectors MCP, messaging), but Hermes runs as a Docker container with a restart policy so it survives reboots:
docker run -d --name hermes --restart unless-stopped -v ~/.hermes:/opt/data -p 8642:8642 nousresearch/hermes-agent gateway run
Run setup over SSH directly, not a browser-based VPS console, some corrupt special characters like : and @ in tokens and keys.
A Note on Safety with Scheduled Tasks
Command approval prompts interrupt scheduled tasks by default. For the 7 AM briefing to run unattended, the workflow needs to stick to read and messaging operations only, nothing that triggers approval.