This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.
Manage branches and channels with EAS CLI
Edit page
Learn how to link a branch to a channel and publish updates with EAS CLI.
EAS Update works by linking branches to channels. Channels are specified at build time and exist inside a build's native code. Branches are an ordered list of updates, similar to a Git branch, which is an ordered list of commits. With EAS Update, we can link any channel to any branch, allowing us to make different updates available to different builds.
The diagram above visualizes this link. Here, we have the builds with the "production" channel linked to the branch named "version-1.0". When we're ready, we can adjust the channel–branch pointer. Imagine we have more fixes tested and ready on a branch named "version-2.0". We could update this link to make the "version-2.0" branch available to all builds with the "production" channel.
Inspecting the state of your project's updates
Inspect channels
View all channels:
View a specific channel:
Create a channel:
Inspect branches
See all branches:
See a specific branch and a list of its updates:
Inspect updates
View a specific update:
Changing the state of your project's updates
Create a new update and publish it
If you're using Git, we can use the --auto flag to auto-fill the branch name and the message. This flag will use the current Git branch as the branch name and the latest Git commit message as the message.
Delete a branch
Rename a branch
Renaming branches do not disconnect any channel–branch links. If you had a channel named "production" linked to a branch named "version-1.0", and then you renamed the branch named "version-1.0" to "version-1.0-new", the "production" channel would be linked to the now-renamed branch "version-1.0-new".
Republish a previous update within a branch
We can make a previous update immediately available to all users. This command takes the previous update and publishes it again so that it becomes the most current update on the branch. As your users re-open their apps, the apps will see the newly re-published update and will download it.
Republish is similar to a Git reversion, where the correct commit is placed on top of the Git history.
If you don't know the exact update group ID, you can use the
--branchflag. This shows a list of the recent updates on the branch and allows you to select the update group to republish.
Pause updates on a channel
Pausing a channel stops EAS Update from serving updates to builds that check for updates on that channel.
Pausing is reversible. Your channel's updates and any rollout in progress will resume when you unpause a channel.
Run the command without a channel name to pick one from a list. In CI, pass the channel name with --non-interactive, or use --json to print the channel as JSON. The --json flag implies --non-interactive.
What happens while a channel is paused?
- Each client on the paused channel still checks for updates, but they will not receive new updates. EAS typically responds with a bodyless HTTP 204 response for paused channels, so these checks use very little bandwidth.
- Each client keeps running the newest update it already has. This may be the code shipped with the build if the client never received a newer update. Your users see no change in what their app is running.
- Because no client downloads an update, the number of monthly active users does not increase while the channel is paused. This keeps billed users from growing.
eas channel:view [channel-name]andeas channel:listshow the channel's status as Paused.- You can keep publishing updates to branches. They are stored as usual and become available when you unpause the channel.
Pausing applies to a single channel, so pausing production has no effect on a preview or development channel. You can continue to publish and test updates on your development and preview channels while production is paused.
How is pausing a channel different from a rollback?
Pausing keeps clients on their current update and prevents them from receiving new updates, while rollbacks instruct clients to run an older update.
eas update:rollbackandeas update:republishpublish a previous update again so that it becomes the newest update on the branch. Clients download that update and run it. See Rollbacks.eas update:rollbackwith the embedded option, also available aseas update:roll-back-to-embedded, publishes a directive that tells clients to stop using downloaded updates and run the update embedded in the build instead.eas channel:pausedoes not publish anything and instructs EAS not to send updates for the specified channel. Clients on that channel keep running the latest update they currently have and will not receive new updates until the channel is unpaused.
Resume updates on a channel
Unpause a channel by resuming it. The channel will start serving updates from the branch associated with the channel. Any rollout on the channel will resume. As users open their apps and check for updates, they will receive the newest compatible update as usual.