| anthropic_api_key | Anthropic 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_key | OpenAI API key used by pi. See `anthropic_api_key` for how the at-least-one-key requirement is checked. | no | "" |
| github_token | Token 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_url | URL 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. | no | https://cruise-token-exchange.smartcrab.ai/token |
| trigger_phrase | Phrase that must appear in the comment/issue body to trigger cruise. | no | @cruise |
| cruise_version | cruise 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). | no | latest |
| config | Path (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 | "" |
| model | Overrides 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_model | Overrides CRUISE_PLAN_MODEL (the model used by the `plan`/`fix` commands' planning step), same format as `model`. | no | "" |
| pi_models_json | Raw 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 | "" |
| env | Extra 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_bots | Comma-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_name | git 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_email | git 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 | "" |