Routines
Repo-scoped cron routines: /schedule fires headless agent runs on a cron pattern while Empryo is open - nightly reviews, recurring checks, no system service installed.
Overview
A routine is a headless agent run on a cron schedule, scoped to the repo it lives in. Add one with /schedule and it fires as a detached empryo --headless run of the same binary - a nightly review, an hourly check, a recurring cleanup prompt.
The TUI is the daemon: routines run only while Empryo is open on the repo. Nothing is installed system-wide, no background service survives quitting.
Commands
| Command | Action |
|---|---|
/schedule | List routines and the runner state |
/schedule add <5-field cron> <prompt> | Add and arm a routine |
/schedule remove <n or id> | Remove by list index or id |
/schedule on <n or id> / /schedule off <n or id> | Enable / disable |
Example:
/schedule add 0 22 * * * review the day's uncommitted work and summarize risksThe pattern is validated when you add it - by the same engine that will run it - so a routine that cannot fire is refused up front.
How a tick runs
- Each tick spawns a detached headless run: your prompt, this repo as the working directory, quiet output.
- Overlap-guarded per routine: a tick that lands while the previous run is still going is skipped and counted. Two concurrent agent runs would fight over one tree.
- The last run's time and exit code are recorded and shown in
/schedule.
Where routines live
.empryo/schedules.json in the project - one file per repo, edited by the command, read when the TUI boots. Routines are repo-scoped on purpose: a nightly review belongs to the repo it reviews.