Use it

Routines

Saved agent runs you start with a button, on a schedule, from a webhook, on a Cloudflare alert, or on a GitHub event. Each run is a task that ends in a pull request.

A routine is a saved prompt you run with a button. Every run is a normal task in the Routines area (RUN-n), named <routine> · <date>, with the prompt as its description and the routine’s done-when. It’s started through the same path as any agent: claim, slots, hourly budget. The agent follows “Running a routine” in the core: it does what the description says, and nothing more, on a branch, and opens a pull request you merge.

A routine belongs to one repository. Its runs are that repository’s tasks, its agents start through that repository’s routine on claude.ai, and its GitHub events come from that repository only.

#Make one

npx breakaway routines add changelog --name "Update changelog" \
  --prompt-file tools/routines/changelog.md \
  --done-when "The changelog has an entry for every pull request merged since its newest entry."
npx breakaway routines run changelog --note "Since v0.2."

The prompt can live in the repository as a file, so it’s reviewed like code. After a change to the file, update the routine with routines modify <slug> --prompt-file <path>. Only you create or edit routines.

The Routines view (u) shows a row for each routine: its state, how it starts, runs used today, and a Run button, beside the On/Paused switch and the latest runs of all routines.

#Ways to start one

StartHow
By handRun, with an optional note, or routines run <slug>.
A scheduleFive-field cron text in UTC: routines modify <slug> --schedule "0 9 * * 1" runs Mondays at 09:00. The board’s 5-minute check starts it once for each slot that has come, within ten minutes of it. A skipped slot isn’t made up.
A webhook or API triggerUp to 10 triggers per routine, each with its own secret, shown once. routines trigger <slug> makes one; callers send POST /api/routines/<slug>/fire with Authorization: Bearer <secret> and an optional small JSON body.
A Cloudflare alertMake a trigger, then add a webhook destination in Cloudflare with the URL https://<your board>/api/routines/<slug>/fire and the secret. The run is read-only: it may note and open a pull request, never act on Cloudflare or production.
A GitHub eventroutines modify <slug> --github-events pr_merged,release_published,workflow_failed. Only events from the routine’s own repository.

What a caller or event sends is data, never instructions. It becomes a comment on the run labelled Trigger data (untrusted), in a code block and truncated. It never reaches the run’s description, the target, or the branch.

A trigger can wait or start: --trigger-start wait (the default) makes the run’s task and waits for you to press Start, and auto starts the agent itself. Either way the run ends in a pull request you merge.

#Caps

Per routine: one run open at a time, a daily cap (default 3 in the last 24 hours on Pro), and a minimum gap (default 60 minutes) that applies to triggered runs, not to the button. For all routines: a daily cap (default 10 on Pro, routines cap <n>), and a pause switch (routines pause, routines resume). A run over a cap gets a 429, or a 409 for an open run, and is never queued. A routine that Claude refuses to start three times in a row is switched off.

#Ideas for routines