How to Schedule Automated Tasks with Hermes WebUI Cron Jobs
Problem
Most chat UIs are session-scoped. When you close the browser, nothing happens. You cannot set up recurring monitoring, morning briefings, or PR reviews. I wanted my agent to keep working while I was offline.
Architecture
Hermes WebUI separates the chat surface from the execution engine:
- WebUI — the Tasks panel where you view, create, edit, run, pause, resume, and delete cron jobs
- Gateway daemon — the persistent process that ticks the scheduler every 60 seconds and executes jobs
Jobs are created in the browser but executed by the gateway. This means scheduled automation keeps running even when the browser is closed.
Tasks Panel
The Tasks panel gives you a visual interface for cron management. You can:
- View existing jobs
- Create new jobs with cron expressions
- Edit job parameters
- Run a job manually
- Pause or resume a job
- Delete jobs
- See run history
When a cron job completes, you get a toast notification and an unread badge on the Tasks tab. If a background agent encounters an error, a banner appears to alert you.
Docker Requirements
Here is where I got stuck initially. In Docker, scheduled jobs require the gateway daemon to run continuously. The single-container setup can create and run jobs manually, but scheduled automatic firing needs a separate gateway.
Use the two-container setup for reliable cron support:
cp .env.docker.example .envdocker compose -f docker-compose.two-container.yml up -dVerify the gateway is running:
docker compose -f docker-compose.two-container.yml exec hermes-agent hermes gateway statusDelivery Channels
Hermes can deliver cron results to multiple channels:
- Telegram
- Discord
- Slack
- Signal
- SMS
This means your morning briefing or monitoring alert can reach you wherever you are.
Common Mistakes
I made two mistakes when setting this up:
- Expecting cron jobs to fire in single-container Docker — the WebUI can run jobs manually, but scheduled execution needs the gateway daemon.
- Confusing “Run now” with scheduled execution — the Run button works in-process in any setup, but automatic scheduling needs the two-container configuration.
Summary
In this post, I showed how to schedule automated tasks with Hermes WebUI cron jobs. The key point is that the WebUI provides the management surface, but the gateway daemon provides the execution engine. Use the two-container Docker setup if you need reliable offline automation.
Final Words + More Resources
My intention with this article was to help others share my knowledge and experience. If you want to contact me, you can contact by email: Email me
Here are also the most important links from this article along with some further resources that will help you in this scope:
Oh, and if you found these resources useful, don’t forget to support me by starring the repo on GitHub!
Comments