eas-cli icon indicating copy to clipboard operation
eas-cli copied to clipboard

Fastest way to build, submit, and update iOS and Android apps

eas-cli

EAS command line tool

oclif Version Downloads/week License

  • Installation
  • Usage
  • Commands

Installation

npm install -g eas-cli
# or
yarn global add eas-cli

Enforcing eas-cli version for your project

If you want to enforce the eas-cli version for your project, use the "cli.version" field in eas.json. Installing eas-cli to your project dependencies is strongly discouraged because it may cause dependency conflicts that are difficult to debug.

An example of eas.json that enforces eas-cli in version 1.0.0 or newer:

{
  "cli": {
    "version": ">=1.0.0"
  },
  "build": {
    // build profiles
  }
  "submit": {
    // submit profiles
  }
}

Learn more: https://docs.expo.dev/build-reference/eas-json/

Usage

eas COMMAND
# runs the command
eas (-v|--version|version)
# prints the version
eas --help COMMAND
# outputs help for specific command

Commands

  • eas account:login
  • eas account:logout
  • eas account:view
  • eas analytics [STATUS]
  • eas autocomplete [SHELL]
  • eas branch:create [NAME]
  • eas branch:delete [NAME]
  • eas branch:list
  • eas branch:rename
  • eas branch:view [NAME]
  • eas build
  • eas build:cancel [BUILD_ID]
  • eas build:configure
  • eas build:inspect
  • eas build:list
  • eas build:submit
  • eas build:version:set
  • eas build:version:sync
  • eas build:view [BUILD_ID]
  • eas channel:create [NAME]
  • eas channel:edit [NAME]
  • eas channel:list
  • eas channel:view [NAME]
  • eas config
  • eas credentials
  • eas database:create
  • eas device:create
  • eas device:delete
  • eas device:list
  • eas device:view [UDID]
  • eas diagnostics
  • eas functions:start
  • eas help [COMMAND]
  • eas init
  • eas login
  • eas logout
  • eas metadata:pull
  • eas metadata:push
  • eas project:info
  • eas project:init
  • eas secret:create
  • eas secret:delete
  • eas secret:list
  • eas submit
  • eas update
  • eas update:configure
  • eas update:delete GROUPID
  • eas update:list
  • eas update:view GROUPID
  • eas webhook:create
  • eas webhook:delete [ID]
  • eas webhook:list
  • eas webhook:update
  • eas webhook:view ID
  • eas whoami

eas account:login

log in with your Expo account

USAGE
  $ eas account:login

DESCRIPTION
  log in with your Expo account

ALIASES
  $ eas login

See code: src/commands/account/login.ts

eas account:logout

log out

USAGE
  $ eas account:logout

DESCRIPTION
  log out

ALIASES
  $ eas logout

See code: src/commands/account/logout.ts

eas account:view

show the username you are logged in as

USAGE
  $ eas account:view

DESCRIPTION
  show the username you are logged in as

ALIASES
  $ eas whoami

See code: src/commands/account/view.ts

eas analytics [STATUS]

display or change analytics settings

USAGE
  $ eas analytics [STATUS]

DESCRIPTION
  display or change analytics settings

See code: src/commands/analytics.ts

eas autocomplete [SHELL]

display autocomplete installation instructions

USAGE
  $ eas autocomplete [SHELL] [-r]

ARGUMENTS
  SHELL  shell type

FLAGS
  -r, --refresh-cache  Refresh cache (ignores displaying instructions)

DESCRIPTION
  display autocomplete installation instructions

EXAMPLES
  $ eas autocomplete

  $ eas autocomplete bash

  $ eas autocomplete zsh

  $ eas autocomplete --refresh-cache

See code: @expo/plugin-autocomplete

eas branch:create [NAME]

create a branch

USAGE
  $ eas branch:create [NAME] [--json]

ARGUMENTS
  NAME  Name of the branch to create

FLAGS
  --json  return a json with the new branch ID and name.

DESCRIPTION
  create a branch

See code: src/commands/branch/create.ts

eas branch:delete [NAME]

delete a branch

USAGE
  $ eas branch:delete [NAME] [--json]

ARGUMENTS
  NAME  Name of the branch to delete

FLAGS
  --json  return JSON with the edited branch's ID and name.

DESCRIPTION
  delete a branch

See code: src/commands/branch/delete.ts

eas branch:list

list all branches

USAGE
  $ eas branch:list [--offset <value>] [--limit <value>] [--json] [--non-interactive]

FLAGS
  --json             Enable JSON output, non-JSON messages will be printed to stderr.
  --limit=<value>    The number of query items to list at once. The default value is 50 (the maximum is 100). Using a
                     lower value may help increase command speed.
  --non-interactive  Run the command in non-interactive mode.
  --offset=<value>   Start queries from specified index. Use for paginating results. Defaults to 0.

DESCRIPTION
  list all branches

See code: src/commands/branch/list.ts

eas branch:rename

rename a branch

USAGE
  $ eas branch:rename [--from <value>] [--to <value>] [--json]

FLAGS
  --from=<value>  current name of the branch.
  --json          return a json with the edited branch's ID and name.
  --to=<value>    new name of the branch.

DESCRIPTION
  rename a branch

See code: src/commands/branch/rename.ts

eas branch:view [NAME]

view a branch

USAGE
  $ eas branch:view [NAME] [--offset <value>] [--limit <value>] [--json] [--non-interactive]

ARGUMENTS
  NAME  Name of the branch to view

FLAGS
  --json             Enable JSON output, non-JSON messages will be printed to stderr.
  --limit=<value>    The number of query items to list at once. The default value is 50 (the maximum is 100). Using a
                     lower value may help increase command speed.
  --non-interactive  Run the command in non-interactive mode.
  --offset=<value>   Start queries from specified index. Use for paginating results. Defaults to 0.

DESCRIPTION
  view a branch

See code: src/commands/branch/view.ts

eas build

start a build

USAGE
  $ eas build [-p android|ios|all] [--json] [--profile <value>] [--non-interactive] [--local] [--output
    <value>] [--wait] [--clear-cache] [--auto-submit | --auto-submit-with-profile <value>] [-m <value>]

FLAGS
  -m, --message=<value>                    A short message describing the build
  -p, --platform=(android|ios|all)
  --auto-submit                            Submit on build complete using the submit profile with the same name as the
                                           build profile
  --auto-submit-with-profile=PROFILE_NAME  Submit on build complete using the submit profile with provided name
  --clear-cache                            Clear cache before the build
  --json                                   Enable JSON output, non-JSON messages will be printed to stderr
  --local                                  Run build locally [experimental]
  --non-interactive                        Run command in non-interactive mode
  --output=<value>                         Output path for local build
  --profile=PROFILE_NAME                   Name of the build profile from eas.json. Defaults to "production" if defined
                                           in eas.json.
  --[no-]wait                              Wait for build(s) to complete

DESCRIPTION
  start a build

See code: src/commands/build/index.ts

eas build:cancel [BUILD_ID]

cancel a build

USAGE
  $ eas build:cancel [BUILD_ID]

DESCRIPTION
  cancel a build

See code: src/commands/build/cancel.ts

eas build:configure

configure the project to support EAS Build

USAGE
  $ eas build:configure [-p android|ios|all]

FLAGS
  -p, --platform=(android|ios|all)  Platform to configure

DESCRIPTION
  configure the project to support EAS Build

See code: src/commands/build/configure.ts

eas build:inspect

inspect the state of the project at specific build stages, useful for troubleshooting

USAGE
  $ eas build:inspect -p android|ios -s archive|pre-build|post-build -o <value> [--profile <value>] [--force] [-v]

FLAGS
  -o, --output=OUTPUT_DIRECTORY
      (required) Output directory.

  -p, --platform=(android|ios)
      (required)

  -s, --stage=(archive|pre-build|post-build)
      (required) Stage of the build you want to inspect.
      archive - builds the project archive that would be uploaded to EAS when building
      pre-build - prepares the project to be built with Gradle/Xcode. Does not run the native build.
      post-build - builds the native project and leaves the output directory for inspection

  -v, --verbose

  --force
      Delete OUTPUT_DIRECTORY if it already exists.

  --profile=PROFILE_NAME
      Name of the build profile from eas.json. Defaults to "production" if defined in eas.json.

DESCRIPTION
  inspect the state of the project at specific build stages, useful for troubleshooting

See code: src/commands/build/inspect.ts

eas build:list

list all builds for your project

USAGE
  $ eas build:list [--platform all|android|ios] [--json] [--status
    new|in-queue|in-progress|errored|finished|canceled] [--distribution store|internal|simulator] [--channel <value>]
    [--appVersion <value>] [--appBuildVersion <value>] [--sdkVersion <value>] [--runtimeVersion <value>]
    [--appIdentifier <value>] [--buildProfile <value>] [--gitCommitHash <value>] [--limit <value>]

FLAGS
  --appBuildVersion=<value>
  --appIdentifier=<value>
  --appVersion=<value>
  --buildProfile=<value>
  --channel=<value>
  --distribution=(store|internal|simulator)
  --gitCommitHash=<value>
  --json                                                         Enable JSON output, non-JSON messages will be printed
                                                                 to stderr
  --limit=<value>
  --platform=(all|android|ios)
  --runtimeVersion=<value>
  --sdkVersion=<value>
  --status=(new|in-queue|in-progress|errored|finished|canceled)

DESCRIPTION
  list all builds for your project

See code: src/commands/build/list.ts

eas build:submit

submit app binary to App Store and/or Play Store

USAGE
  $ eas build:submit [-p android|ios|all] [--profile <value>] [--latest | --id <value> | --path <value> | --url
    <value>] [--verbose] [--wait] [--non-interactive]

FLAGS
  -p, --platform=(android|ios|all)
  --id=<value>                      ID of the build to submit
  --latest                          Submit the latest build for specified platform
  --non-interactive                 Run command in non-interactive mode
  --path=<value>                    Path to the .apk/.aab/.ipa file
  --profile=<value>                 Name of the submit profile from eas.json. Defaults to "production" if defined in
                                    eas.json.
  --url=<value>                     App archive url
  --verbose                         Always print logs from Submission Service
  --[no-]wait                       Wait for submission to complete

DESCRIPTION
  submit app binary to App Store and/or Play Store

ALIASES
  $ eas build:submit

eas build:version:set

Update version of an app.

USAGE
  $ eas build:version:set [-p android|ios] [--profile <value>]

FLAGS
  -p, --platform=(android|ios)
  --profile=PROFILE_NAME        Name of the build profile from eas.json. Defaults to "production" if defined in
                                eas.json.

DESCRIPTION
  Update version of an app.

See code: src/commands/build/version/set.ts

eas build:version:sync

Update a version in native code with a value stored on EAS servers

USAGE
  $ eas build:version:sync [-p android|ios|all] [--profile <value>]

FLAGS
  -p, --platform=(android|ios|all)
  --profile=PROFILE_NAME            Name of the build profile from eas.json. Defaults to "production" if defined in
                                    eas.json.

DESCRIPTION
  Update a version in native code with a value stored on EAS servers

See code: src/commands/build/version/sync.ts

eas build:view [BUILD_ID]

view a build for your project

USAGE
  $ eas build:view [BUILD_ID] [--json]

FLAGS
  --json  Enable JSON output, non-JSON messages will be printed to stderr

DESCRIPTION
  view a build for your project

See code: src/commands/build/view.ts

eas channel:create [NAME]

create a channel

USAGE
  $ eas channel:create [NAME] [--json]

ARGUMENTS
  NAME  Name of the channel to create

FLAGS
  --json  print output as a JSON object with the new channel ID, name and branch mapping.

DESCRIPTION
  create a channel

See code: src/commands/channel/create.ts

eas channel:edit [NAME]

point a channel at a new branch

USAGE
  $ eas channel:edit [NAME] [--branch <value>] [--json]

ARGUMENTS
  NAME  Name of the channel to edit

FLAGS
  --branch=<value>  Name of the branch to point to
  --json            Print output as a JSON object with the channel ID, name and branch mapping

DESCRIPTION
  point a channel at a new branch

See code: src/commands/channel/edit.ts

eas channel:list

list all channels

USAGE
  $ eas channel:list [--json]

FLAGS
  --json  print output as a JSON object with the channel ID, name and branch mapping.

DESCRIPTION
  list all channels

See code: src/commands/channel/list.ts

eas channel:view [NAME]

view a channel

USAGE
  $ eas channel:view [NAME] [--json]

ARGUMENTS
  NAME  Name of the channel to view

FLAGS
  --json  print output as a JSON object with the channel ID, name and branch mapping.

DESCRIPTION
  view a channel

See code: src/commands/channel/view.ts

eas config

display project configuration (app.json + eas.json)

USAGE
  $ eas config [-p android|ios] [--profile <value>]

FLAGS
  -p, --platform=(android|ios)
  --profile=<value>

DESCRIPTION
  display project configuration (app.json + eas.json)

See code: src/commands/config.ts

eas credentials

manage credentials

USAGE
  $ eas credentials [-p android|ios]

FLAGS
  -p, --platform=(android|ios)

DESCRIPTION
  manage credentials

See code: src/commands/credentials.ts

eas database:create

create a database

USAGE
  $ eas database:create

DESCRIPTION
  create a database

See code: src/commands/database/create.ts

eas device:create

register new Apple Devices to use for internal distribution

USAGE
  $ eas device:create

DESCRIPTION
  register new Apple Devices to use for internal distribution

See code: src/commands/device/create.ts

eas device:delete

remove a registered device from your account

USAGE
  $ eas device:delete [--apple-team-id <value>] [--udid <value>]

FLAGS
  --apple-team-id=<value>
  --udid=<value>...

DESCRIPTION
  remove a registered device from your account

See code: src/commands/device/delete.ts

eas device:list

list all registered devices for your account

USAGE
  $ eas device:list [--apple-team-id <value>]

FLAGS
  --apple-team-id=<value>

DESCRIPTION
  list all registered devices for your account

See code: src/commands/device/list.ts

eas device:view [UDID]

view a device for your project

USAGE
  $ eas device:view [UDID]

DESCRIPTION
  view a device for your project

See code: src/commands/device/view.ts

eas diagnostics

display environment info

USAGE
  $ eas diagnostics

DESCRIPTION
  display environment info

See code: src/commands/diagnostics.ts

eas functions:start

start a function

USAGE
  $ eas functions:start

DESCRIPTION
  start a function

See code: src/commands/functions/start.ts

eas help [COMMAND]

Display help for eas.

USAGE
  $ eas help [COMMAND] [-n]

ARGUMENTS
  COMMAND  Command to show help for.

FLAGS
  -n, --nested-commands  Include all nested commands in the output.

DESCRIPTION
  Display help for eas.

See code: @expo/plugin-help

eas init

create or link an EAS project

USAGE
  $ eas init

DESCRIPTION
  create or link an EAS project

ALIASES
  $ eas init

eas login

log in with your Expo account

USAGE
  $ eas login

DESCRIPTION
  log in with your Expo account

ALIASES
  $ eas login

eas logout

log out

USAGE
  $ eas logout

DESCRIPTION
  log out

ALIASES
  $ eas logout

eas metadata:pull

generate the local store configuration from the app stores

USAGE
  $ eas metadata:pull [--profile <value>]

FLAGS
  --profile=<value>  Name of the submit profile from eas.json. Defaults to "production" if defined in eas.json.

DESCRIPTION
  generate the local store configuration from the app stores

See code: src/commands/metadata/pull.ts

eas metadata:push

sync the local store configuration to the app stores

USAGE
  $ eas metadata:push [--profile <value>]

FLAGS
  --profile=<value>  Name of the submit profile from eas.json. Defaults to "production" if defined in eas.json.

DESCRIPTION
  sync the local store configuration to the app stores

See code: src/commands/metadata/push.ts

eas project:info

information about the current project

USAGE
  $ eas project:info

DESCRIPTION
  information about the current project

See code: src/commands/project/info.ts

eas project:init

create or link an EAS project

USAGE
  $ eas project:init

DESCRIPTION
  create or link an EAS project

ALIASES
  $ eas init

See code: src/commands/project/init.ts

eas secret:create

create an environment secret on the current project or owner account

USAGE
  $ eas secret:create [--scope account|project] [--name <value>] [--value <value>] [--force]

FLAGS
  --force                    Delete and recreate existing secrets
  --name=<value>             Name of the secret
  --scope=(account|project)  [default: project] Scope for the secret
  --value=<value>            Value of the secret

DESCRIPTION
  create an environment secret on the current project or owner account

See code: src/commands/secret/create.ts

eas secret:delete

delete an environment secret by ID

USAGE
  $ eas secret:delete [--id <value>]

FLAGS
  --id=<value>  ID of the secret to delete

DESCRIPTION
  delete an environment secret by ID

See code: src/commands/secret/delete.ts

eas secret:list

list environment secrets available for your current app

USAGE
  $ eas secret:list

DESCRIPTION
  list environment secrets available for your current app

See code: src/commands/secret/list.ts

eas submit

submit app binary to App Store and/or Play Store

USAGE
  $ eas submit [-p android|ios|all] [--profile <value>] [--latest | --id <value> | --path <value> | --url
    <value>] [--verbose] [--wait] [--non-interactive]

FLAGS
  -p, --platform=(android|ios|all)
  --id=<value>                      ID of the build to submit
  --latest                          Submit the latest build for specified platform
  --non-interactive                 Run command in non-interactive mode
  --path=<value>                    Path to the .apk/.aab/.ipa file
  --profile=<value>                 Name of the submit profile from eas.json. Defaults to "production" if defined in
                                    eas.json.
  --url=<value>                     App archive url
  --verbose                         Always print logs from Submission Service
  --[no-]wait                       Wait for submission to complete

DESCRIPTION
  submit app binary to App Store and/or Play Store

ALIASES
  $ eas build:submit

See code: src/commands/submit.ts

eas update

publish an update group

USAGE
  $ eas update [--branch <value>] [--message <value>] [--republish | --input-dir <value> | --skip-bundler]
    [--group <value> |  | ] [-p android|ios|all] [--json] [--auto] [--private-key-path <value>] [--non-interactive]

FLAGS
  -p, --platform=(android|ios|all)  [default: all]
  --auto                            Use the current git branch and commit message for the EAS branch and update message
  --branch=<value>                  Branch to publish the update group on
  --group=<value>                   Update group to republish
  --input-dir=<value>               [default: dist] Location of the bundle
  --json                            Enable JSON output, non-JSON messages will be printed to stderr
  --message=<value>                 A short message describing the update
  --non-interactive                 Run 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.
  --republish                       Republish an update group
  --skip-bundler                    Skip running Expo CLI to bundle the app before publishing

DESCRIPTION
  publish an update group

See code: src/commands/update/index.ts

eas update:configure

configure the project to support EAS Update

USAGE
  $ eas update:configure [-p android|ios|all]

FLAGS
  -p, --platform=(android|ios|all)  [default: all] Platform to configure

DESCRIPTION
  configure the project to support EAS Update

See code: src/commands/update/configure.ts

eas update:delete GROUPID

delete all the updates in an update group

USAGE
  $ eas update:delete [GROUPID] [--json]

ARGUMENTS
  GROUPID  The ID of an update group to delete.

FLAGS
  --json  Return a json with the group ID of the deleted updates.

DESCRIPTION
  delete all the updates in an update group

See code: src/commands/update/delete.ts

eas update:list

view the recent updates for a branch

USAGE
  $ eas update:list [--branch <value> | --all] [--json]

FLAGS
  --all             List all updates associated with this project
  --branch=<value>  List all updates on this branch
  --json            Return a json with all of the recent update groups.

DESCRIPTION
  view the recent updates for a branch

See code: src/commands/update/list.ts

eas update:view GROUPID

update group details

USAGE
  $ eas update:view [GROUPID] [--json]

ARGUMENTS
  GROUPID  The ID of an update group.

FLAGS
  --json  Return a json with the updates belonging to the group.

DESCRIPTION
  update group details

See code: src/commands/update/view.ts

eas webhook:create

create a webhook

USAGE
  $ eas webhook:create [--event BUILD|SUBMIT] [--url <value>] [--secret <value>]

FLAGS
  --event=(BUILD|SUBMIT)  Event type that triggers the webhook
  --secret=<value>        Secret used to create a hash signature of the request payload, provided in the
                          'Expo-Signature' header.
  --url=<value>           Webhook URL

DESCRIPTION
  create a webhook

See code: src/commands/webhook/create.ts

eas webhook:delete [ID]

delete a webhook

USAGE
  $ eas webhook:delete [ID]

ARGUMENTS
  ID  ID of the webhook to delete

DESCRIPTION
  delete a webhook

See code: src/commands/webhook/delete.ts

eas webhook:list

list webhooks

USAGE
  $ eas webhook:list [--event BUILD|SUBMIT]

FLAGS
  --event=(BUILD|SUBMIT)  Event type that triggers the webhook

DESCRIPTION
  list webhooks

See code: src/commands/webhook/list.ts

eas webhook:update

update a webhook

USAGE
  $ eas webhook:update --id <value> [--event BUILD|SUBMIT] [--url <value>] [--secret <value>]

FLAGS
  --event=(BUILD|SUBMIT)  Event type that triggers the webhook
  --id=<value>            (required) Webhook ID
  --secret=<value>        Secret used to create a hash signature of the request payload, provided in the
                          'Expo-Signature' header.
  --url=<value>           Webhook URL

DESCRIPTION
  update a webhook

See code: src/commands/webhook/update.ts

eas webhook:view ID

view a webhook

USAGE
  $ eas webhook:view [ID]

ARGUMENTS
  ID  ID of the webhook to view

DESCRIPTION
  view a webhook

See code: src/commands/webhook/view.ts

eas whoami

show the username you are logged in as

USAGE
  $ eas whoami

DESCRIPTION
  show the username you are logged in as

ALIASES
  $ eas whoami