skill
Eas Update
EAS service (paid). Configure and use EAS Update for over-the-air JavaScript and asset updates with expo-updates and EAS CLI. Use when setting up OTA updates, running eas update:configure or eas update, publishing to preview/staging/production channels, explaining branches/channels/runtime versions, testing updates, or debugging why an installed build still shows old code. Load for TestFlight, preview, or production updates that do not appear, including questions about cold launches or reopen...
About
# EAS Update
> **EAS service - costs apply.** EAS Update is available on the Free plan; publishing and delivery use update, bandwidth, and storage allowances, with higher limits on paid plans. See https://expo.dev/pricing.
Use EAS Update to deliver compatible JavaScript, styling, and asset changes to installed apps without submitting a new native binary. Native-code changes still require a new build.
## Start with the supported configuration path
Before changing anything, inspect `package.json`, the Expo app config, `eas.json` if present, and whether `ios/` or `android/` are tracked. Use what you find when reviewing the CLI's changes:
- Preserve existing dynamic or platform-specific app configuration. - If `eas.json` exists, preserve its profiles and existing channel assignments. The CLI adds a channel matching the profile name only to build profiles that do not already have one. - If `eas.json` is absent, do not create it by hand. The CLI may direct the user to run `eas build:configure` separately. - With tracked native projects, expect the CLI to synchronize the platform's native Update configuration. Without them, expect Continuous Native Generation to apply the native configuration during a later build.
Detect the Expo SDK version before installing packages or interpreting version-specific behavior.
If `expo-updates` is not installed, install the SDK-compatible version:
```bash npx expo install expo-updates ```
Configure from the project root:
```bash npx eas-cli@latest update:configure ```
Use `eas update:configure` rather than manually inventing `updates.url`, `runtimeVersion`, native metadata, or build-profile channels. The command understands EAS project linking, Continuous Native Generation, and projects with committed native directories. Review and explain its resulting diff.
If the command cannot proceed because the project is not linked or the user has not authorized the required remote operation, stop after any independently valid package installation and explain what remains. Do not partially reproduce `update:configure` by adding a runtime-version policy, config plugin, update URL, or channels by hand.
For dynamic app config, non-EAS builds, or a command that cannot complete automatically, follow the current setup documentation instead of guessing: https://docs.expo.dev/eas-update/getting-started.md.
## Keep the model straight
- **Build:** the installed native app. It contains native code, an embedded update, a platform, a runtime version, and normally a channel fixed at build time. - **Update:** a published JavaScript bundle, assets, and metadata for one platform and runtime version. - **Branch:** an ordered stream of updates. Its newest compatible update is active. - **Channel:** a stable deployment target embedded in builds. On the server, it points to a branch. - **Runtime version:** the compatibility boundary between an update and the native code in a build.
A build receives an update only when platform and runtime version match and the build's channel points to the branch containing that update:
```text installed build (channel: production, runtime: 1.1.1, platform: ios) -> production channel -> production branch -> newest update for runtime 1.1.1 and ios ```
Channels and branches commonly have the same name, but they are separate objects. `eas channel:edit` changes a channel's server-side branch mapping for every build on that channel. It does not change an individual installation's embedded channel.
Use this model to make decisions, but explain only the concepts needed for the user's request rather than reciting the entire model every time.
## Decide whether an update is compatible
Use an update for changes to JavaScript, styling, and bundled assets that the installed native runtime already supports.
Create a new native build when a change adds or modifies native code or native configuration, including most native-library additions and SDK upgrades. Do not work around a runtime mismatch or imply that publishing can add native capabilities to an existing build. See https://docs.expo.dev/eas-update/runtime-versions.md.
Do not change the project's runtime-version policy as an incidental fix. Explain how the current policy affects compatibility; treat changing it as a separate decision because it changes which installed builds can receive future updates.
## Publish deliberately
Check the current CLI help before relying on remembered flags:
```bash npx eas-cli@latest update --help ```
For the common channel-based flow:
```bash npx eas-cli@latest update \ --channel <channel> \ --message "<message>" \ --environment <environment> ```
SDK 55 and later require an EAS environment for publishing. Choose the environment intentionally so exported code receives the intended variables.
Publishing changes remote state and can affect installed applications. Before running it, establish the exact project, channel, environment, platforms, runtime version, and me
Install
Run this command
git clone https://github.com/expo/skills && cp -r skills/plugins/expo/skills/eas-update ~/.claude/skills/Works with
Manual steps
Clone the repository and copy the `plugins/expo/skills/eas-update` folder into your Claude skills directory. Compatible with Claude Code, Cursor, Codex, and any Agent Skills-compatible agent.
Frequently asked questions
What is the Eas Update skill?
EAS service (paid). Configure and use EAS Update for over-the-air JavaScript and asset updates with expo-updates and EAS CLI. Use when setting up OTA updates, running eas update:configure or eas update, publishing to preview/staging/production channels, explaining branches/channels/runtime versions, testing updates, or debugging why an installed build still shows old code. Load for TestFlight, preview, or production…
How do I install Eas Update?
Run this in your terminal:
git clone https://github.com/expo/skills && cp -r skills/plugins/expo/skills/eas-update ~/.claude/skills/Which AI tools does Eas Update work with?
It works with claude_app, claude_code, claude_api, cursor, codex, windsurf, cline, zed.
Who made Eas Update?
Expo, released under the MIT license.
Is Eas Update free?
Yes, it is free to use under the MIT license.
npx skills add google/agents-cli
npx skills add google/agents-cli
npx skills add google/agents-cli
npx skills add google/agents-cli
npx skills add google/agents-cli
npx skills add prisma/skills
Audit before you install
Run any source through our checks - AI visibility, security, performance, and stack detection.
Automated Web Security Scan
security
PageSpeed Analyzer
performance
AI Content Quality Test
arabic content
AI Agent / MCP Server Tester
ai testing
Site Stack Detector
migration
AI SEO / AEO / GEO Audit
ai visibility
llms.txt Generator
ai visibility
Readability Score
arabic content
Schema / JSON-LD Builder
ai visibility
AI Cost Calculator
ai testing
Headline Analyzer
arabic content