Reworks the chat-line UX: pick a recipe by name and the agent asks you for
what it needs, one question at a time, instead of forcing you to hand-type a
slot=val command line.
- /cron-recipe -> lists the catalog
- /cron-recipe <name> -> forgiving name match (exact/prefix/substring/
fuzzy; ambiguous lists candidates), then seeds
the agent with a natural-language fill request
built from the recipe's typed slots + schedule
and prompt templates. The agent asks for each
value one at a time and calls the EXISTING
cronjob tool. No new tool.
- /cron-recipe <name> slot=val -> unchanged deterministic path (fill_recipe ->
create_job) for the dashboard/docs/power user.
Mechanism (no new plumbing, invariant-safe — the seed enters as a normal user
turn, never a synthetic injection):
- shared handler returns RecipeCommandResult{text, agent_seed}; match_recipe()
and build_recipe_seed() are the new shared pieces.
- gateway: dispatch rewrites event.text to the seed and falls through to the
agent (the same pattern /steer uses).
- CLI: handler sets a one-shot self._pending_agent_seed; the interactive loop
consumes it right after process_command() and runs it as the next turn.
The typed-slot schema stays the single source of truth (still validates the
form/inline path via fill_recipe); the agent path just renders those slots into
the questions to ask. Docs updated to lead with the name-then-ask flow.
37 lines
1.4 KiB
Plaintext
37 lines
1.4 KiB
Plaintext
---
|
|
sidebar_position: 7
|
|
title: "Cron Recipes Catalog"
|
|
description: "Ready-to-run automation templates — set one up from the dashboard, CLI, TUI, any messenger, or the desktop app."
|
|
---
|
|
|
|
import CronRecipesCatalog from '@site/src/components/CronRecipesCatalog';
|
|
|
|
# Cron Recipes
|
|
|
|
Cron Recipes are ready-to-run automation templates. Pick one, fill in a couple
|
|
of fields, and Hermes schedules it as a cron job — no cron syntax required.
|
|
|
|
Every recipe works from **every surface**:
|
|
|
|
- **Dashboard / desktop app** — open the Cron page, switch to the **Recipes**
|
|
tab, fill the form, and click *Schedule it*.
|
|
- **CLI, TUI, and messengers** — type `/cron-recipe <name>` (e.g.
|
|
`/cron-recipe morning-brief`) and Hermes asks you for what it needs, one
|
|
question at a time, then schedules it. The name match is forgiving — a
|
|
prefix or near-spelling resolves. Power users can skip the questions by
|
|
passing values inline: `/cron-recipe morning-brief time=08:00`.
|
|
- **Desktop app** — click **Send to App** on any recipe and it opens with the
|
|
command pre-loaded in your composer.
|
|
|
|
Recipes never schedule anything silently — you always confirm before the job
|
|
is created. Manage created jobs anytime with `/cron`.
|
|
|
|
<CronRecipesCatalog />
|
|
|
|
## Writing your own
|
|
|
|
A recipe is just a skill with a `metadata.hermes.recipe` block in its
|
|
`SKILL.md` frontmatter. See
|
|
[Creating Skills → Cron Recipes](../developer-guide/creating-skills.md) for the
|
|
slot schema and how to publish one.
|