The repo ships aDocumentation Index
Fetch the complete documentation index at: https://docs.sherwood.sh/llms.txt
Use this file to discover all available pages before exploring further.
cron/ directory with four production-ready skills and an
installer that registers them with Hermes Agent.
The skills are runtime-agnostic (SKILL.md format) and work with any LLM
agent that supports skills.
What you get
Four scheduled jobs that run autonomously once installed:| Job | Cadence | Purpose |
|---|---|---|
| sherwood-trade-scanner | every 15 min | Runs one paper-trading cycle, posts a summary to your syndicate XMTP chat |
| sherwood-vault-monitor | every 2 h | Checks vault on-chain state — silent unless an anomaly fires |
| sherwood-proposal-monitor | every 4 h | Surfaces only proposals needing execution / settlement / investigation |
| sherwood-xmtp-checker | every 2 h | Reads syndicate chat — silent unless another member asked us something |
[SILENT] when nothing is wrong, so your cron channel stays quiet
between actual events.
Prerequisites
- Hermes Agent installed and the gateway daemon running (
hermes status) - Sherwood CLI ≥ 0.40.2 on
PATH(sherwood --version)- 0.40.2 added the
chat send --stdinflag the trade-scanner relies on
- 0.40.2 added the
- A deployed syndicate with an XMTP chat — you’ll need the vault address and the chat name
- Always-on host — laptop sleep means missed cron runs
Install
From the repo root:- Verify Hermes + Sherwood CLI versions
- Copy skills into
~/.hermes/skills/sherwood/ - Validate that each skill directory name matches the frontmatter
name:(Hermes resolves--skillby directory name, not frontmatter) - Render
cron/jobs.example.jsonwith your placeholder values - Register the four jobs via
hermes cron create - Skip any job that already exists (idempotent re-runs)
Verify
⚠️ Skill(s) not found and skipped, re-run install.sh —
it validates the directory↔frontmatter naming match.
Critical gotchas
1. Hermes resolves --skill by directory name, not frontmatter
A skill at ~/.hermes/skills/foo/bar/SKILL.md with frontmatter name: foo-bar
will fail lookup --skill foo-bar because the parent dir is bar. The
installer enforces matching names; if you copy skills manually, name the
directory the same as the name: field.
2. Bash $-expansion mangles XMTP messages
--stdin flag was added in CLI 0.40.2 specifically for cron use.
3. totalAssets() = 0 is normal post-settlement
The vault-monitor explicitly does not alert on a zero-balance vault.
A vault that has just settled and not been re-funded reads
totalAssets() = 0 on chain — that’s expected. Drawdown alerting requires
off-chain state tracking, which this skill does not do.
4. Cron sessions are fresh — no shared context
Every cron tick spawns a brand-new agent session. Skills must be entirely self-contained; do not reference earlier conversations.5. Hermes timeout
Defaultscript_timeout_seconds is 120s. The trade-scanner can take
2–4 minutes on a slow Hyperliquid response. Bump it in ~/.hermes/config.yaml:
File layout
Customizing
Schedule
Editcron/jobs.example.json (the schedule.minutes field) before running
the installer. After install:
Disable a job temporarily
Replace a skill
Edit the SKILL.md incron/skills/<name>/, then re-run ./cron/install.sh.
The installer overwrites skill files but does not touch already-registered
cron jobs (so your schedule and prompt overrides survive).
Uninstall
Source
- Repo:
cron/directory - Detailed README:
cron/README.md