Automation

Cron Blueprints

Reusable schedule templates that reduce repeated setup work.

Cron Blueprints

What it is

Reusable schedule templates that reduce repeated setup work.

In plain terms

A tailor who keeps a pre-cut jacket pattern on hand asks only for sleeve length and preferred color before cutting fabric — nobody re-drafts the pattern from scratch every visit. That’s what a cron blueprint is for Hermes automations: a ready-made shape for a common job, like a morning briefing or a bill-renewal watch, where a person only fills in the few details that actually vary.

Why it matters

Setting up recurring automation has a tedious part — schedule, toolset, prompt structure — and cron blueprints are templates for exactly that, so a new monitoring job or daily ritual doesn’t start from a blank cron definition every time. This pays off most for an operator running several similar jobs, a handful of repo monitors or several research briefings, where re-deriving the same configuration repeatedly is pure overhead. They’re a convenience layer on top of the cronjob toolset, not a separate execution mechanism.

How it works

Each blueprint is an AutomationBlueprint record with a schedule_template containing {slot} placeholders, a prompt_template, and a list of typed slots — time, enum, text, or weekdays (cron/blueprint_catalog.py). blueprint_form_schema turns those slots into a form the dashboard can render, while fill_blueprint validates whatever values a person supplies: unknown slot names and out-of-range enum choices raise a clear error, and so do missing required slots. Once validation passes, fill_blueprint resolves the schedule, renders the prompt template, and hands back a plain keyword-argument dict shaped for cron.jobs.create_job. On the API side, GET /api/cron/blueprints returns the catalog as form schemas, and POST /api/cron/blueprints/instantiate fills a blueprint and calls create_job in one step (hermes_cli/web_server.py).

A concrete example

Open the dashboard’s automation gallery and pick “Morning briefing.” It shows a form with a time field defaulting to 08:00 and a delivery dropdown listing only the platforms actually connected. Changing the time to 07:15 and clicking create needs no cron expression or hand-written prompt:

  1. The dashboard sends the blueprint key and the one changed value to /api/cron/blueprints/instantiate.
  2. fill_blueprint turns 07:15 into the cron fields and renders the full briefing prompt.
  3. A normal cron job now exists, indistinguishable from one built by hand.

How it connects

This note belongs to the Automation family. Its closest neighboring concepts are: Cron Jobs, Schedules, Agent Runtime, Personal OS.

Source evidence

  • vendor/hermes-agent/toolsets.py#<file> — Structural Source Map fallback for toolsets.py. A core source file in the Tool Registry and Toolsets structure within Tools, Toolsets, and MCP.

Workflows

  • No first-pass workflow mapping yet; this concept still appears in the vault graph through articles and source evidence.
  • Mastering Hermes Desktop: From Local Chat App to an Always-On Agent Control Center