Skip to main content
See Routines for how routines behave.

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 when the bot’s webhook is called.
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.

Other routine procedures