This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.
EAS CLI reference
Edit page
EAS CLI is a command-line tool that allows you to interact with Expo Application Services (EAS) from your terminal.
You can use EAS Command-Line Interface (CLI) to build, update, submit, deploy or use workflows in your Expo and React Native project from a terminal window.
Installation
You need to install the EAS CLI globally on your machine. You do this by running the following command:
Alternatively, you can use CLI tools provided by your package manager to run EAS CLI commands:
Commands
Use the EAS CLI by running one of the commands documented on this page, optionally followed by any flags or arguments. Flags customize the behavior of a command, and arguments are specific to the command.
eas account:audit [ACCOUNT_NAME]
View the audit logs for an account.
Usage
Argument
[ACCOUNT_NAME]Account name to view audit logs for. If not provided, the account will be selected interactively (or defaults to the only account if there is just one).
Flags
--after=<value>Cursor for pagination. Use the endCursor from a previous query to fetch the next page.--jsonEnable JSON output, non-JSON messages will be printed tostderr.--limit=<value>The number of items to fetch each query. Defaults to 50 and is capped at 100.--non-interactiveRun the command in non-interactive mode.
eas account:login
Log in with your Expo account.
Usage
Flags
-b, --[no-]browserLog in with your browser (default; use--no-browserfor CLI-based login).-s, --ssoLog in with SSO.
Alias
eas account:logout
Log out.
Usage
Alias
eas account:usage [ACCOUNT_NAME]
View account usage and billing for the current cycle.
Usage
Argument
[ACCOUNT_NAME]Account name to view usage for. If not provided, the account will be selected interactively (or defaults to the only account if there is just one).
Flags
--jsonEnable JSON output, non-JSON messages will be printed tostderr.--non-interactiveRun the command in non-interactive mode.
eas account:view
Show the username you are logged in as.
Usage
Alias
eas analytics [STATUS]
Display or change analytics settings.
Usage
eas autocomplete [SHELL]
Display autocomplete installation instructions.
Usage
Argument
[SHELL](zsh|bash|powershell) Shell type.
Flag
-r, --refresh-cacheRefresh cache (ignores displaying instructions).
Examples
eas billing:manage
Manage billing for an account with an active paid EAS plan.
Usage
Flags
-a, --account=<value>Account with an active paid plan to manage. Defaults to your account when only one is eligible.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--no-openOnly print the customer portal URL instead of opening it in a browser.--non-interactiveRun the command in non-interactive mode.
eas billing:subscribe [PLAN]
Subscribe a Free account to an EAS plan.
Usage
Argument
[PLAN](starter|production) plan to subscribe to. Required in non-interactive mode.
Flags
-a, --account=<value>Account to subscribe. Defaults to your account when you only have one.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--no-openOnly print the checkout page URL instead of opening it in a browser.--non-interactiveRun the command in non-interactive mode.
eas branch:create [NAME]
Create a branch.
Usage
Argument
[NAME]Name of the branch to create.
Flags
--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
eas branch:delete [NAME]
Delete a branch.
Usage
Argument
[NAME]Name of the branch to delete.
Flags
--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
eas branch:list
List all branches.
Usage
Flags
--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--limit=<value>The number of items to fetch each query. Defaults to 50 and is capped at 100.--non-interactiveRun the command in non-interactive mode.--offset=<value>Start queries from specified index. Use for paginating results. Defaults to 0.
eas branch:rename
Rename a branch.
Usage
Flags
--from=<value>Current name of the branch.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.--to=<value>New name of the branch.
eas branch:view [NAME]
View a branch.
Usage
Argument
[NAME]Name of the branch to view.
Flags
--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--limit=<value>The number of items to fetch each query. Defaults to 25 and is capped at 50.--non-interactiveRun the command in non-interactive mode.--offset=<value>Start queries from specified index. Use for paginating results. Defaults to 0.
eas browse [PAGE]
Transition from the terminal to the web browser to view and interact with your project on https://expo.dev.
Usage
Argument
[PAGE](build|builds|submit|submissions|update|updates|workflow|workflows|cicd|hosting|deployments|credentials|env|in sights|observe|settings) Project subpage to open. Defaults to the project dashboard.
Flags
-n, --no-browserPrint the URL instead of opening it in a web browser.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
eas build
Start a build.
Usage
Flags
-e, --profile=PROFILE_NAMEName of the build profile from eas.json. Defaults to "production" if defined in eas.json.-m, --message=<value>A short message describing the build.-p, --platform=<option><options: android|ios|all>.-s, --auto-submitSubmit on build complete using the submit profile with the same name as the build profile.--auto-submit-with-profile=PROFILE_NAMESubmit on build complete using the submit profile with provided name.--build-logger-level=<option>The level of logs to output during the build process. Defaults to "info". <options: trace|debug|info|warn|error|fatal>.--clear-cacheClear cache before the build.--freeze-credentialsPrevent the build from updating credentials in non-interactive mode.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--localRun build locally [experimental].--non-interactiveRun the command in non-interactive mode.--output=<value>Output path for local build.--refresh-ad-hoc-provisioning-profileRefresh managed ad-hoc provisioning profiles from App Store Connect before gathering build credentials.--verbose-logsUse verbose logs for the build process.--[no-]waitWait for build(s) to complete.--what-to-test=<value>Specify the "What to Test" information for the build in TestFlight (iOS-only). To be used with theauto-submitflag.
eas build:cancel [BUILD_ID]
Cancel a build.
Usage
Flags
-e, --profile=PROFILE_NAMEFilter builds by build profile if build ID is not provided.-p, --platform=<option>Filter builds by the platform if build ID is not provided <options: android|ios|all>.--non-interactiveRun the command in non-interactive mode.
eas build:configure
Configure the project to support EAS Build.
Usage
Flag
-p, --platform=<option>Platform to configure <options: android|ios|all>.
eas build:delete [BUILD_ID]
Delete a build.
Usage
Flags
-e, --profile=PROFILE_NAMEFilter builds by build profile if build ID is not provided.-p, --platform=<option>Filter builds by the platform if build ID is not provided <options: android|ios|all>.--non-interactiveRun the command in non-interactive mode.
eas build:dev
Run dev client simulator/emulator build with matching fingerprint or create a new one.
Usage
Flags
-e, --profile=PROFILE_NAMEName of the build profile from eas.json. It must be a profile allowing to create emulator/simulator internal distribution dev client builds. The "development-simulator" build profile will be selected by default.-p, --platform=<option><options: ios|android>.--simulator=<value>IOS simulator name or UDID to install and run the development build on. If no value is provided, you will be prompted to select a simulator.--skip-build-if-not-foundSkip build if no successful build with matching fingerprint is found.--skip-bundlerInstall and run the development build without starting the bundler server.
eas build:download
Download a simulator/emulator build by build ID or fingerprint hash.
Usage
Flags
-p, --platform=<option><options: ios|android>.--all-artifactsDownload all available build artifacts (build artifacts archive, Xcode logs, etc.) in addition to the application archive. Without this flag, only the application archive is downloaded and the command errors if it is missing.--build-id=<value>ID of the build to download. Mutually exclusive with--fingerprint,--platform, and--dev-client; the platform is derived from the build itself.--[no-]dev-clientFilter only dev-client builds.--fingerprint=<value>Fingerprint hash of the build to download.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
eas build:inspect
Inspect the state of the project at specific build stages, useful for troubleshooting.
Usage
Flags
-e, --profile=PROFILE_NAMEName of the build profile from eas.json. Defaults to "production" if defined in eas.json.-o, --output=OUTPUT_DIRECTORY(required) Output directory.-p, --platform=<option>(required) <options: android|ios>.-s, --stage=<option>(required) Stage of the build you want to inspect.archiveBuilds the project archive that would be uploaded to EAS when building.pre-buildPrepares the project to be built with Gradle/Xcode. Does not run the native build.post-buildBuilds the native project and leaves the output directory for inspection <options: archive|pre-build|post-build>.
-v, --verbose--forceDelete OUTPUT_DIRECTORY if it already exists.
eas build:list
List all builds for your project.
Usage
Flags
-e, --build-profile=<value>Filter only builds created with the specified build profile.-p, --platform=<option><options: android|ios|all>.--app-build-version=<value>Filter only builds created with the specified app build version.--app-identifier=<value>Filter only builds created with the specified app identifier.--app-version=<value>Filter only builds created with the specified main app version.--channel=<value>--distribution=<option>Filter only builds with the specified distribution type <options: store|internal|simulator>.--fingerprint-hash=<value>Filter only builds with the specified fingerprint hash.--git-commit-hash=<value>Filter only builds created with the specified git commit hash.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--limit=<value>The number of items to fetch each query. Defaults to 10 and is capped at 50.--non-interactiveRun the command in non-interactive mode.--offset=<value>Start queries from specified index. Use for paginating results. Defaults to 0.--runtime-version=<value>Filter only builds created with the specified runtime version.--sdk-version=<value>Filter only builds created with the specified Expo SDK version.--simulatorFilter only iOS simulator builds. Can only be used with--platformflag set to "ios".--status=<option>Filter only builds with the specified status <options: new|in-queue|in-progress|pending-cancel|errored|finished|canceled>.
eas build:resign
Re-sign a build archive.
Usage
Flags
-e, --target-profile=PROFILE_NAMEName of the target build profile from eas.json. Credentials and environment variables from this profile will be used when re-signing. Defaults to "production" if defined in eas.json.-p, --platform=<option><options: android|ios>.--id=<value>ID of the build to re-sign.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--limit=<value>The number of items to fetch each query. Defaults to 50 and is capped at 100.--non-interactiveRun the command in non-interactive mode.--offset=<value>Start queries from specified index. Use for paginating results. Defaults to 0.--source-profile=PROFILE_NAMEName of the source build profile from eas.json. Used to filter builds eligible for re-signing.--[no-]waitWait for build(s) to complete.
eas build:run
Run simulator/emulator builds from eas-cli.
Usage
Flags
-e, --profile=PROFILE_NAMEName of the build profile used to create the build to run. When specified, only builds created with the specified build profile will be queried.-p, --platform=<option><options: android|ios>.--id=<value>ID of the simulator/emulator build to run.--latestRun the latest simulator/emulator build for specified platform.--limit=<value>The number of items to fetch each query. Defaults to 50 and is capped at 100.--offset=<value>Start queries from specified index. Use for paginating results. Defaults to 0.--path=<value>Path to the simulator/emulator build archive or app.--simulator=<value>IOS simulator name or UDID to install and run the build on. If no value is provided, you will be prompted to select a simulator.--url=<value>Simulator/Emulator build archive url.
eas build:submit
Submit app binary to App Store and/or Play Store.
Usage
Flags
-e, --profile=<value>Name of the submit profile from eas.json. Defaults to "production" if defined in eas.json.-g, --groups=<value>...Internal TestFlight testing groups to add the build to (iOS only). Learn more: https://developer.apple.com/help/app-store-connect/test-a-beta-version/add-internal-testers.-p, --platform=<option><options: android|ios|all>.--[no-]auto-testflight-setupSet up an internal TestFlight group for the app (iOS only).--id=<value>ID of the build to submit.--latestSubmit the latest build for specified platform.--non-interactiveRun command in non-interactive mode.--path=<value>Path to the .apk/.aab/.ipa file.--url=<value>App archive url.--verboseAlways print logs from EAS Submit.--verbose-fastlaneEnable verbose logging for the submission process.--[no-]waitWait for submission to complete.--what-to-test=<value>Sets the "What to test" information in TestFlight (iOS only).
Alias
eas build:version:get
Get the latest version from EAS servers.
Usage
Flags
-e, --profile=PROFILE_NAMEName of the build profile from eas.json. Defaults to "production" if defined in eas.json.-p, --platform=<option><options: android|ios|all>.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
eas build:version:set
Update version of an app.
Usage
Flags
-e, --profile=PROFILE_NAMEName of the build profile from eas.json. Defaults to "production" if defined in eas.json.-p, --platform=<option><options: android|ios>.
eas build:version:sync
Update a version in native code with a value stored on EAS servers.
Usage
Flags
-e, --profile=PROFILE_NAMEName of the build profile from eas.json. Defaults to "production" if defined in eas.json.-p, --platform=<option><options: android|ios|all>.
eas build:view [BUILD_ID]
View a build for your project.
Usage
Flag
--jsonEnable JSON output, non-JSON messages will be printed tostderr.
eas channel:create [NAME]
Create a channel.
Usage
Argument
[NAME]Name of the channel to create.
Flags
--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
eas channel:delete [NAME]
Delete a channel.
Usage
Argument
[NAME]Name of the channel to delete.
Flags
--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
eas channel:edit [NAME]
Point a channel at a new branch.
Usage
Argument
[NAME]Name of the channel to edit.
Flags
--branch=<value>Name of the branch to point to.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
eas channel:insights
Display adoption, crash, and unique-user insights for a channel + runtime version.
Usage
Flags
--channel=<value>(required) Name of the channel.--days=<value>Show insights from the last N days (default 7, mutually exclusive with--start/--end).--end=<value>End of insights time range (ISO date).--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.--runtime-version=<value>(required) Runtime version to query insights for.--start=<value>Start of insights time range (ISO date).
eas channel:list
List all channels.
Usage
Flags
--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--limit=<value>The number of items to fetch each query. Defaults to 10 and is capped at 25.--non-interactiveRun the command in non-interactive mode.--offset=<value>Start queries from specified index. Use for paginating results. Defaults to 0.
eas channel:pause [NAME]
Pause a channel to stop it from sending updates.
Usage
Argument
[NAME]Name of the channel to edit.
Flags
--branch=<value>Name of the branch to point to.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
eas channel:protect [NAME]
Protect a channel so only account admins can publish to it.
Usage
Argument
[NAME]Name of the channel to protect.
Flags
--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
eas channel:resume [NAME]
Resume a channel to start sending updates.
Usage
Argument
[NAME]Name of the channel to edit.
Flags
--branch=<value>Name of the branch to point to.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
eas channel:rollout [CHANNEL]
Roll a new branch out on a channel incrementally.
Usage
Argument
[CHANNEL]Channel on which the rollout should be done.
Flags
--action=<option>Rollout action to perform <options: create|edit|end|view>.--branch=<value>Branch to roll out. Use with--action=create.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.--outcome=<option>End outcome of rollout. Use with--action=end<options: republish-and-revert|revert>.--percent=<value>Percent of users to send to the new branch. Use with--action=editor--action=create.--private-key-path=<value>File containing the PEM-encoded private key corresponding to the certificate in expo-updates' configuration. Defaults to a file named "private-key.pem" in the certificate's directory. Only relevant if you are using code signing: https://docs.expo.dev/eas-update/code-signing/.--runtime-version=<value>Runtime version to target. Use with--action=create.
eas channel:unprotect [NAME]
Remove a channel's admin-only publishing restriction.
Usage
Argument
[NAME]Name of the channel to unprotect.
Flags
--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
eas channel:view [NAME]
View a channel.
Usage
Argument
[NAME]Name of the channel to view.
Flags
--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--limit=<value>The number of items to fetch each query. Defaults to 50 and is capped at 100.--non-interactiveRun the command in non-interactive mode.--offset=<value>Start queries from specified index. Use for paginating results. Defaults to 0.
eas config
Display project configuration (app.json + eas.json).
Usage
Flags
-e, --profile=PROFILE_NAMEName of the build profile from eas.json. Defaults to "production" if defined in eas.json.-p, --platform=<option><options: android|ios>.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
eas credentials
Manage credentials.
Usage
Flag
-p, --platform=<option><options: android|ios>.
eas credentials:configure-build
Set up credentials for building your project.
Usage
Flags
-e, --profile=PROFILE_NAMEThe name of the build profile in eas.json.-p, --platform=<option><options: android|ios>.
eas deploy [options]
Deploy your Expo Router web build and API Routes.
Usage
Flags
--alias=nameCustom alias to assign to the new deployment.--dev-domain=nameCustom preview URL subdomain to assign to the project on its first deployment, for example, "my-app" for my-app.expo.app. Required with--non-interactiveif you want to customize the preview URL.--dry-runOutputs a tarball of the new deployment instead of uploading it.--environment=<value>Environment variable's environment, for example, 'production', 'preview', 'development'.--export-dir=dir[default: dist] Directory where the Expo project was exported.--id=xyz123Custom unique identifier for the new deployment.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.--prodCreate a new production deployment.--[no-]source-mapsInclude source maps in the deployment.
Alias
eas deploy:alias
Assign deployment aliases.
Usage
Flags
--alias=nameCustom alias to assign to the existing deployment.--id=xyz123Unique identifier of an existing deployment.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.--prodPromote an existing deployment to production.
Aliases
eas deploy:alias:delete [ALIAS_NAME]
Delete deployment aliases.
Usage
Flags
--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
Alias
eas deploy:delete [DEPLOYMENT_ID]
Delete a deployment.
Usage
Flags
--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
Alias
eas deploy:promote
Assign deployment aliases.
Usage
Flags
--alias=nameCustom alias to assign to the existing deployment.--id=xyz123Unique identifier of an existing deployment.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.--prodPromote an existing deployment to production.
Aliases
eas device:create
Register new Apple Devices to use for internal distribution.
Usage
eas device:delete
Remove a registered device from your account.
Usage
Flags
--apple-team-id=<value>The Apple team ID on which to find the device.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.--udid=<value>The Apple device ID to disable.
eas device:list
List all registered devices for your account.
Usage
Flags
--apple-team-id=<value>--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--limit=<value>The number of items to fetch each query. Defaults to 50 and is capped at 100.--non-interactiveRun the command in non-interactive mode.--offset=<value>Start queries from specified index. Use for paginating results. Defaults to 0.
eas device:rename
Rename a registered device.
Usage
Flags
--apple-team-id=<value>The Apple team ID on which to find the device.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--name=<value>The new name for the device.--non-interactiveRun the command in non-interactive mode.--udid=<value>The Apple device ID to rename.
eas device:view [UDID]
View a device for your project.
Usage
eas diagnostics
Display environment info.
Usage
eas env:delete [ENVIRONMENT]
Delete an environment variable for the current project or account.
Usage
Argument
[ENVIRONMENT]Current environment of the variable to delete. Default environments are 'production', 'preview', and 'development'.
Flags
--non-interactiveRun the command in non-interactive mode.--scope=<option>[default: project] Scope for the variable <options: project|account>.--variable-environment=<value>Current environment of the variable to delete.--variable-name=<value>Name of the variable to delete.
eas env:exec ENVIRONMENT BASH_COMMAND
Execute a command with environment variables from the selected environment.
Usage
Arguments
ENVIRONMENTEnvironment to execute the command in. Default environments are 'production', 'preview', and 'development'.BASH_COMMANDBash command to execute with the environment variables from the environment.
Flag
--non-interactiveRun the command in non-interactive mode.
eas env:get [ENVIRONMENT]
View an environment variable for the current project or account.
Usage
Argument
[ENVIRONMENT]Current environment of the variable. Default environments are 'production', 'preview', and 'development'.
Flags
--format=<option>[default: short] Output format <options: long|short>.--non-interactiveRun the command in non-interactive mode.--scope=<option>[default: project] Scope for the variable <options: project|account>.--variable-environment=<value>Current environment of the variable.--variable-name=<value>Name of the variable.
eas env:list [ENVIRONMENT]
List environment variables for the current project or account.
Usage
Argument
[ENVIRONMENT]Environment to list the variables from. Default environments are 'production', 'preview', and 'development'.
Flags
--environment=<value>...Environment variable's environment, for example, 'production', 'preview', 'development'.--format=<option>[default: short] Output format <options: long|short>.--include-file-contentDisplay files content in the output.--include-sensitiveDisplay sensitive values in the output.--scope=<option>[default: project] Scope for the variable <options: project|account>.
eas env:pull [ENVIRONMENT]
Pull environment variables for the selected environment to .env file.
Usage
Argument
[ENVIRONMENT]Environment to pull variables from. Default environments are 'production', 'preview', and 'development'.
Flags
--environment=<value>Environment variable's environment, for example, 'production', 'preview', 'development'.--non-interactiveRun the command in non-interactive mode.--path=<value>[default: .env.local] Path to the result.envfile.
eas env:push [ENVIRONMENT]
Push environment variables from .env file to the selected environment.
Usage
Argument
[ENVIRONMENT]Environment to push variables to. Default environments are 'production', 'preview', and 'development'.
Flags
--environment=<value>...Environment variable's environment, for example, 'production', 'preview', 'development'.--forceSkip confirmation and automatically override existing variables.--path=<value>[default: .env.local] Path to the input.envfile.
eas env:set [ENVIRONMENT]
Set (create or update) an environment variable on the current project or account.
Usage
Argument
[ENVIRONMENT]Environment to set the variable in. Default environments are 'production', 'preview', and 'development'.
Flags
--environment=<value>...Environment variable's environment, for example, 'production', 'preview', 'development'.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--name=<value>Name of the variable.--non-interactiveRun the command in non-interactive mode.--scope=<option>[default: project] Scope for the variable <options: project|account>.--type=<option>The type of variable <options: string|file>.--value=<value>Text value of the variable.--visibility=<option>Visibility of the variable <options: plaintext|sensitive|secret>.
eas fingerprint:compare [HASH1] [HASH2]
Compare fingerprints of the current project, builds, and updates.
Usage
Arguments
[HASH1...]If provided alone, HASH1 is compared against the current project's fingerprint.[HASH2...]If two hashes are provided, HASH1 is compared against HASH2.
Flags
--build-id=<value>...Compare the fingerprint with the build with the specified ID.--environment=<value>If generating a fingerprint from the local directory, use the specified environment.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.--openOpen the fingerprint comparison in the browser.--update-id=<value>...Compare the fingerprint with the update with the specified ID.
Examples
eas fingerprint:generate
Generate fingerprints from the current project.
Usage
Flags
-e, --build-profile=<value>Name of the build profile from eas.json.-p, --platform=<option><options: android|ios>.--environment=<value>Environment variable's environment, for example, 'production', 'preview', 'development'.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
Examples
eas help [COMMAND]
Display help for eas.
Usage
Argument
[COMMAND...]Command to show help for.
Flag
-n, --nested-commandsInclude all nested commands in the output.
eas init
Create or link an EAS project.
Usage
Flags
--account=<value>Name of the account that will own the project.--forceWhether to create a new project/link an existing project without additional prompts or overwrite any existing project ID when running with--idflag.--[no-]iconSet the icon shown on the EAS dashboard from the app config, when the project does not have one yet.--id=<value>ID of the EAS project to link.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
Alias
Examples
eas integrations:asc:connect
Connect a project to an App Store Connect app.
Usage
Flags
--api-key-id=<value>Apple App Store Connect API Key ID.--asc-app-id=<value>App Store Connect app identifier.--bundle-id=<value>Filter discovered apps by bundle identifier.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
eas integrations:asc:disconnect
Disconnect the current project from its App Store Connect app.
Usage
Flags
--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.--yesSkip confirmation prompt.
eas integrations:asc:status
Show the App Store Connect app link status for the current project.
Usage
Flags
--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
eas integrations:convex:connect
Connect Convex to your Expo project.
Usage
Flags
--non-interactiveRun the command in non-interactive mode.--project-name=<value>Name for the Convex project (defaults to app slug).--region=<option>Convex deployment region (for example, aws-us-east-1, aws-eu-west-1) <options: aws-us-east-1|aws-eu-west-1>.--team-name=<value>Name for the new Convex team (defaults to EAS account name).
eas integrations:convex:dashboard
Open the Convex dashboard for the linked Convex project.
Usage
eas integrations:convex:project
Display the Convex project linked to the current Expo app.
Usage
eas integrations:convex:project:delete
Remove the Convex project link for the current Expo app from EAS servers.
Usage
Flags
-y, --yesSkip confirmation prompt.--non-interactiveRun the command in non-interactive mode.
eas integrations:convex:team
Display Convex teams linked to the current Expo app's owner account.
Usage
eas integrations:convex:team:delete [CONVEX_TEAM]
Remove a Convex team link from the current Expo app owner account's EAS servers.
Usage
Argument
[CONVEX_TEAM]Slug of the Convex team to remove.
Flags
-y, --yesSkip confirmation prompt.--non-interactiveRun the command in non-interactive mode.
eas integrations:convex:team:invite [CONVEX_TEAM]
Send a Convex team invitation to your verified email address.
Usage
Argument
[CONVEX_TEAM]Slug of the Convex team to invite yourself to.
Flag
--non-interactiveRun the command in non-interactive mode.
eas integrations:posthog:connect
Connect PostHog to your Expo project.
Usage
Flags
--[no-]error-trackingSet up PostHog error tracking / source maps (requires a personal API key).--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.--overwriteOverwrite existing PostHog environment variables without prompting.--posthog-cli-api-key=<value>PostHog personal API key for error-tracking source-map uploads (enables error tracking non-interactively).--region=<option>PostHog region <options: US|EU>.--[no-]session-replaySet up PostHog session replay (default: yes).
eas integrations:posthog:dashboard
Open the PostHog dashboard for the linked PostHog project.
Usage
Flags
--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.--show-linkPrint the signed-in dashboard URL in addition to opening it. The URL contains a single-use login token.
eas integrations:posthog:disconnect
Remove the PostHog project link for the current Expo app from EAS servers.
Usage
Flags
-y, --yesSkip confirmation prompt.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
eas integrations:supabase:connect
Authorize Supabase, link or provision a project, install the SDK, and write EXPO_PUBLIC_SUPABASE_URL / EXPO_PUBLIC_SUPABASE_PUBLISHABLE_KEY.
Usage
Flags
--environment=<value>EAS environments for a separate hosted project (for example, preview). Requires prior primary connect; writes URL/key only there. Incompatible with--linkand--reauth.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--link=<value>Existing project URL or Reference ID (Project Settings → General). Sets the app primary instead of provisioning. Incompatible with--environment.--non-interactiveRun the command in non-interactive mode.--organization=<value>Supabase org slug for a new primary project. Ignored with--link; incompatible with--environment.--overwriteReplace existing EXPO_PUBLIC_SUPABASE_* in .env.local and EAS without prompting.--reauthDisconnect the existing Supabase OAuth connection, then re-authorize in the browser. Removes the EAS connection and primary project link (Supabase projects are kept). Then prompts to link an existing project (default) or provision a new one; pass--linkto skip the prompt. Interactive only; incompatible with--environment.--region=<value>Region when provisioning (americas | emea | apac, or for example, us-east-1). Required with--non-interactiveif provisioning. Ignored with--linkor if already linked.
Examples
eas integrations:supabase:dashboard
Open this app's primary Supabase project in the dashboard (or print the URL with --non-interactive).
Usage
Flags
--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
Examples
eas integrations:supabase:disconnect
Remove this app's Supabase project link from EAS (keeps the Supabase project; does not delete EXPO_PUBLIC_SUPABASE_* env vars).
Usage
Flags
-y, --yesSkip confirmation prompt.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
Examples
eas login
Log in with your Expo account.
Usage
Flags
-b, --[no-]browserLog in with your browser (default; use--no-browserfor CLI-based login).-s, --ssoLog in with SSO.
Alias
eas logout
Log out.
Usage
Alias
eas metadata:lint
Validate the local store configuration.
Usage
Flags
--jsonEnable JSON output, non-JSON messages will be printed tostderr.--profile=<value>Name of the submit profile from eas.json. Defaults to "production" if defined in eas.json.
eas metadata:pull
Generate the local store configuration from the app stores.
Usage
Flags
-e, --profile=<value>Name of the submit profile from eas.json. Defaults to "production" if defined in eas.json.--non-interactiveRun the command in non-interactive mode.
eas metadata:push
Sync the local store configuration to the app stores.
Usage
Flags
-e, --profile=<value>Name of the submit profile from eas.json. Defaults to "production" if defined in eas.json.--non-interactiveRun the command in non-interactive mode.
eas new [PATH]
Create a new project configured with Expo Application Services (EAS).
Usage
Argument
[PATH]Path to create the project (defaults to current directory).
Flags
-p, --package-manager=<option>[default: npm] Package manager to use for installing dependencies <options: bun|npm|pnpm|yarn>.--sdk-version=<value>Expo SDK version to use for the new project (for example, 57, or "latest").
Alias
eas observe:errors
Display error and exception issue groups (grouped by fingerprint) for the app.
Usage
Flags
--after=<value>Cursor for pagination. Use the endCursor from a previous query to fetch the next page.--app-version=<value>Filter by app version.--build-number=<value>Filter by app build number.--days=<value>Show results from the last N days (mutually exclusive with--start/--end).--end=<value>End of time range (ISO date).--environment=<value>Filter by environment (for example, production, development).--fingerprint=<value>Show individual occurrences (with stack traces) for this error group fingerprint instead of the grouped summary.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--limit=<value>The number of items to fetch each query. Defaults to 10 and is capped at 100.--non-interactiveRun the command in non-interactive mode.--platform=<option>Filter by platform ("apple" covers iOS, iPadOS, tvOS, and macOS) <options: android|ios|ipados|macos|tvos|apple>.--project-id=<value>EAS project ID (defaults to the project ID of the current directory).--severity=<option>Filter by severity (ignored when--fingerprintis set) <options: fatal|error>.--start=<value>Start of time range (ISO date).--update-id=<value>Filter by EAS update ID.
eas observe:event ID
Display a single Observe event (metric, log, or error) by its ID. IDs are included in event data when the --json flag is passed to eas observe:session, eas observe:metrics, or eas observe:events.
Usage
Argument
IDID of the event to display.
Flags
--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.--project-id=<value>EAS project ID (defaults to the project ID of the current directory).
eas observe:events [EVENTNAME]
Display individual events emitted by the app via logEvent, filtered by the event name in the argument. With no arguments, a list of the available event names and associated event counts is returned.
Usage
Argument
[EVENTNAME]Event name to filter by.
Flags
--after=<value>Cursor for pagination. Use the endCursor from a previous query to fetch the next page.--all-eventsWhen no event name argument is provided, list all events across all event names instead of a summary of event names + counts.--app-version=<value>Filter by app version.--build-number=<value>Filter by app build number.--days=<value>Show results from the last N days (mutually exclusive with--start/--end).--end=<value>End of time range (ISO date).--environment=<value>Filter by environment (for example, production, development).--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--limit=<value>The number of items to fetch each query. Defaults to 10 and is capped at 100.--non-interactiveRun the command in non-interactive mode.--platform=<option>Filter by platform ("apple" covers iOS, iPadOS, tvOS, and macOS) <options: android|ios|ipados|macos|tvos|apple>.--project-id=<value>EAS project ID (defaults to the project ID of the current directory).--session-id=<value>Filter by session ID. When no event name is given, lists the events in the session instead of the event-name summary.--start=<value>Start of time range (ISO date).--update-id=<value>Filter by EAS update ID.
eas observe:metrics [METRIC]
Display individual performance metric samples ordered by value.
Usage
Argument
[METRIC](nav_cold_ttr|nav_warm_ttr|nav_tti|tti|ttr|cold_launch|warm_launch|bundle_load|update_download) Metric to query (for example, tti, cold_launch, nav_tti).
Flags
--after=<value>Cursor for pagination. Use the endCursor from a previous query to fetch the next page.--app-version=<value>Filter by app version.--build-number=<value>Filter by app build number.--days=<value>Show results from the last N days (mutually exclusive with--start/--end).--end=<value>End of time range (ISO date).--environment=<value>Filter by environment (for example, production, development).--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--limit=<value>The number of items to fetch each query. Defaults to 10 and is capped at 100.--non-interactiveRun the command in non-interactive mode.--platform=<option>Filter by platform ("apple" covers iOS, iPadOS, tvOS, and macOS) <options: android|ios|ipados|macos|tvos|apple>.--project-id=<value>EAS project ID (defaults to the project ID of the current directory).--sort=<option>[default: oldest] Sort order for events <options: slowest|fastest|newest|oldest>.--start=<value>Start of time range (ISO date).--update-id=<value>Filter by EAS update ID.
eas observe:metrics-summary
Display aggregated performance metric statistics grouped by app version.
Usage
Flags
--days=<value>Show results from the last N days (mutually exclusive with--start/--end).--end=<value>End of time range (ISO date).--environment=<value>Filter by environment (for example, production, development).--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--metric=<option>...Metric name to display (can be specified multiple times). <options: nav_cold_ttr|nav_warm_ttr|nav_tti|tti|ttr|cold_launch|warm_launch|bundle_load|update_download>.--non-interactiveRun the command in non-interactive mode.--platform=<option>Filter by platform ("apple" covers iOS, iPadOS, tvOS, and macOS) <options: android|ios|ipados|macos|tvos|apple>.--project-id=<value>EAS project ID (defaults to the project ID of the current directory).--start=<value>Start of time range (ISO date).--stat=<option>...Statistic to display per metric (can be specified multiple times) <options: min|median|max|average|p80|p90|p99|eventCount>.
eas observe:routes
Display app navigation route metrics (Cold TTR, Warm TTR, TTI) grouped by route name.
Usage
Flags
--after=<value>Cursor for pagination. Use the endCursor from a previous query to fetch the next page.--app-version=<value>Filter by app version.--build-number=<value>Filter by app build number.--days=<value>Show results from the last N days (mutually exclusive with--start/--end).--end=<value>End of time range (ISO date).--environment=<value>Filter by environment (for example, production, development).--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--limit=<value>The number of items to fetch each query. Defaults to 50 and is capped at 200.--metric=<option>...Navigation metric to display (can be specified multiple times). Defaults to all three. <options: nav_cold_ttr|nav_warm_ttr|nav_tti>.--non-interactiveRun the command in non-interactive mode.--platform=<option>Filter by platform ("apple" covers iOS, iPadOS, tvOS, and macOS) <options: android|ios|ipados|macos|tvos|apple>.--project-id=<value>EAS project ID (defaults to the project ID of the current directory).--route-name=<value>...Filter by route name (can be specified multiple times to include several routes).--start=<value>Start of time range (ISO date).--stat=<option>...Statistic to display per metric (can be specified multiple times) <options: median|med|p90|count|event_count|eventCount>.--update-id=<value>Filter by EAS update ID.
eas observe:session [SESSIONID]
Display the timeline of metric and log events for a specific session.
Usage
Argument
[SESSIONID]Session ID to inspect (omit in interactive mode to pick one from a list).
Flags
--days=<value>Show results from the last N days (mutually exclusive with--start/--end).--end=<value>End of time range (ISO date).--environment=<value>Filter by environment (for example, production, development).--event-name=<value>Metric or log event name to pick candidate sessions by (for example, tti, cold_launch, login_pressed). If omitted in interactive mode, you will be prompted.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.--project-id=<value>EAS project ID (defaults to the project ID of the current directory).--sort=<option>Sort order for candidate events when picking a session (if omitted in interactive mode, you will be prompted) <options: slowest|fastest|newest|oldest>.--start=<value>Start of time range (ISO date).
eas observe:versions
Display app versions with build and update details.
Usage
Flags
--days=<value>Show results from the last N days (mutually exclusive with--start/--end).--end=<value>End of time range (ISO date).--environment=<value>Filter by environment (for example, production, development).--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.--platform=<option>Filter by platform ("apple" covers iOS, iPadOS, tvOS, and macOS) <options: android|ios|ipados|macos|tvos|apple>.--project-id=<value>EAS project ID (defaults to the project ID of the current directory).--start=<value>Start of time range (ISO date).
eas project:delete [NAME]
Delete a project.
Usage
Argument
[NAME]Full name (@account/slug) or ID of the project to delete. Defaults to the project in the current directory.
Flags
--dangerously-confirm-deletion=<value>The project's full name (@account/slug), to confirm deletion. Required in non-interactive mode.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
eas project:icon:set PATH
Set the project icon displayed on the EAS dashboard.
Usage
Argument
PATHPath to the icon image (PNG or JPEG, at most 10 MB). Non-square images are center-cropped to a square.
Flag
--non-interactiveRun the command in non-interactive mode.
eas project:info
Information about the current project.
Usage
eas project:init
Create or link an EAS project.
Usage
Flags
--account=<value>Name of the account that will own the project.--forceWhether to create a new project/link an existing project without additional prompts or overwrite any existing project ID when running with--idflag.--[no-]iconSet the icon shown on the EAS dashboard from the app config, when the project does not have one yet.--id=<value>ID of the EAS project to link.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
Alias
Examples
eas project:new [PATH]
Create a new project configured with Expo Application Services (EAS).
Usage
Argument
[PATH]Path to create the project (defaults to current directory).
Flags
-p, --package-manager=<option>[default: npm] Package manager to use for installing dependencies <options: bun|npm|pnpm|yarn>.--sdk-version=<value>Expo SDK version to use for the new project (for example, 57, or "latest").
Alias
eas project:status
Show a snapshot of the project: recent builds, dev builds, workflow runs, submissions, and updates.
Usage
Flags
--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--limit=<value>The number of items to show in each section. Defaults to 3 and is capped at 25.--non-interactiveRun the command in non-interactive mode.
Alias
Examples
eas sim
[EXPERIMENTAL] start a remote simulator session on EAS and get instructions to connect to it.
Usage
Flags
-p, --platform=<option>Device platform <options: android|ios>.--application-archive-url=<value>Application archive URL to download, install, and launch before the simulator session is ready.--build-id=<value>EAS Build to install and launch before the simulator session is ready.--device=<value>Virtual device to start for the session. On iOS, a Simulator device name or UDID (for example, "iPhone 16 Pro"). On Android, an AVD hardware profile id (for example, "pixel_7"). Defaults to a device chosen by the runner.--egress=<option>With "local", the simulator system proxy points at this machine: HTTP(S) and WebSocket requests that honor it (WebKit, URLSession) and clients that read proxy environment variables (gRPC, libcurl) exit from this machine and fail while the egress client is disconnected. Connections that ignore both are refused inside the simulator and listed, with the library that tried, in the Logs section of the session page on expo.dev. The egress client must keep running for the life of the session. Only supported with--platformios. <options: local>.--egress-allow=<value>...Destination on this machine or its network that the simulator may reach through local egress, as an exact host:port (for example localhost:3000). Repeat for multiple destinations. A localhost or 127.0.0.1 entry also forwards that port from the simulator host to this machine (like adb reverse), so dev server URLs that use 127.0.0.1 work. Requires--egresslocal.--expo-goInstall and launch Expo Go matching the current project's Expo SDK before the simulator session is ready.--[no-]force[default: true] Create a new simulator session even when an existing simulator session is present in the environment.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--launch-arg=<value>...Argument passed to the installed application when it launches. Repeat for multiple arguments.--max-duration-minutes=<value>Maximum duration of the simulator session in minutes before it is automatically stopped. Only customizable on paid plans. Defaults to a value derived from the job run priority when omitted.--max-idle-time-minutes=<value>Stop the simulator session automatically after this many minutes without session activity. When omitted, the session has no idle timeout and runs until its maximum duration.--name=<value>Human-readable name for the simulator session, shown in eas simulator:list and on expo.dev. Defaults to unnamed.--non-interactiveRun the command in non-interactive mode.--open-url=<value>Expo or development-client URL to open in the installed application after it launches.--out-config-type=<option>[default: dotenv] How to output simulator connection configuration. Use "env" to print shell exports, or "dotenv" to write .env.eas-simulator. <options: env|dotenv>.--package-version=<value>Version of the package backing the simulator session (for example, "0.1.3-alpha.3"). Defaults to "latest" when omitted.--sdk-version=<value>Expo SDK version used to select Expo Go when--expo-gois passed. Defaults to the current project SDK.--tag=<value>...Label used to group simulator sessions, for example one per app variant. Repeat for multiple tags. Stored lowercased.--type=<option>[default: agent-device] Type of simulator session to create. All session types include a web preview. agent-device, appium, and argent also include an automation interface; web-preview-only includes no automation interface. <options: agent-device|appium|argent|web-preview-only|web-preview-only>.
Aliases
eas sim:availability
[EXPERIMENTAL] check whether EAS Simulator is enabled for the current project account.
Usage
Flags
--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
Alias
eas sim:egress
[EXPERIMENTAL] run the local egress client for a simulator session to route proxied HTTP(S) requests through this machine.
Usage
Flag
--config-type=<option>[default: dotenv] Read session credentials from .env.eas-simulator (dotenv) or the current shell environment (env). <options: dotenv|env>.
Alias
eas sim:events
[EXPERIMENTAL] show activity events from a remote simulator session.
Usage
Flags
-f, --followKeep watching for new events until the session ends.--id=<value>Simulator session ID. Defaults to .env.eas-simulator.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
Alias
eas sim:exec
[EXPERIMENTAL] execute a simulator command with .env.eas-simulator environment loaded.
Usage
Alias
eas sim:get
[EXPERIMENTAL] get info about a remote simulator session on EAS by its simulator session ID.
Usage
Flags
--id=<value>Simulator session ID. Defaults to .env.eas-simulator.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
Alias
eas sim:list
[EXPERIMENTAL] list remote simulator sessions for the current project.
Usage
Flags
--after=<value>Cursor for pagination. Use the endCursor from a previous query to fetch the next page.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--limit=<value>The number of items to fetch each query. Defaults to 10 and is capped at 100.--name=<value>Filter by session name (case-insensitive prefix match).--non-interactiveRun the command in non-interactive mode.--platform=<option>...Filter by device platform (repeatable) <options: android|ios>.--status=<option>...Filter by session status (repeatable) <options: new|in-progress|stopped|errored>.--tag=<value>...Filter by tag (repeatable). A session must carry every tag listed.--type=<option>...Filter by session type (repeatable). All session types include a web preview. agent-device, appium, and argent also include an automation interface; web-preview-only includes no automation interface. <options: agent-device|appium|argent|web-preview-only|web-preview-only>.
Alias
eas sim:start
[EXPERIMENTAL] start a remote simulator session on EAS and get instructions to connect to it.
Usage
Flags
-p, --platform=<option>Device platform <options: android|ios>.--application-archive-url=<value>Application archive URL to download, install, and launch before the simulator session is ready.--build-id=<value>EAS Build to install and launch before the simulator session is ready.--device=<value>Virtual device to start for the session. On iOS, a Simulator device name or UDID (for example, "iPhone 16 Pro"). On Android, an AVD hardware profile id (for example, "pixel_7"). Defaults to a device chosen by the runner.--egress=<option>With "local", the simulator system proxy points at this machine: HTTP(S) and WebSocket requests that honor it (WebKit, URLSession) and clients that read proxy environment variables (gRPC, libcurl) exit from this machine and fail while the egress client is disconnected. Connections that ignore both are refused inside the simulator and listed, with the library that tried, in the Logs section of the session page on expo.dev. The egress client must keep running for the life of the session. Only supported with--platformios. <options: local>.--egress-allow=<value>...Destination on this machine or its network that the simulator may reach through local egress, as an exact host:port (for example localhost:3000). Repeat for multiple destinations. A localhost or 127.0.0.1 entry also forwards that port from the simulator host to this machine (like adb reverse), so dev server URLs that use 127.0.0.1 work. Requires--egresslocal.--expo-goInstall and launch Expo Go matching the current project's Expo SDK before the simulator session is ready.--[no-]force[default: true] Create a new simulator session even when an existing simulator session is present in the environment.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--launch-arg=<value>...Argument passed to the installed application when it launches. Repeat for multiple arguments.--max-duration-minutes=<value>Maximum duration of the simulator session in minutes before it is automatically stopped. Only customizable on paid plans. Defaults to a value derived from the job run priority when omitted.--max-idle-time-minutes=<value>Stop the simulator session automatically after this many minutes without session activity. When omitted, the session has no idle timeout and runs until its maximum duration.--name=<value>Human-readable name for the simulator session, shown in eas simulator:list and on expo.dev. Defaults to unnamed.--non-interactiveRun the command in non-interactive mode.--open-url=<value>Expo or development-client URL to open in the installed application after it launches.--out-config-type=<option>[default: dotenv] How to output simulator connection configuration. Use "env" to print shell exports, or "dotenv" to write .env.eas-simulator. <options: env|dotenv>.--package-version=<value>Version of the package backing the simulator session (for example, "0.1.3-alpha.3"). Defaults to "latest" when omitted.--sdk-version=<value>Expo SDK version used to select Expo Go when--expo-gois passed. Defaults to the current project SDK.--tag=<value>...Label used to group simulator sessions, for example one per app variant. Repeat for multiple tags. Stored lowercased.--type=<option>[default: agent-device] Type of simulator session to create. All session types include a web preview. agent-device, appium, and argent also include an automation interface; web-preview-only includes no automation interface. <options: agent-device|appium|argent|web-preview-only|web-preview-only>.
Aliases
eas sim:stop
[EXPERIMENTAL] stop a remote simulator session on EAS by its simulator session ID.
Usage
Flags
--id=<value>Simulator session ID. Defaults to .env.eas-simulator.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
Alias
eas simulator:start
[EXPERIMENTAL] start a remote simulator session on EAS and get instructions to connect to it.
Usage
Flags
-p, --platform=<option>Device platform <options: android|ios>.--application-archive-url=<value>Application archive URL to download, install, and launch before the simulator session is ready.--build-id=<value>EAS Build to install and launch before the simulator session is ready.--device=<value>Virtual device to start for the session. On iOS, a Simulator device name or UDID (for example, "iPhone 16 Pro"). On Android, an AVD hardware profile id (for example, "pixel_7"). Defaults to a device chosen by the runner.--egress=<option>With "local", the simulator system proxy points at this machine: HTTP(S) and WebSocket requests that honor it (WebKit, URLSession) and clients that read proxy environment variables (gRPC, libcurl) exit from this machine and fail while the egress client is disconnected. Connections that ignore both are refused inside the simulator and listed, with the library that tried, in the Logs section of the session page on expo.dev. The egress client must keep running for the life of the session. Only supported with--platformios. <options: local>.--egress-allow=<value>...Destination on this machine or its network that the simulator may reach through local egress, as an exact host:port (for example localhost:3000). Repeat for multiple destinations. A localhost or 127.0.0.1 entry also forwards that port from the simulator host to this machine (like adb reverse), so dev server URLs that use 127.0.0.1 work. Requires--egresslocal.--expo-goInstall and launch Expo Go matching the current project's Expo SDK before the simulator session is ready.--[no-]force[default: true] Create a new simulator session even when an existing simulator session is present in the environment.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--launch-arg=<value>...Argument passed to the installed application when it launches. Repeat for multiple arguments.--max-duration-minutes=<value>Maximum duration of the simulator session in minutes before it is automatically stopped. Only customizable on paid plans. Defaults to a value derived from the job run priority when omitted.--max-idle-time-minutes=<value>Stop the simulator session automatically after this many minutes without session activity. When omitted, the session has no idle timeout and runs until its maximum duration.--name=<value>Human-readable name for the simulator session, shown in eas simulator:list and on expo.dev. Defaults to unnamed.--non-interactiveRun the command in non-interactive mode.--open-url=<value>Expo or development-client URL to open in the installed application after it launches.--out-config-type=<option>[default: dotenv] How to output simulator connection configuration. Use "env" to print shell exports, or "dotenv" to write .env.eas-simulator. <options: env|dotenv>.--package-version=<value>Version of the package backing the simulator session (for example, "0.1.3-alpha.3"). Defaults to "latest" when omitted.--sdk-version=<value>Expo SDK version used to select Expo Go when--expo-gois passed. Defaults to the current project SDK.--tag=<value>...Label used to group simulator sessions, for example one per app variant. Repeat for multiple tags. Stored lowercased.--type=<option>[default: agent-device] Type of simulator session to create. All session types include a web preview. agent-device, appium, and argent also include an automation interface; web-preview-only includes no automation interface. <options: agent-device|appium|argent|web-preview-only|web-preview-only>.
Aliases
eas status
Show a snapshot of the project: recent builds, dev builds, workflow runs, submissions, and updates.
Usage
Flags
--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--limit=<value>The number of items to show in each section. Defaults to 3 and is capped at 25.--non-interactiveRun the command in non-interactive mode.
Alias
Examples
eas submit
Submit app binary to App Store and/or Play Store.
Usage
Flags
-e, --profile=<value>Name of the submit profile from eas.json. Defaults to "production" if defined in eas.json.-g, --groups=<value>...Internal TestFlight testing groups to add the build to (iOS only). Learn more: https://developer.apple.com/help/app-store-connect/test-a-beta-version/add-internal-testers.-p, --platform=<option><options: android|ios|all>.--[no-]auto-testflight-setupSet up an internal TestFlight group for the app (iOS only).--id=<value>ID of the build to submit.--latestSubmit the latest build for specified platform.--non-interactiveRun command in non-interactive mode.--path=<value>Path to the .apk/.aab/.ipa file.--url=<value>App archive url.--verboseAlways print logs from EAS Submit.--verbose-fastlaneEnable verbose logging for the submission process.--[no-]waitWait for submission to complete.--what-to-test=<value>Sets the "What to test" information in TestFlight (iOS only).
Alias
eas submit:cancel [SUBMISSION_ID]
Cancel a submission.
Usage
Flags
-p, --platform=<option>Filter submissions by the platform if submission ID is not provided <options: android|ios|all>.--non-interactiveRun the command in non-interactive mode.
eas submit:list
List submissions for your project.
Usage
Flags
-p, --platform=<option><options: android|ios|all>.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--limit=<value>The number of items to fetch each query. Defaults to 10 and is capped at 50.--non-interactiveRun the command in non-interactive mode.--offset=<value>Start queries from specified index. Use for paginating results. Defaults to 0.--status=<option>Filter only submissions with the specified status <options: awaiting-build|in-queue|in-progress|finished|errored|canceled>.
eas submit:retry [SUBMISSION_ID]
Retry a failed submission.
Usage
Flags
-p, --platform=<option>Filter submissions by the platform if submission ID is not provided <options: android|ios|all>.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
eas submit:status
Show the status of your app on the App Store: the live version and TestFlight builds.
Usage
Flags
-e, --profile=<value>Name of the submit profile from eas.json used to resolve the App Store Connect API key. Defaults to "production".-p, --platform=<option><options: android|ios|all>.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
Examples
eas submit:view [SUBMISSION_ID]
View a submission for your project.
Usage
Flags
-p, --platform=<option>Show the most recent submission for the platform when submission ID is not provided <options: android|ios|all>.--jsonEnable JSON output, non-JSON messages will be printed tostderr.
eas testflight:crashes [ID]
Display crashes reported by TestFlight testers, or the full crash log of a single crash.
Usage
Argument
[ID]ID or App Store Connect API URL of a single submission to show. Accepts ${{ app_store_connect.beta_feedback.id }} or ${{ app_store_connect.beta_feedback.url }} from an EAS workflow trigger.
Flags
-e, --profile=<value>Name of the submit profile from eas.json used to resolve the bundle identifier and App Store Connect API key. Defaults to "production".--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--limit=<value>The number of items to fetch each query. Defaults to 20 and is capped at 200.--non-interactiveRun the command in non-interactive mode.--offset=<value>Start queries from specified index. Use for paginating results. Defaults to 0.--type=<option>Kind of feedback the ID refers to. Only needed when passing a bare ID for screenshot feedback; a URL already encodes it. <options: crash|screenshot>.
Examples
eas testflight:feedback [ID]
Display screenshot feedback submitted by TestFlight testers, including their comments, device information, and screenshot URLs.
Usage
Argument
[ID]ID or App Store Connect API URL of a single submission to show. Accepts ${{ app_store_connect.beta_feedback.id }} or ${{ app_store_connect.beta_feedback.url }} from an EAS workflow trigger.
Flags
-e, --profile=<value>Name of the submit profile from eas.json used to resolve the bundle identifier and App Store Connect API key. Defaults to "production".--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--limit=<value>The number of items to fetch each query. Defaults to 20 and is capped at 200.--non-interactiveRun the command in non-interactive mode.--offset=<value>Start queries from specified index. Use for paginating results. Defaults to 0.--type=<option>Kind of feedback the ID refers to. Only needed when passing a bare ID for a crash; a URL already encodes it. <options: crash|screenshot>.
Examples
eas update
Publish an update group.
Usage
Flags
-m, --message=<value>A short message describing the update.-p, --platform=<option>[default: all] <options: android|ios|all>.--autoUse the current git branch and commit message for the EAS branch and update message.--branch=<value>Branch to publish the update group on.--channel=<value>Channel that the published update should affect.--clear-cacheClear the bundler cache before publishing.--emit-metadataEmit "eas-update-metadata.json" in the bundle folder with detailed information about the generated updates.--environment=<value>Environment to use for the server-side defined EAS environment variables during command execution, for example, "production", "preview", "development". Required for projects using Expo SDK 55 or greater.--input-dir=<value>[default: dist] Location of the bundle.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.--private-key-path=<value>File containing the PEM-encoded private key corresponding to the certificate in expo-updates' configuration. Defaults to a file named "private-key.pem" in the certificate's directory. Only relevant if you are using code signing: https://docs.expo.dev/eas-update/code-signing/.--rollout-percentage=<value>Percentage of users this update should be immediately available to. Users not in the rollout will be served the previous latest update on the branch, even if that update is itself being rolled out. The specified number must be an integer between 1 and 100. When not specified, this defaults to 100.--skip-bundlerSkip running Expo CLI to bundle the app before publishing.
eas update:configure
Configure the project to support EAS Update.
Usage
Flags
-p, --platform=<option>[default: all] Platform to configure <options: android|ios|all>.--environment=<value>Environment to use for the server-side defined EAS environment variables during command execution, for example, "production", "preview", "development".--non-interactiveRun the command in non-interactive mode.
eas update:delete GROUPID
Delete all the updates in an update group.
Usage
Argument
GROUPIDThe ID of an update group to delete.
Flags
--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
eas update:edit [GROUPID]
Edit all the updates in an update group.
Usage
Argument
[GROUPID]The ID of an update group to edit.
Flags
--branch=<value>Branch for which to list updates to select from.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.--rollout-percentage=<value>Rollout percentage to set for a rollout update. The specified number must be an integer between 1 and 100.
eas update:embedded:delete ID
Delete an embedded update registered with EAS Update.
Usage
Argument
IDThe ID of the embedded update (manifest UUID from app.manifest).
Flags
--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
eas update:embedded:list
List embedded updates registered with EAS Update for this project.
Usage
Flags
-p, --platform=<option>Filter by platform <options: ios|android>.--after-cursor=<value>Return items after this cursor (for pagination).--channel=<value>Filter by channel name (pass "all" to skip the channel prompt).--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--limit=<value>The number of items to fetch each query. Defaults to 25 and is capped at 50.--non-interactiveRun the command in non-interactive mode.--runtime-version=<value>Filter by runtime version.
eas update:embedded:upload
Upload the JS bundle embedded in a native build so EAS Update can generate bsdiff patches against it.
Usage
Flags
-p, --platform=<option>(required) Platform of the embedded bundle <options: ios|android>.--build-id=<value>EAS Build ID that produced this binary (required when invoked from EAS Build).--bundle=<value>(required) Path to the embedded JS bundle file.--channel=<value>(required) Channel name the embedded update should be associated with.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--manifest=<value>(required) Path to the app.manifest file embedded in the build.--non-interactiveRun the command in non-interactive mode.
Examples
eas update:embedded:view ID
View details of an embedded update registered with EAS Update.
Usage
Argument
IDThe ID of the embedded update (manifest UUID from app.manifest).
Flag
--jsonEnable JSON output, non-JSON messages will be printed tostderr.
eas update:insights GROUPID
Display launch, crash, unique-user, and size insights for an update group.
Usage
Argument
GROUPIDThe ID of an update group.
Flags
--days=<value>Show insights from the last N days (default 7, mutually exclusive with--start/--end).--end=<value>End of insights time range (ISO date).--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.--platform=<option>Filter to a single platform. <options: ios|android>.--start=<value>Start of insights time range (ISO date).
eas update:list
View the recent updates.
Usage
Flags
-p, --platform=<option>Filter updates by platform <options: android|ios|all>.--allList updates on all branches.--branch=<value>List updates only on this branch.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--limit=<value>The number of items to fetch each query. Defaults to 25 and is capped at 50.--non-interactiveRun the command in non-interactive mode.--offset=<value>Start queries from specified index. Use for paginating results. Defaults to 0.--runtime-version=<value>Filter updates by runtime version.
eas update:republish
Roll back to an existing update.
Usage
Flags
-m, --message=<value>Short message describing the republished update group.-p, --platform=<option>[default: all] <options: android|ios|all>.--branch=<value>Branch name to select an update group to republish from.--channel=<value>Channel name to select an update group to republish from.--destination-branch=<value>Branch name to republish to if republishing to a different branch.--destination-channel=<value>Channel name to select a branch to republish to if republishing to a different branch.--group=<value>Update group ID to republish.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.--private-key-path=<value>File containing the PEM-encoded private key corresponding to the certificate in expo-updates' configuration. Defaults to a file named "private-key.pem" in the certificate's directory. Only relevant if you are using code signing: https://docs.expo.dev/eas-update/code-signing/.--rollout-percentage=<value>Percentage of users this update should be immediately available to. Users not in the rollout will be served the previous latest update on the branch, even if that update is itself being rolled out. The specified number must be an integer between 1 and 100. When not specified, this defaults to 100.
eas update:revert-update-rollout
Revert a rollout update for a project.
Usage
Flags
-m, --message=<value>Short message describing the revert.--branch=<value>Branch name to select an update group to revert the rollout update from.--channel=<value>Channel name to select an update group to revert the rollout update from.--group=<value>Rollout update group ID to revert.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.--private-key-path=<value>File containing the PEM-encoded private key corresponding to the certificate in expo-updates' configuration. Defaults to a file named "private-key.pem" in the certificate's directory. Only relevant if you are using code signing: https://docs.expo.dev/eas-update/code-signing/.
eas update:roll-back-to-embedded
Roll back to the embedded update.
Usage
Flags
-p, --platform=<option>[default: all] <options: android|ios|all>.--branch=<value>Branch to publish the rollback to embedded update group on.--channel=<value>Channel that the published rollback to embedded update should affect.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--message=<value>A short message describing the rollback to embedded update.--non-interactiveRun the command in non-interactive mode.--private-key-path=<value>File containing the PEM-encoded private key corresponding to the certificate in expo-updates' configuration. Defaults to a file named "private-key.pem" in the certificate's directory. Only relevant if you are using code signing: https://docs.expo.dev/eas-update/code-signing/.--runtime-version=<value>Runtime version that the rollback to embedded update should target.
eas update:rollback [GROUPID]
Roll back to an embedded update or an existing update.
Usage
Argument
[GROUPID]The ID of the update group to roll back. Must be the latest update for its branch and runtime version. The update group published before it is republished; if there is none, a roll back to the embedded update is published. Required in non-interactive mode.
Flags
-m, --message=<value>Short message describing the rollback update.-p, --platform=<option>[default: all] <options: android|ios|all>.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.--private-key-path=<value>File containing the PEM-encoded private key corresponding to the certificate in expo-updates' configuration. Defaults to a file named "private-key.pem" in the certificate's directory. Only relevant if you are using code signing: https://docs.expo.dev/eas-update/code-signing/.
eas update:view GROUPID
Update group details.
Usage
Argument
GROUPIDThe ID of an update group, or the ID of a platform-specific update.
Flags
--days=<value>Show insights from the last N days (default 7). Only used with--insights.--end=<value>End of insights time range (ISO date). Only used with--insights.--insightsAlso show insights (launches, crash rate, unique users, payload size) for the update group.--jsonEnable JSON output, non-JSON messages will be printed tostderr.--start=<value>Start of insights time range (ISO date). Only used with--insights.
eas upload
Upload a local build and generate a sharable link.
Usage
Flags
-p, --platform=<option><options: ios|android>.--build-path=<value>Path for the local build.--fingerprint=<value>Fingerprint hash of the local build.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
eas webhook:create
Create a webhook.
Usage
Flags
--event=<option>Event type that triggers the webhook <options: BUILD|SUBMIT>.--non-interactiveRun the command in non-interactive mode.--secret=<value>Secret used to create a hash signature of the request payload, provided in the 'Expo-Signature' header.--url=<value>Webhook URL.
eas webhook:delete [ID]
Delete a webhook.
Usage
Argument
[ID]ID of the webhook to delete.
Flag
--non-interactiveRun the command in non-interactive mode.
eas webhook:list
List webhooks.
Usage
Flags
--event=<option>Event type that triggers the webhook <options: BUILD|SUBMIT>.--jsonEnable JSON output, non-JSON messages will be printed tostderr.
eas webhook:update
Update a webhook.
Usage
Flags
--event=<option>Event type that triggers the webhook <options: BUILD|SUBMIT>.--id=<value>(required) Webhook ID.--non-interactiveRun the command in non-interactive mode.--secret=<value>Secret used to create a hash signature of the request payload, provided in the 'Expo-Signature' header.--url=<value>Webhook URL.
eas webhook:view ID
View a webhook.
Usage
Argument
IDID of the webhook to view.
eas whoami
Show the username you are logged in as.
Usage
Alias
eas worker:alias
Assign deployment aliases.
Usage
Flags
--alias=nameCustom alias to assign to the existing deployment.--id=xyz123Unique identifier of an existing deployment.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.--prodPromote an existing deployment to production.
Aliases
eas worker:alias:delete [ALIAS_NAME]
Delete deployment aliases.
Usage
Flags
--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
Alias
eas worker:delete [DEPLOYMENT_ID]
Delete a deployment.
Usage
Flags
--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--non-interactiveRun the command in non-interactive mode.
Alias
eas workflow:cancel
Cancel one or more workflow runs. If no workflow run IDs are provided, you will be prompted to select IN_PROGRESS runs to cancel.
Usage
Flag
--non-interactiveRun the command in non-interactive mode.
eas workflow:create [NAME]
Create a new workflow configuration YAML file.
Usage
Argument
[NAME]Name of the workflow file. When provided without--template, a placeholder workflow is created.
Flags
--skip-validationIf set, the workflow file will not be validated before being created.--template=<option>Template to use for the workflow file <options: build|update|deploy|custom>.
eas workflow:insights
Display run counts, success rate, and per-workflow trends for a time range.
Usage
Flags
--days=<value>Show insights from the last N days (default 7, mutually exclusive with--start/--end).--end=<value>End of insights time range (ISO date).--git-ref=<value>Only include runs requested for this git ref, for example main or refs/heads/main, or for the full 40-character commit SHA that eas workflow:run recorded.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--limit=<value>The number of workflows to list. Defaults to 50 and is capped at 100.--non-interactiveRun the command in non-interactive mode.--project-id=<value>EAS project ID (defaults to the project ID of the current directory).--start=<value>Start of insights time range (ISO date).--status=<option>...Only include runs with this status (can be specified multiple times). <options: SUCCESS|FAILURE|CANCELED>.--trigger=<option>...Only include runs started by this trigger (can be specified multiple times). <options: APP_STORE_CONNECT_APP_VERSION_STATE_CHANGED|APP_STORE_CONNECT_BETA_FEEDBACK_SUBMITTED|APP_STORE_CONNECT_BU ILD_UPLOAD_STATE_CHANGED|APP_STORE_CONNECT_EXTERNAL_BETA_STATE_CHANGED|EAS_SUBMIT|EXPO_LAUNCH|GITHUB_PULL_REQUEST_BA SE_REF_CHANGED|GITHUB_PULL_REQUEST_COMMENT_CREATED|GITHUB_PULL_REQUEST_COMMENT_DELETED|GITHUB_PULL_REQUEST_COMMENT_E DITED|GITHUB_PULL_REQUEST_EDITED|GITHUB_PULL_REQUEST_LABELED|GITHUB_PULL_REQUEST_OPENED|GITHUB_PULL_REQUEST_READY_FO R_REVIEW|GITHUB_PULL_REQUEST_REOPENED|GITHUB_PULL_REQUEST_SYNCHRONIZE|GITHUB_PUSH|GITHUB_REF_DELETE|MANUAL|REPACK_EX PO_GO|SCHEDULE>.--workflow=<value>...Only include runs of this workflow file name (can be specified multiple times).
eas workflow:insights:maestro
Display Maestro test insights for a time range: pass and flake rates, per-flow stats, and a single flow's history.
Usage
Flags
--days=<value>Show insights from the last N days (default 7, mutually exclusive with--start/--end).--end=<value>End of insights time range (ISO date).--flow=<value>Show one flow's history instead of the overview, by flow path. Cannot be combined with--status,--tag,--search,--sort,--sort-direction.--git-ref=<value>Only include runs requested for this git ref, for example main or refs/heads/main, or for the full 40-character commit SHA that eas workflow:run recorded.--jsonEnable JSON output, non-JSON messages will be printed tostderr. Implies--non-interactive.--limit=<value>The number of flows to list, or of recent runs with--flow. Defaults to 50 and is capped at 100.--non-interactiveRun the command in non-interactive mode.--project-id=<value>EAS project ID (defaults to the project ID of the current directory).--search=<value>Only list flows whose path contains this text.--sort=<option>[default: fails] Sort the flows table by this column. <options: fails|runs|flakes|pass-rate|flake-rate|p90|last-run>.--sort-direction=<option>[default: desc] Sort direction for the flows table. <options: asc|desc>.--start=<value>Start of insights time range (ISO date).--status=<option>...Only include flow runs with this status (can be specified multiple times). PASSED means passed on the first attempt. <options: PASSED|FLAKY|FAILED>.--tag=<value>...Only include flow runs with this tag (can be specified multiple times).--workflow=<value>...Only include runs of this workflow file name (can be specified multiple times).
eas workflow:logs [ID]
View logs for a workflow run, selecting a job and step to view. You can pass in either a workflow run ID or a job ID. If no ID is passed in, you will be prompted to select from recent workflow runs for the current project.
Usage
Argument
[ID]ID of the workflow run or workflow job to view logs for.
Flags
--all-stepsPrint all logs, rather than prompting for a specific step. This will be automatically set when in non-interactive mode.--jsonEnable JSON output, non-JSON messages will be printed tostderr.--non-interactiveRun the command in non-interactive mode.
eas workflow:run FILE
Run an EAS workflow. The entire local project directory will be packaged and uploaded to EAS servers for the workflow run, unless the --ref flag is used.
Usage
Argument
FILEPath to the workflow file to run.
Flags
-F, --input=<value>...Set workflow inputs.--jsonEnable JSON output, non-JSON messages will be printed tostderr.--non-interactiveRun the command in non-interactive mode.--ref=<value>Git reference to run the workflow on.--ssh[EXPERIMENTAL] Enable SSH on the run.--ssh-idle-timeout=<value>[EXPERIMENTAL] SSH idle timeout in seconds.--[no-]waitWait for workflow run to complete. Defaults to false.
eas workflow:runs
List recent workflow runs for this project, with their IDs, statuses, and timestamps.
Usage
Flags
--jsonEnable JSON output, non-JSON messages will be printed tostderr.--limit=<value>The number of items to fetch each query. Defaults to 10 and is capped at 100.--status=<option>If present, filter the returned runs to select those with the specified status <options: ACTION_REQUIRED|CANCELED|FAILURE|IN_PROGRESS|NEW|SUCCESS|WAITING>.--workflow=<value>If present, the query will only return runs for the specified workflow file name.
eas workflow:status [WORKFLOW_RUN_ID]
Show the status of an existing workflow run. If no run ID is provided, you will be prompted to select from recent workflow runs for the current project.
Usage
Argument
[WORKFLOW_RUN_ID]A workflow run ID.
Flags
--jsonEnable JSON output, non-JSON messages will be printed tostderr.--non-interactiveRun the command in non-interactive mode.--[no-]waitWait for workflow run to complete. Defaults to false.
eas workflow:validate PATH
Validate a workflow configuration yaml file.
Usage
Argument
PATHPath to the workflow configuration YAML file (must end with .yml or .yaml).
Flag
--non-interactiveRun the command in non-interactive mode.
eas workflow:view [ID]
View details for a workflow run, including jobs. If no run ID is provided, you will be prompted to select from recent workflow runs for the current project.
Usage
Argument
[ID]ID of the workflow run to view.
Flags
--jsonEnable JSON output, non-JSON messages will be printed tostderr.--non-interactiveRun the command in non-interactive mode.