Appearance
Command reference
Every command below takes the same flags as eas-cli: a contract test compares this table with eas-cli's own oclif.manifest.json. The quoted line is eas-cli's description; In rnd says what the command does here.
Global options: --help on any command, --version on eas.
Build
rnd build
start a build
In rnd: Resolves the profile from eas.json, checks it can be built, and dispatches .github/workflows/eas-build.yml on GitHub Actions. iOS runs on macos-26, Android on ubuntu-latest. Internal builds are published to the install service when it is configured. --local is refused: the point is that the Mac is GitHub's. See Building.
sh
rnd build [flags]| Flag | Default | Description |
|---|---|---|
-p, --platform <android|ios|all> | Platform to build for. | |
-e, --profile <value> | Name of the build profile from eas.json. Defaults to "production" if defined in eas.json. | |
--local | Run build locally [experimental]. | |
--output <value> | Output path for local build. | |
--[no-]wait | true | Wait for build(s) to complete. |
--clear-cache | Clear cache before the build. | |
-s, --auto-submit | Submit on build complete using the submit profile with the same name as the build profile. Alias: --submit. accepted, no effect yet | |
--auto-submit-with-profile <value> | Submit on build complete using the submit profile with provided name. accepted, no effect yet | |
--what-to-test <value> | Specify the "What to Test" information for the build in TestFlight (iOS-only). To be used with the auto-submit flag. accepted, no effect yet | |
-m, --message <value> | A short message describing the build. | |
--build-logger-level <trace|debug|info|warn|error|fatal> | The level of logs to output during the build process. Defaults to "info". accepted, no effect yet | |
--freeze-credentials | Prevent the build from updating credentials in non-interactive mode. accepted, no effect yet | |
--refresh-ad-hoc-provisioning-profile | Refresh managed ad-hoc provisioning profiles from App Store Connect before gathering build credentials. accepted, no effect yet | |
--verbose-logs | Use verbose logs for the build process. accepted, no effect yet | |
--json | Enable JSON output. | |
--non-interactive | Run the command in non-interactive mode. |
rnd build:list
list all builds for your project
In rnd: Reads workflow runs from the GitHub Actions API and maps each onto EAS's BuildFragment shape, so --json output can be piped into anything that understood EAS. Build ids are a SHA-256 of repo#runId, formatted as a UUID.
sh
rnd build:list [flags]| Flag | Default | Description |
|---|---|---|
-p, --platform <android|ios|all> | Platform to build for. | |
--status <new|in-queue|in-progress|pending-cancel|errored|finished|canceled> | Filter by build status. | |
--distribution <store|internal|simulator> | Filter by distribution type. | |
--channel <value> | ||
--app-version <value> | Alias: --appVersion. | |
--app-build-version <value> | Alias: --appBuildVersion. | |
--sdk-version <value> | Alias: --sdkVersion. | |
--runtime-version <value> | Alias: --runtimeVersion. | |
--app-identifier <value> | Alias: --appIdentifier. | |
-e, --build-profile <value> | Alias: --profile, --buildProfile. | |
--git-commit-hash <value> | Alias: --gitCommitHash. | |
--fingerprint-hash <value> | ||
--offset <value> | Start queries from specified index. | |
--limit <value> | The number of items to fetch. | |
--json | Enable JSON output. | |
--non-interactive | Run the command in non-interactive mode. | |
--simulator | Filter only iOS simulator builds. |
rnd build:view
view a build for your project
In rnd: Accepts a full build id, a unique id prefix, or a raw GitHub run id.
sh
rnd build:view [BUILD_ID] [flags]| Flag | Default | Description |
|---|---|---|
--json | Enable JSON output. |
rnd build:cancel
cancel a build
In rnd: Cancels the workflow run, which also stops the runner minutes being billed.
sh
rnd build:cancel [BUILD_ID] [flags]| Flag | Default | Description |
|---|---|---|
--non-interactive | Run the command in non-interactive mode. | |
-p, --platform <android|ios|all> | Platform to build for. | |
-e, --profile <value> | Name of the build profile from eas.json. Defaults to "production" if defined in eas.json. |
rnd build:download
download a simulator/emulator build by build ID or fingerprint hash
In rnd: Downloads the build's artifact zip into ./build. Without --build-id it takes the latest build for --platform. GitHub always wraps artifacts in a zip: unzip it to get the .ipa, .apk, .aab or simulator .tar.gz.
sh
rnd build:download [flags]| Flag | Default | Description |
|---|---|---|
--build-id <value> | Alias: --id. | |
--fingerprint <value> | ||
-p, --platform <ios|android> | Platform to build for. | |
--[no-]dev-client | ||
--all-artifacts | ||
--json | Enable JSON output. | |
--non-interactive | Run the command in non-interactive mode. |
rnd build:configure
configure the project to support EAS Build
In rnd: Writes a starter eas.json and .github/workflows/eas-build.yml. It does not set ios.bundleIdentifier or android.package; add them to app.json yourself. Commit and push the workflow before the first build.
sh
rnd build:configure [flags]| Flag | Default | Description |
|---|---|---|
-p, --platform <android|ios|all> | Platform to build for. |
rnd build:version:get
get the latest version from EAS servers
In rnd: Reads ios.buildNumber and android.versionCode from app.json; there is no version server.
sh
rnd build:version:get [flags]| Flag | Default | Description |
|---|---|---|
-p, --platform <android|ios|all> | Platform to build for. | |
-e, --profile <value> | Name of the build profile from eas.json. Defaults to "production" if defined in eas.json. | |
--json | Enable JSON output. | |
--non-interactive | Run the command in non-interactive mode. |
rnd build:version:set
update version of an app
In rnd: Refused: versions live in your app config, not on a server. Edit version, ios.buildNumber and android.versionCode in app.json.
sh
rnd build:version:set [flags]| Flag | Default | Description |
|---|---|---|
-p, --platform <android|ios> | Platform to build for. | |
-e, --profile <value> | Name of the build profile from eas.json. Defaults to "production" if defined in eas.json. |
Submit
rnd submit
Alias: rnd build:submit
submit app binary to App Store and/or Play Store
In rnd: Uploads a local .ipa to App Store Connect with asc builds upload, waits for processing when TestFlight groups are requested, then adds the build to the profile's groups. --url is refused (asc uploads local files) and Android submission is not wired up yet. See Submitting to TestFlight.
sh
rnd submit [flags]| Flag | Default | Description |
|---|---|---|
-p, --platform <android|ios|all> | Platform to build for. | |
-e, --profile <value> | Name of the build profile from eas.json. Defaults to "production" if defined in eas.json. | |
--latest | Submit the latest build for specified platform. | |
--id <value> | ID of the build to submit. | |
--path <value> | Path to the .apk/.aab/.ipa file. | |
--url <value> | App archive url. | |
--what-to-test <value> | Sets the "What to test" information in TestFlight (iOS only). | |
--verbose | Always print logs from EAS Submit. | |
--[no-]wait | true | Wait for submission to complete. |
--verbose-fastlane | ||
-g, --groups <value> | Internal TestFlight testing groups to add the build to. | |
--non-interactive | Run the command in non-interactive mode. | |
--[no-]auto-testflight-setup |
rnd submit:list
list submissions for your project
In rnd: Submission history is not stored locally; this shows recent TestFlight builds from App Store Connect.
sh
rnd submit:list [flags]| Flag | Default | Description |
|---|---|---|
-p, --platform <android|ios|all> | Platform to build for. | |
--status <awaiting-build|in-queue|in-progress|finished|errored|canceled> | ||
--offset <value> | Start queries from specified index. | |
--limit <value> | The number of items to fetch. | |
--json | Enable JSON output. | |
--non-interactive | Run the command in non-interactive mode. |
rnd submit:view
view a submission for your project
In rnd: Shows recent TestFlight builds from App Store Connect.
sh
rnd submit:view [SUBMISSION_ID] [flags]| Flag | Default | Description |
|---|---|---|
-p, --platform <android|ios|all> | Platform to build for. | |
--json | Enable JSON output. |
rnd submit:status
show the status of your app on the App Store: the live version and TestFlight builds
In rnd: The live App Store version and recent TestFlight builds with their processing state.
sh
rnd submit:status [flags]| Flag | Default | Description |
|---|---|---|
-p, --platform <android|ios|all> | Platform to build for. | |
-e, --profile <value> | Name of the build profile from eas.json. Defaults to "production" if defined in eas.json. | |
--json | Enable JSON output. | |
--non-interactive | Run the command in non-interactive mode. |
rnd submit:cancel
cancel a submission
In rnd: Refused: an App Store Connect upload cannot be cancelled once started. Remove the build from its TestFlight groups instead.
sh
rnd submit:cancel [SUBMISSION_ID] [flags]| Flag | Default | Description |
|---|---|---|
--non-interactive | Run the command in non-interactive mode. | |
-p, --platform <android|ios|all> | Platform to build for. |
Project & credentials
rnd credentials
manage credentials
In rnd: Reports which signing secrets the repository holds. It does not create or upload them yet; see Credentials for the setup.
sh
rnd credentials [flags]| Flag | Default | Description |
|---|---|---|
-p, --platform <android|ios> | Platform to build for. |
rnd config
display project configuration (app.json + eas.json)
In rnd: Prints the build and submit profile after extends, platform blocks and schema defaults are applied: what the runner actually receives.
sh
rnd config [flags]| Flag | Default | Description |
|---|---|---|
-p, --platform <android|ios> | Platform to build for. | |
-e, --profile <value> | Name of the build profile from eas.json. Defaults to "production" if defined in eas.json. | |
--json | Enable JSON output. | |
--non-interactive | Run the command in non-interactive mode. |
rnd project:info
information about the current project
In rnd: What the CLI sees: app identifiers, GitHub repository, branch, managed vs bare, lockfile, and whether eas.json exists.
sh
rnd project:infoDevices
rnd device:list
list all registered devices for your account
In rnd: Lists devices registered on your Apple Developer account through asc, with name, model and UDID.
sh
rnd device:list [flags]| Flag | Default | Description |
|---|---|---|
--apple-team-id <value> | ||
--offset <value> | Start queries from specified index. | |
--limit <value> | The number of items to fetch. | |
--json | Enable JSON output. | |
--non-interactive | Run the command in non-interactive mode. |
rnd device:create
register new Apple Devices to use for internal distribution
In rnd: Prints the asc devices create command to run. After registering a device, regenerate the ad-hoc profile and rebuild. See Internal distribution.
sh
rnd device:createAccount
rnd account:view
Alias: rnd whoami
show the username you are logged in as
In rnd: Shows the GitHub user the stored token belongs to, and its scopes.
sh
rnd account:viewrnd account:login
Alias: rnd login
log in with your Expo account
In rnd: Stores a GitHub personal access token (scopes repo and workflow) at ~/.eas-gh/auth.json, mode 0600. Reads EAS_GITHUB_TOKEN when set, otherwise prompts. There is no Expo account, SSO or browser flow.
sh
rnd account:login [flags]| Flag | Default | Description |
|---|---|---|
-s, --sso | Log in with SSO. | |
-b, --[no-]browser | true | Log in with your browser (default; use --no-browser for CLI-based login). |
rnd account:logout
Alias: rnd logout
log out
In rnd: Deletes the stored token. A token in EAS_GITHUB_TOKEN, GH_TOKEN or GITHUB_TOKEN is still used.
sh
rnd account:logoutNot supported
These commands describe services that only exist on Expo's servers. They are recognised and answered with the alternative, rather than failing as an unknown command.
| Command | Why, and what to use instead |
|---|---|
rnd update | over-the-air updates require an update server; this replacement covers builds and submissions |
rnd update:configure | over-the-air updates require an update server |
rnd branch | update branches require an update server |
rnd channel | update channels require an update server |
rnd workflow:run | EAS Workflows run on Expo infrastructure; use GitHub Actions directly |
rnd webhook | EAS webhooks are emitted by Expo servers; use GitHub Actions webhooks |
rnd env | EAS environment variables live on Expo servers; use GitHub Actions secrets and variables |
rnd secret | EAS secrets live on Expo servers; use GitHub Actions secrets |
rnd metadata | store metadata is handled by asc metadata in this replacement |
rnd deploy | EAS Hosting deployments are an Expo service |