Routines: Giving Bots a Schedule
- Open the Routines pane and attach a recurring task to a specific bot
- Use the structured schedule picker and the Advanced raw schedule string field
- Verify routines with hermes cron list and understand the [bot:<name>] naming convention
- Identify practical use cases where per-bot scheduled tasks add genuine value
What Routines Are
A routine is a recurring task attached to a specific bot. You define what the bot should do and how often it should do it -- the system handles the scheduling. Routines are how you turn a bot from something you interact with manually into something that runs on its own and brings results to you.
Under the hood, routines are plain Hermes cron jobs. The distinguishing feature is that each routine is namespaced with the bot's name using the format [bot:<name>] <routine description>. This namespacing is what associates a cron job with a specific bot in the Routines pane and in CLI output.
The Routines Pane
The Routines pane docks beside the chat area when the Bots tab is active. It shows the routines attached to whichever bot you have selected. From the pane you can add new routines, edit existing ones, and delete ones that are no longer needed.
Routines are per-bot -- each bot has its own Routines pane with its own schedule. You do not have a single shared cron list in the UI; each bot's pane shows only its own jobs.
Creating a Routine
Adding a routine from the pane opens a form with two parts: the schedule and the task description.
The structured schedule picker uses a frequency-first selection flow. You choose the frequency (hourly, daily, weekly, and so on), then the specific time or day within that frequency. This handles the common cases without requiring any knowledge of cron syntax.
For precise control, the Advanced field accepts a raw Hermes schedule string. This is the same schedule format used throughout the Hermes cron system -- if you already know how to write Hermes schedules from other cron jobs, the same syntax works here.
The task description is plain text: write what the bot should do when the routine fires. The bot receives this as its starting prompt for that run.
Verifying Routines from the CLI
Because routines are standard Hermes cron jobs, they appear in the output of hermes cron list alongside any other scheduled jobs. Bot-attached routines are clearly labeled by their namespace: a routine for a bot named "monitor" appears as [bot:monitor] check disk usage and report.
This means you can verify, inspect, and if needed manage bot routines entirely from the terminal without opening the Desktop app.
Practical Use Cases
Routines are most valuable for tasks that have a natural schedule and do not need human initiation:
- Daily briefing: A researcher bot runs each morning and summarizes overnight developments in a topic area you track.
- Periodic health check: A monitor bot checks system metrics or API status on a short interval and reports anomalies.
- End-of-day summary: A coder bot reviews the day's git commits and drafts a summary of what changed and why.
- Weekly digest: Any bot compiles a structured summary of a recurring data source on a fixed weekly schedule.
The key design principle: routines work best for tasks that are well-defined, self-contained, and do not require back-and-forth. A task that needs your input mid-run is better handled interactively; a task that produces a clear output on a predictable schedule is ideal for a routine.
- Routines are Hermes cron jobs namespaced [bot:<name>] that execute on a schedule and are attached to specific bots
- The Routines pane docks beside chat when the Bots tab is active and shows only the selected bot's jobs
- The structured picker covers common schedules; the Advanced field accepts raw Hermes schedule strings for precise control
- hermes cron list shows all bot routines in the terminal alongside their [bot:<name>] namespace labels