routines/list
POST /rpc/routines/list returns a bot’s routines.
string
required
The bot.
routines/create
POST /rpc/routines/create creates a routine. It needs at least one trigger: crons, webhookEnabled, githubEnabled, messageProvider or watch.
string
required
The bot that runs it.
string
required
Up to 80 characters.
string
required
What the bot should do each time.
string[]
default:"[]"
Cron expressions, like
0 9 * * 1-5.string
default:"UTC"
An IANA time zone, like
Africa/Lagos.boolean
default:"false"
Whether it runs. New routines start inactive.
boolean
default:"true"
Notify when a run finishes.
boolean
default:"false"
Run on GitHub events.
string | null
Run when a message arrives from this channel, like
slack.object | null
A change trigger. Cannot be combined with
crons. See below.string
An ISO time for a one-time run.
number | null
Stop a run after 5 to 240 minutes. Null means no limit.
"skip" | "queue"
default:"skip"
What to do when the last run is still going.
boolean
default:"false"
Catch up a missed run when the worker starts.
string | null
Run on a different model from the bot’s. Set provider and model together.
string[]
Up to 50 files to attach to every run.
The watch object
"files" | "command" | "tool"
required
What to check.
string[]
For
files: up to 20 paths on the bot’s computer.string
For
command: a shell command whose output is compared.string
For
tool: a read-only integration tool.object
For
tool: fixed arguments.string[]
For
command and tool: up to 5 fields that mark a change in a JSON list.number
default:"15"
How often to check, 5 to 1440.
boolean
default:"false"
Post “No changes” in chat on quiet checks.
routines/update
POST /rpc/routines/update takes a routineId and any of the fields above. Null clears watch, maxMinutes and the routine’s own model.