Skip to content

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]
FlagDefaultDescription
-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.
--localRun build locally [experimental].
--output <value>Output path for local build.
--[no-]waittrueWait for build(s) to complete.
--clear-cacheClear cache before the build.
-s, --auto-submitSubmit 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-credentialsPrevent the build from updating credentials in non-interactive mode. accepted, no effect yet
--refresh-ad-hoc-provisioning-profileRefresh managed ad-hoc provisioning profiles from App Store Connect before gathering build credentials. accepted, no effect yet
--verbose-logsUse verbose logs for the build process. accepted, no effect yet
--jsonEnable JSON output.
--non-interactiveRun 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]
FlagDefaultDescription
-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.
--jsonEnable JSON output.
--non-interactiveRun the command in non-interactive mode.
--simulatorFilter 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]
FlagDefaultDescription
--jsonEnable 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]
FlagDefaultDescription
--non-interactiveRun 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]
FlagDefaultDescription
--build-id <value>Alias: --id.
--fingerprint <value>
-p, --platform <ios|android>Platform to build for.
--[no-]dev-client
--all-artifacts
--jsonEnable JSON output.
--non-interactiveRun 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]
FlagDefaultDescription
-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]
FlagDefaultDescription
-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.
--jsonEnable JSON output.
--non-interactiveRun 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]
FlagDefaultDescription
-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]
FlagDefaultDescription
-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.
--latestSubmit 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).
--verboseAlways print logs from EAS Submit.
--[no-]waittrueWait for submission to complete.
--verbose-fastlane
-g, --groups <value>Internal TestFlight testing groups to add the build to.
--non-interactiveRun 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]
FlagDefaultDescription
-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.
--jsonEnable JSON output.
--non-interactiveRun 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]
FlagDefaultDescription
-p, --platform <android|ios|all>Platform to build for.
--jsonEnable 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]
FlagDefaultDescription
-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.
--jsonEnable JSON output.
--non-interactiveRun 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]
FlagDefaultDescription
--non-interactiveRun 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]
FlagDefaultDescription
-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]
FlagDefaultDescription
-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.
--jsonEnable JSON output.
--non-interactiveRun 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:info

Devices ​

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]
FlagDefaultDescription
--apple-team-id <value>
--offset <value>Start queries from specified index.
--limit <value>The number of items to fetch.
--jsonEnable JSON output.
--non-interactiveRun 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:create

Account ​

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:view

rnd 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]
FlagDefaultDescription
-s, --ssoLog in with SSO.
-b, --[no-]browsertrueLog 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:logout

Not 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.

CommandWhy, and what to use instead
rnd updateover-the-air updates require an update server; this replacement covers builds and submissions
rnd update:configureover-the-air updates require an update server
rnd branchupdate branches require an update server
rnd channelupdate channels require an update server
rnd workflow:runEAS Workflows run on Expo infrastructure; use GitHub Actions directly
rnd webhookEAS webhooks are emitted by Expo servers; use GitHub Actions webhooks
rnd envEAS environment variables live on Expo servers; use GitHub Actions secrets and variables
rnd secretEAS secrets live on Expo servers; use GitHub Actions secrets
rnd metadatastore metadata is handled by asc metadata in this replacement
rnd deployEAS Hosting deployments are an Expo service

Builds run on your GitHub Actions minutes; signing assets stay in your repo secrets.