| access-key | Aether API key for authentication. Generate one via `aether api-key add --scope deploy`
or in the Aether dashboard, then store as a GitHub secret. Do not use session access
keys created with `aether access-key add` — they invalidate when the owner resets their
password and have a fixed 60-day expiration.
| yes | — |
| app-name | Name of the Aether app to release to. | yes | — |
| command | Which CLI command to run. One of: `release`, `release-react`. | no | release-react |
| node-version | Node.js version installed by setup-node. The CLI requires Node 22 or newer. | no | 22 |
| api-url | Override the Aether server URL. Leave empty for the CLI built-in default (production).
Set to a custom Aether server URL (e.g. a staging environment) to override.
| no | "" |
| working-directory | Directory to run the CLI from, relative to the repository root. Useful for
monorepos where the React Native project lives in a subdirectory
(e.g. `apps/mobile`). Relative paths such as `update-contents-path` are
resolved from here. Defaults to the repository root.
| no | . |
| deployment-name | Aether deployment channel to release into. | no | Staging |
| description | Release description (free text). If `ci-metadata` is on, the CLI appends a `[ci=...]` bracket. | no | "" |
| mandatory | Mark the release as mandatory. The SDK forces install on clients. | no | false |
| rollout | Percentage of clients eligible for this release (e.g. `100%`, `25%`). | no | 100% |
| disabled | Upload the release in a disabled state. It will not be served until enabled. | no | false |
| no-duplicate-release-error | When set to `true`, releasing an identical package produces a warning instead of an error. | no | false |
| ci-metadata | Enrich the release description with CI metadata (`[ci=github sha=... branch=... pr=... run=...]`).
The CLI auto-detects GitHub Actions. Set to `false` to opt out.
| no | true |
| force | Skip the CLI confirmation prompts for destructive operations. | no | false |
| update-contents-path | `release` only. Path to the bundle file or directory to upload.
Required when `command` is `release`. Ignored for `release-react`.
| no | "" |
| target-binary-version | Semver range of native binary versions this release targets (e.g. `1.0.0`, `~1.2.0`, `>=2.0.0 <3.0.0`).
Required for `release`. For `release-react`, omit to read the version from the project
(`Info.plist` on iOS, `build.gradle` on Android).
| no | "" |
| platform | `release-react` only. Target platform. One of: `ios`, `android`. | no | "" |
| bundle-name | `release-react` only. JS bundle filename. Defaults to `main.jsbundle` (iOS) or `index.android.bundle` (Android). | no | "" |
| entry-file | `release-react` only. Path to the app entry JS file. Defaults to `index.<platform>.js`, falling back to `index.js`. | no | "" |
| gradle-file | `release-react` only (Android). Path to the gradle file specifying the binary version. | no | "" |
| plist-file | `release-react` only (iOS). Path to the plist file specifying the binary version. | no | "" |
| use-hermes | `release-react` only. Enable Hermes and bypass automatic detection checks. | no | false |
| development | `release-react` only. Build a development bundle instead of release. | no | false |
| output-dir | `release-react` only. Directory to write the bundle and sourcemap to. | no | "" |
| sourcemap-output | `release-react` only. Path to write the sourcemap to. Omit to skip sourcemap generation. | no | "" |
| private-key-path | `release-react` only. Path to the private key for code signing. | no | "" |