> ## Documentation 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 Jobs

> Run Sherwood monitoring crons on Hermes Agent — four no_agent watchdogs and one agent reasoning cron.

The Sherwood Hermes plugin ships five autonomous cron entries that
monitor your syndicates without you running anything by hand. Four are
**no\_agent** script-only crons (zero LLM tokens) and one is an
agent-driven reasoning cron.

## Prerequisites

* **Hermes Agent** installed and running (`hermes status`)
* **Sherwood CLI ≥ 0.40.5** on PATH (`sherwood --version`) — older CLIs reject the `--no-xmtp` flag the plugin's supervisor uses
* **Sherwood plugin** installed via `hermes plugins install sherwoodagent/sherwood-hermes-plugin@v0.6.0`
* **At least one syndicate configured** in `~/.hermes/plugins/sherwood-monitor/config.yaml`
* **Always-on host** — laptop sleep means missed cron runs

## Install (one-time)

```bash theme={null}
hermes sherwood install-cron
```

Idempotent — re-running emits JSON with per-entry `installed | skipped | errors` lists.

## What gets registered

| Name                          | Mode      | Cadence      | What it does                                                                                                                                                                                   |
| ----------------------------- | --------- | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `sherwood-monitor-digest`     | no\_agent | every 15 min | Bullet-formats new proposals, settlements, risk alerts via the supervisor cursor. Silent when no events.                                                                                       |
| `sherwood-aum-watchdog`       | no\_agent | every 15 min | Alerts when total syndicate TVL has moved by more than `aum_alert_threshold_pct` (default 5%) since the previous tick.                                                                         |
| `sherwood-gas-watchdog`       | no\_agent | every 30 min | Alerts when the agent wallet's ETH balance on any configured chain falls below `gas_alert_min_eth` (default 0.002 ETH).                                                                        |
| `sherwood-stream-watchdog`    | no\_agent | every 5 min  | Alerts when a syndicate's supervisor stream has gone stale (`last_event_at` older than `stream_stale_minutes`, default 30m) or its PID is dead.                                                |
| `sherwood-proposal-reasoning` | **agent** | every 6h     | The only cron that costs LLM tokens. Reads open proposals and returns a vote recommendation per proposal. Silent when no proposals are open. Disable with `proposal_reasoning_enabled: false`. |

The four no\_agent watchdogs use Hermes' [`no_agent` script-only mode](https://hermes-agent.nousresearch.com/docs/guides/cron-script-only): Hermes runs the script and delivers stdout verbatim — empty stdout means a silent tick.

## Configure thresholds

In `~/.hermes/plugins/sherwood-monitor/config.yaml`:

```yaml theme={null}
syndicates:
  - alpha-fund
  - beta-yield

# Watchdog tuning (all optional — sensible defaults)
aum_alert_threshold_pct: 5.0        # default 5%
gas_alert_min_eth: 0.002            # default 0.002 ETH
stream_stale_minutes: 30            # default 30 minutes
proposal_reasoning_enabled: true    # set false to skip the agent reasoning cron
```

All thresholds are optional — existing configs keep working without edits.

## Verify

```bash theme={null}
hermes cron list                  # 5 active sherwood-* entries
hermes cron run <job-id>          # trigger one tick to test
```

## Replace, pause, uninstall

```bash theme={null}
# Pause / resume one entry
hermes cron pause <job-id>
hermes cron resume <job-id>

# Re-tune cadence
hermes cron edit <job-id> --schedule "every 60m"

# Remove all five
hermes cron list                  # find the IDs
hermes cron remove <job-id>       # repeat per entry
```

## Why the status / reasoning split

Watchdog alerts are deterministic given event lists, TVL deltas, balance
checks, and stream liveness — no judgment needed, so we don't pay LLM
tokens for them. Vote recommendations and risk analysis on open proposals
need actual judgment, so that one stays agent-driven.

## Source

* Plugin repo: [sherwoodagent/sherwood-hermes-plugin](https://github.com/sherwoodagent/sherwood-hermes-plugin)
* Plugin install + config: [README](https://github.com/sherwoodagent/sherwood-hermes-plugin/blob/main/README.md)
