Routines
Schedule agent runs for a repository with /schedule: a nightly review, an hourly check, a daily summary. They run while Empryo is open, with no service.
Copy & share
On this page8 sections
OverviewLink to this section
A routine is a prompt that Empryo runs for you on a schedule. Use it for work you would otherwise repeat by hand: a nightly review of the day's changes, an hourly check for new pull requests, a weekly cleanup.
Each routine belongs to one repository. When it is time, Empryo starts a background empryo --headless run with your prompt in that repository. You do not need to watch it.
Routines run while Empryo is open on the repository, in the terminal UI or the desktop app, or while empryo --headless --routines is running. When phone access runs in the background, it also keeps Empryo running for every trusted project that has a routine turned on, so routines fire with the apps closed. Otherwise nothing keeps running after you quit, and nothing is installed on your system.
CommandsLink to this section
| Command | What it does |
|---|---|
/schedule | Open the routines list with each routine's next run |
/schedule list | Print the list in the chat |
/schedule add <5-field cron> <prompt> | Add a routine with a cron pattern |
/schedule <prompt> --every 30m | Add a routine with a plain-word schedule (see below) |
/schedule run <n or id> | Run a routine now |
/schedule stop <n or id> | Stop the routine's run that is in progress |
/schedule remove <n or id> | Remove a routine by its number in the list or its id. A run in progress stops too. |
/schedule on <n or id> / /schedule off <n or id> | Turn a routine on or off |
/routine and /cron do the same as /schedule.
A run in progress shows Running in the list. Stop it with Stop run in the desktop routines list or on your phone, or with /schedule stop. Removing a routine stops its run as well, wherever you remove it from.
Example with a cron pattern (every day at 22:00):
/schedule add 0 22 * * * review the day's uncommitted work and summarize risksEmpryo checks the pattern when you add it. A pattern that can never run is rejected straight away.
Plain-word schedulesLink to this section
You do not have to write cron. Write the prompt, then add the schedule as a flag at the end:
/schedule review repo for new PRs --every 30m
/schedule summarize the day --daily 18:00 --mode auto
/schedule deep audit --on monday 08:00 --model anthropic/claude-opus-4-6| Flag | When it runs |
|---|---|
--every 15m · --every 2h · --hourly | On that interval |
--daily · --daily 09:30 | Every day (09:00 when you give no time) |
--weekdays 18:00 | Monday to Friday |
--on monday 08:00 · --weekly | Once a week (--weekly means Monday 09:00) |
--cron "0 18 * * 1-5" | A raw 5-field cron pattern |
Each plain-word schedule is turned into a cron pattern and checked before the routine is saved.
Other flags set how the run behaves: --mode (the agent mode), --model (the model to use), --agent (a custom agent) and --name (a label for the list).
From your phoneLink to this section
The Empryo iPhone app has a Schedules screen (/schedules in the composer, or the chat menu). Pick Hourly, Daily, Mon–Fri, Weekly, or Cron to type a 5-field pattern yourself. Turn routines on and off, run one now, stop a run or delete it from the same list.
When a run finishes or fails while the app is closed, the phone gets a notification with the start of the run's summary. Tapping it opens that run as a chat. Routines run on your computer: turn on background phone access there and they run even when Empryo is closed.
Bare runsLink to this section
A bare routine runs with no repository and no tools. It sends one short prompt and gets one answer back. That costs far less per run than a full agent run.
Use bare runs for anything that does not need your code: a standup line, a reminder, a summary of text you put in the prompt. Do not use them for work that must read files, search or run commands.
To make a routine bare, ask the agent to create it as a bare routine. The agent's routine tool has a bare option.
From an agent, and headlessLink to this section
The agent can manage routines too, through its routine tool. It can list, add, remove, enable, disable, run and stop them. A routine that is already running is never started a second time.
A routine's prompt can start an orchestration (a saved graph of agents, see Orchestrator): /orchestrate <graph-id> <input>.
To run routines without the terminal UI or the desktop app open, start the scheduler from a terminal:
empryo --headless --routines # runs this repo's routines until you press Ctrl+COn the desktop, routines and their run history are under My tools → Routines (the workbench). The desktop app only runs a repository's routines after you trust that repository.
How a run worksLink to this section
- When a routine is due, Empryo starts a separate headless run with your prompt, using the repository as the working folder.
- If the previous run of the same routine is still going, the new one is skipped and counted. Two agents working on the same files at once would get in each other's way.
- Empryo records the time and exit code of the last run.
/scheduleshows them.
Where routines liveLink to this section
Routines are saved in .empryo/schedules.json inside the project, one file per repository. The /schedule command edits it for you. Routines are tied to a repository on purpose: a nightly review belongs to the code it reviews.