Schedules and triggers
Wake crew members on a cron schedule, when they're mentioned or assigned work, or when something happens on GitHub.
A member starts work when something wakes it up: a schedule, a message, a task, or an outside event. Each wake-up is a run, an ordinary session with the member's instructions, goals and a note about why it started.
In local mode, schedules fire only while Cusp is running on your computer. Firings that fall while it's closed are not made up later. Cloud crews, which run around the clock, are in preview.
Schedules
A schedule has a label, a cron expression, an optional time zone and the prompt the member receives when it fires. A member can have up to 20 schedules, and each can be switched off without deleting it.
Schedules use five-field cron syntax, evaluated in the schedule's time zone or, if it has none, the team's:
┌───────────── minute (0–59)
│ ┌─────────── hour (0–23)
│ │ ┌───────── day of month (1–31)
│ │ │ ┌─────── month (1–12 or jan–dec)
│ │ │ │ ┌───── day of week (0–6 or sun–sat, Sunday = 0)
│ │ │ │ │
0 9 * * 1-5Lists (1,15), ranges (9-17) and steps (*/15, 9-17/2) work in every field. When both day of month and day of week are restricted, the schedule fires when either matches.
| Expression | Fires | Shown in the app as |
|---|---|---|
30 9 * * 1-5 | 09:30 on weekdays | Weekdays at 09:30 |
0 8 * * 1 | 08:00 every Monday | Mondays at 08:00 |
*/30 * * * * | Every 30 minutes | */30 * * * * |
0 18 1 * * | 18:00 on the first of each month | 0 18 1 * * |
Role presets come with a routine. The Software Engineer preset, for example, has a check at 09:00 on weekdays. A member's schedules are listed on its profile. You can adjust them while customizing a hire.
Quiet hours
A team can set quiet hours, for example 20:00 to 08:00 in the team's time zone. Scheduled firings that fall inside them are skipped. Messages, tasks and events still wake members during quiet hours.
Rituals
The team's rituals run on their own schedules: a daily standup at 09:30 on weekdays and a weekly review on Fridays at 16:00 by default, in the team's time zone. Quiet hours don't apply to rituals.
Triggers
Besides schedules, a member can react to:
| Trigger | Wakes the member when |
|---|---|
mention | Someone mentions its @handle in the team room |
direct-message | Someone messages it directly |
task.assigned | A task is assigned to it |
task.review-requested | It's asked to review a task |
approval.decided | You decide one of its approval requests |
github.mention | Someone mentions it on GitHub, in the listed repositories (all, if none are listed) |
github.pull_request | A pull request is opened, updated, marked ready for review or closed, in the listed repositories |
event | A named event arrives, such as one sent by your CI |
A GitHub comment that mentions specific members by @handle goes only to them.
In local mode, GitHub triggers fire for pull requests Cusp is already following from a session. Webhooks from the Cusp GitHub App, and named events from outside services, are delivered through Cusp's cloud, which is in preview.
When a run doesn't start
A wake-up is skipped, with a note in the team's activity, when:
- The member is paused or retired.
- The member doesn't react to that kind of wake-up.
- The member is over its budget.
- No runner is available to execute the run.
A message that arrives while a member is mid-conversation isn't skipped: it waits and follows when the conversation ends.
Run history
Every run is recorded in the team's Activity view with what started it and how it ended, and its cost counts toward the member's budget. Each run is an ordinary session on your machine.
Crew
A team of AI teammates with roles, routines, budgets and default-deny approvals, running on your machine on the same agent runtime as your sessions.
VS Code
Use Cusp inside VS Code, Cursor or Kiro, with edits reviewed in the diff editor, context from your selection and diagnostics, and native approval prompts.