GitHub Action
Mention @cusp on an issue or pull request, or run a prompt on a schedule, and Cusp works on a branch, reports progress in a comment, and opens or updates a pull request.
The Cusp GitHub Action runs the agent inside your GitHub Actions workflows. Mention @cusp in an issue or pull request comment, or give the action a prompt to run on a schedule. Cusp works on a branch, keeps a live progress comment, and opens or updates a pull request. It works with any provider whose API key you store as a repository secret.
Quick start
Available with the first public release.
Scheduled and automated runs
With prompt set, the action runs on any event, without a mention:
Available with the first public release.
What happens on a trigger
- Detect. The action runs on a new comment, inline review comment or review that mentions the trigger phrase as a whole word (
@cusp, not@cuspid), and on an issue opened with the mention or assigned toassignee_trigger. - Authorize. The author needs write access to the repository. Bots are ignored unless listed in
allowed_bots, and Cusp never reacts to its own comments. - Acknowledge. It adds an "eyes" reaction to the comment and posts a progress comment showing the agent's todo list and current step, edited as work goes on.
- Branch. On a pull request from the same repository, it works on the pull request's branch. On an issue or automated run, it creates
cusp/issue-<n>-<id>. Pull requests from forks run read-only: Cusp can answer and review, but not push. - Run. It starts a private Cusp daemon for the job and registers every provider whose key is in the environment. Keys are passed by reference and never written to disk or logs.
- Deliver. It commits what the agent left uncommitted, pushes, and opens a pull request or updates the existing one, with
Closes #nfor issues. The progress comment becomes the final answer, with the pull request link, branch, model, duration and cost.
Inputs
| Input | Default | Meaning |
|---|---|---|
trigger_phrase | @cusp | The mention that starts Cusp |
prompt | Run with this instruction on any event | |
model | Best available | provider:model, such as anthropic:claude-sonnet-5-5, or a model id |
github_token | ${{ github.token }} | Token for comments, pushes and pull requests |
permission_mode | acceptEdits | default, acceptEdits, plan, auto, bypassPermissions or dontAsk |
allowed_tools, disallowed_tools | Permission rules, one per line or comma-separated | |
max_turns | 40 | Maximum model turns |
branch_prefix | cusp/ | Prefix for new branches |
base_branch | The pull request's base, or the default branch | Base for new pull requests |
append_system_prompt | Extra instructions for the agent | |
allowed_bots | Bots allowed to trigger Cusp (* for all) | |
assignee_trigger | Run when an issue is assigned to this user | |
timeout_minutes | 30 | Stop the agent after this long |
Outputs
| Output | Value |
|---|---|
conclusion | success, failure or skipped |
session_id | The Cusp session |
branch | The branch Cusp worked on |
pr_url | The pull request it opened or updated |
comment_url | The progress comment |
Notes
- Permissions.
contents: writeandpull-requests: writelet Cusp push and open pull requests;issues: writelets it comment. - CI on Cusp's pull requests. Pushes made with
GITHUB_TOKENdon't trigger other workflows. To run CI on Cusp's pull requests, pass a GitHub App token or a personal access token asgithub_token. - Commit author. Commits are authored as
github-actions[bot]unless the workflow sets a git identity. - GitHub Enterprise Server works without extra configuration.
- Runners. Linux and macOS, x64 or arm64. Each action version installs the
cusprelease of the same version and checks its SHA-256 before running it.@v0follows the latest 0.x release; pin an exact tag such as@v0.2.0to stay on one version.
Next
- Permissions: rules for
allowed_tools. - Agent SDK: run Cusp from your own scripts.