smartcrabai/Cruise

Trigger the cruise coding agent from a GitHub Issue (@cruise plan / run / exec / fix). Runs cruise's plan -> implement -> PR workflow (or a direct exec push) inside GitHub Actions, driving pi_agent_rust directly (sdk: pi), and reports progress back as a comment.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Stale
License
None
namedescriptionrequireddefault
anthropic_api_keyAnthropic API key used by pi (the sdk: pi backend cruise always drives in this action). Provide an API key through `anthropic_api_key`, `openai_api_key`, or another pi-supported provider's key (e.g. KIMI_API_KEY) via `env` -- the gate step fails clearly when all three inputs are empty.no""
openai_api_keyOpenAI API key used by pi. See `anthropic_api_key` for how the at-least-one-key requirement is checked.no""
github_tokenToken used for GitHub API calls (permission checks, comments, PRs, pushes). Leave empty (the default) to let cruise obtain a short-lived cruise-agent GitHub App installation token via OIDC token exchange (see `token_exchange_url`), falling back to the workflow's GITHUB_TOKEN when the App isn't installed or the exchange is unavailable. Set this explicitly (e.g. to a PAT or your own App's token) to skip the OIDC exchange entirely and use that token instead.no""
token_exchange_urlURL of the cruise-agent token-exchange service used to trade this job's OIDC token for a repository-scoped GitHub App installation token. Empty disables the exchange (the action then always falls back to `github_token`/`GITHUB_TOKEN`). See docs/github-actions.md for self-hosting your own exchange.nohttps://cruise-token-exchange.smartcrab.ai/token
trigger_phrasePhrase that must appear in the comment/issue body to trigger cruise.no@cruise
cruise_versioncruise release to install. "latest" (default) or a specific tag such as "v0.1.68". Requires cruise v0.1.68 or later (the first release with `sdk: pi` support, which this action always uses).nolatest
configPath (relative to the repository root, or absolute) to a cruise workflow config YAML, used by the `run`/`plan`/`fix` commands (sets CRUISE_CONFIG). Empty (default) lets cruise's own resolver pick cruise.yaml/cruise.yml/.cruise.yaml/.cruise.yml from the checkout, or its built-in default if none exists. Has no effect on `exec`, which always uses its own generated `{input}`-only config.no""
modelOverrides CRUISE_MODEL (the model used for implementation steps), in pi's model-reference format: "provider/model[:thinking]" (e.g. "openai-codex/gpt-5.5:xhigh"), a bare model id ("claude-sonnet-4-6"), or empty to let pi auto-select a provider/model from its built-in preference order.no""
plan_modelOverrides CRUISE_PLAN_MODEL (the model used by the `plan`/`fix` commands' planning step), same format as `model`.no""
pi_models_jsonRaw contents of a pi `models.json` file (custom providers / OpenAI- compatible endpoints / model registry overrides -- see pi's own model docs for the schema). When set, this is written to `$RUNNER_TEMP/pi-agent/models.json` and `PI_CODING_AGENT_DIR` is pointed at that directory for the duration of the run. Empty (default) leaves pi's model resolution untouched.no""
envExtra environment variables to export into the cruise process, one `KEY=VALUE` per line (blank lines and lines starting with "#" are ignored). Each value is masked in the log before being exported. Reserved names (GITHUB_TOKEN, GH_TOKEN, ANTHROPIC_API_KEY, OPENAI_API_KEY, CRUISE_SDK, CRUISE_CONFIG, PI_CODING_AGENT_DIR, PATH, HOME, git identity vars, XDG_* vars, and anything prefixed GITHUB_/ACTIONS_/RUNNER_) are skipped with a warning instead of being overridden.no""
allowed_botsComma-separated list of bot logins (without the "[bot]" suffix) allowed to trigger cruise, or "*" to allow any bot. Empty (default) blocks all bot actors.no""
git_user_namegit user.name used for commits cruise/this action creates. Defaults to "cruise-agent[bot]" when the run used a cruise-agent App installation token, otherwise "github-actions[bot]".no""
git_user_emailgit user.email used for commits cruise/this action creates. Defaults to match `git_user_name`'s default (the cruise-agent App's or github-actions[bot]'s noreply address). Commits still add the triggering user as a Co-authored-by trailer when the event payload includes their login and numeric user id.no""
namedescription
command"run", "exec", "plan", or "fix" -- the command parsed from the mention (empty if the gate skipped the run).
session_idThe cruise session ID that was created (empty if skipped/failed before creation).
pr_urlURL of the pull request cruise created (the `run` command only; empty otherwise).
commit_urlURL of the commit cruise pushed directly to the default branch (the `exec` command only; empty otherwise).
plan_comment_urlURL of the plan-tracking comment cruise posted or edited (the `plan`/`fix` commands only; empty otherwise).
conclusion"success", "failure", or "skipped" (mention did not match / actor not authorized).
used_app"true" if the run authenticated with a cruise-agent GitHub App installation token, "false" if it used `github_token`/`GITHUB_TOKEN`, or an empty string if the gate step skipped the run before the `token` step ran (mention didn't match / actor not authorized).