hermes-agent/website/docs/user-guide/features/recipes.md

94 lines
3.1 KiB
Markdown

# Recipes — Shareable Setup Bundles
Recipes let you share a working Hermes setup — cron automations, remote MCP
integrations, recommended skills, and a starter prompt — as a single YAML
file that anyone can preview and install with one command.
Inspired by Poke's Recipes feature (shareable one-link setups), adapted for a
self-hosted, security-first agent: **secrets never travel**, installs are
**consent-first**, and recipes can never carry executable configuration.
## Sharing your setup
```bash
hermes recipe export \
--name "AI Research Kit" \
--description "Daily arXiv digest + Exa search" \
--jobs "ai digest" \
--mcp exa \
--skills official/research/arxiv \
--starter-prompt "Give me today's paper highlights" \
-o research-kit.yaml
```
Share `research-kit.yaml` anywhere — a gist, a repo, Discord. Anything with
an https URL works as an install source.
What export includes and strips:
- **Cron jobs** — prompt, schedule, skills, toolset restrictions. Run
history, chat-specific delivery targets, and `script`/`monitor_script`
fields are stripped (script jobs can't be exported at all — they're
host-specific and executable).
- **MCP servers** — remote (http/sse) servers only, minus every credential:
`headers`, `env`, and any secret-shaped key are removed and recorded by
*name* in `required_secrets` so installers know what to supply.
- **Skills** — referenced by hub identifier, not bundled; installs go
through the normal `hermes skills install` quarantine/consent flow.
## Installing a recipe
```bash
# Preview first — shows everything the recipe would add
hermes recipe show https://example.com/research-kit.yaml
# Install (interactive confirmation; --yes to skip)
hermes recipe install research-kit.yaml
```
Install behavior:
- **Cron jobs are created paused.** Review them, then
`hermes cron resume <id>` — or pass `--enable` to activate immediately.
- **MCP servers are merged into `config.yaml`.** Existing entries with the
same name are never overwritten. Server URLs are validated through the
SSRF guard before being written.
- **Missing credentials are called out.** Any `required_secrets` the recipe
recorded are printed with instructions — recipes never contain keys.
- **Skills are suggested, not auto-installed.** The output prints the
`hermes skills install …` commands so the hub's trust flow stays in charge.
## Security model
A recipe is data, not a program:
- stdio MCP servers (`command:`) are refused on export *and* install.
- Cron `script`, `monitor_script`, `no_agent`, and `workdir` fields are
refused on install.
- Secret-shaped fields anywhere in a recipe fail validation.
- URL sources are fetched through the SSRF-safe client with a 256 KiB cap.
## Recipe format
```yaml
recipe: 1
name: AI Research Kit
description: Daily arXiv digest + Exa search
author: yourhandle
starter_prompt: Give me today's paper highlights
skills:
- official/research/arxiv
cron_jobs:
- name: ai digest
prompt: Summarize today's AI news
schedule: 0 8 * * *
deliver: local
mcp_servers:
exa:
transport: http
url: https://mcp.exa.ai/mcp
required_secrets:
exa:
- api_key
```