| version | Explicit version (e.g. 1.2.3). Overrides auto-detection. | no | — |
| version-source | auto (from commits), package-json, or file. Ignored when version is set. | no | auto |
| version-file | Path to file containing version (used when version-source is "file"). | no | — |
| version-pattern | Regex with capture group to extract version from version-file. | no | "version":\s*"([^"]+)" |
| default-bump | Fallback when no keywords match. patch (default), minor, major, or none. | no | patch |
| initial-version | Starting version when no tags exist. Default 0.1.0. | no | 0.1.0 |
| major-keywords | Comma-separated. Triggers major bump. | no | BREAKING CHANGE,major,!: |
| minor-keywords | Comma-separated. Triggers minor bump. | no | feat,feature,minor |
| patch-keywords | Comma-separated. Triggers patch bump. | no | fix,bug,patch,chore,refactor |
| bump-source | Where to scan: commits (default), pr-title, pr-body, all. | no | commits |
| tag-prefix | Tag prefix. Empty (default) produces 1.0.0. Use "v" for v1.0.0. | no | "" |
| tag-suffix | Tag suffix. Empty (default) produces 1.0.0. Use "-app" for 1.0.0-app. | no | "" |
| tag-strategy | full (v1.0.9 only), all (v1, v1.0, v1.0.9), or full-and-minor. | no | full |
| floating-tags | When true, publish major, minor, and patch tags (e.g. 1, 1.0, 1.0.9). Shorthand for tag-strategy: all. Overrides tag-strategy. | no | false |
| channel | stable (default), alpha, beta, rc, or custom. Produces 1.2.0-beta.3. | no | stable |
| draft | Create draft release. Default false. | no | false |
| prerelease | Mark as prerelease. Auto-set for non-stable channels. | no | false |
| make-latest | Set as latest release. true, false, or legacy. | no | true |
| target-commitish | Branch or SHA for the tag. Default: current ref. | no | — |
| discussion-category | Link release to a discussion category. | no | — |
| if-exists | When tag exists: skip (default), fail, or update. | no | skip |
| publish-to-marketplace | When true, adds a step-summary link to edit the release and publish to Marketplace. Org owner must accept the Marketplace Developer Agreement first. | no | false |
| body | Release body (markdown). | no | — |
| body-path | Path to markdown file for body. | no | — |
| body-template | Template with {{tag}}, {{changelog}}, {{llm_summary}}, etc. | no | — |
| append-body | Append to existing body instead of replacing. | no | false |
| generate-release-notes | Use GitHub auto-generated release notes. | no | false |
| name | Explicit release name (overrides name-template and codename). | no | — |
| name-template | Template for the release name. Supports {{version}}, {{codename}}, {{date}}, etc. | no | — |
| codename | Codename theme: off, adjective-animal, the-office, planets, mythology, gemstones, ships, custom. | no | off |
| codename-words | Custom word list (newline or comma-separated) when codename is "custom". | no | — |
| changelog | Generate changelog and use it as release body. Grouped by commit type. | no | false |
| update-changelog | Prepend the release entry to a changelog file. | no | false |
| changelog-path | Path to the changelog file. | no | CHANGELOG.md |
| llm-release-notes | Enable AI-generated release notes. Requires llm-api-key. Default false. | no | false |
| llm-provider | openrouter (default), openai, or anthropic. | no | openrouter |
| llm-api-key | API key. Store in GitHub Secrets. Required only if llm-release-notes is true. | no | — |
| llm-model | Model override. Defaults: gpt-4o-mini, claude-sonnet-4-20250514, openai/gpt-4o-mini. | no | — |
| llm-prompt | Custom system prompt. Controls tone and format of generated notes. | no | — |
| llm-max-tokens | Max response tokens. Default 1024. | no | 1024 |
| llm-context | What to send: commits (default, cheap), diff, or both. | no | commits |
| files | Newline-delimited glob patterns for asset files to upload. | no | — |
| working-directory | Base directory for resolving file globs. | no | . |
| overwrite-files | Overwrite existing assets with the same name. | no | true |
| fail-on-unmatched-files | Fail if any file glob matches nothing. | no | false |
| slack-webhook | Slack incoming webhook URL for release notifications. | no | — |
| discord-webhook | Discord webhook URL for release notifications. | no | — |
| teams-webhook | Microsoft Teams webhook URL for release notifications. | no | — |
| webhook-url | Generic webhook URL (receives JSON POST with release details). | no | — |
| notification-template | Custom notification message template. Same {{variables}} as body-template. | no | — |
| previous-release-strategy | How to find the previous release: latest-release, latest-tag, tag-pattern, specific-tag. | no | latest-tag |
| previous-tag | Specific previous tag (when strategy is specific-tag). | no | — |
| tag-match-pattern | Glob pattern for tag matching (when strategy is tag-pattern). E.g. "*" or "v*". | no | — |
| dry-run | Preview the release without creating tags, releases, or commits. | no | false |
| token | GitHub token for API access. | no | ${{ github.token }} |