Source: expo/skills · Maintainer: Expo · License: MIT · Checked: 24 October 2026
What is the eas-update-insights skill?
The eas-update-insights skill is Expo's official Agent Skill for checking how a published EAS Update is doing. It teaches your coding agent to run EAS CLI commands that report crash rates, launches, unique users, payload size and how many users are on the embedded build versus an over-the-air (OTA) update, then read the JSON to answer questions like "Is the latest update healthy?" Install it with npx skills add https://github.com/expo/skills --skill eas-update-insights.
Its description starts: "Check the health of published EAS Update: crash rates, install/launch counts, unique users, payload size, and the split between embedded and OTA users per channel." It sits in the Services and paid distribution group of expo/skills, the skills built around paid Expo Application Services (EAS).
As of 24 October 2026, its skills.sh page listed 36.7K installs (snapshot, 24 October 2026), the most of any current eas- skill. skills.sh first saw it on 23 April 2026.
What does it do?
The skill is model-invoked, so the agent loads it when you ask how an update or rollout is performing. The SKILL.md (version 1.0.0) opens with a cost note, then maps questions to commands.
Prerequisites. eas-cli installed (npm install -g eas-cli), a login with eas login, and for channel insights, running from an Expo project directory so the CLI can find the project ID.
Four commands.
| Command | What it returns |
|---|---|
eas update:list |
Recent update groups, their group IDs and branches |
eas update:insights <groupId> |
Per-platform launches, failed launches, crash rate, unique users, payload size and a daily breakdown |
eas update:view <groupId> --insights |
The group's details with the same metrics added |
eas channel:insights --channel <name> --runtime-version <version> |
Embedded and OTA user counts, most popular updates and cumulative metrics for a channel and runtime |
All four support --json --non-interactive, and the skill tells the agent to pass both when scripting. For the three insights commands, the time window defaults to 7 days, set with --days or with --start and --end. The EAS CLI reference documents the same flags.
Reading the numbers. The skill explains the fields that matter. crashRatePercent is "computed as failedInstalls / (installs + failedInstalls) * 100." installs and uniqueUsers show adoption, and the daily series helps spot a sudden spike. On channels, embeddedUpdateTotalUniqueUsers counts users still on the binary's bundled code.
Ready-made workflows. It includes shell recipes the agent can adapt:
- Grab the latest group on the production branch and check crash rate per platform after some adoption time
- Compare embedded and OTA adoption across the production and staging channels
- Flag a regression in the last 24 hours by selecting platforms with a crash rate above 1 percent
- Print 30 days of group metrics for release notes or an incident review
The JSON recipes pipe through jq. It also lists error messages and what they mean, such as a group ID that doesn't exist or an old eas-cli that needs npm install -g eas-cli@latest.
Reference files. references/update-insights-schema.md and references/channel-insights-schema.md hold the full JSON schemas, and agents/openai.yaml gives Codex a display name and default prompt. The frontmatter pre-approves eas commands with allowed-tools: "Bash(eas *)"; in Claude Code, the skills docs say such a grant lets Claude use those tools without asking during the turn that invokes the skill.
How do you install it?
Expo's README recommends the plugin for Claude Code and Codex, and the skills CLI for other agents. The Expo skills docs cover the same routes.
Claude Code plugin (all Expo skills plus the Expo MCP server).
claude plugin install expo@claude-plugins-official
You can also run /plugin install expo@claude-plugins-official inside Claude Code. The plugin comes from Anthropic's official plugin marketplace; see Claude Code plugins.
Codex plugin.
codex plugin add expo@openai-curated
Just this skill, with the skills CLI. The command on skills.sh:
npx skills add https://github.com/expo/skills --skill eas-update-insights
Then make sure the EAS CLI is ready, as the skill requires:
npm install -g eas-cli
eas login
The skills CLI puts the skill in .claude/skills/eas-update-insights/ for Claude Code, or ~/.claude/skills/eas-update-insights/ with -g, the standard Claude Code skill locations. Codex and Cursor read the same SKILL.md format; see Codex skills and Cursor skills.
How do you use it?
Ask a plain question about an update or channel. The skill finds the IDs, runs the commands and summarizes.
Example prompts (suggestions; the SKILL.md lists similar ones such as "How is the latest update doing?"):
Is the update I just published to production healthy on both iOS and Android?How many users on runtime 1.0.6 are still on the embedded build versus OTA?Compare the crash rate of the latest production update with the previous one.Write a CI step that fails if the latest update's crash rate goes above 1 percent.Summarize the last 30 days of metrics for this update group for our release notes.
For the CI case, see Claude Code GitHub Actions if you run your agent in a workflow.
Tips and limits
From the SKILL.md, Expo's docs and skills.sh, not from testing:
- Costs apply. The skill's opening note says EAS Update is "a paid Expo Application Services product with free-tier limits," and that update delivery and the data behind these commands count against your plan's EAS Update usage. Check Expo's pricing page before relying on it in CI.
- Numbers lag. Fresh publishes may show zeros for a while. Installs count downloads of the manifest and launch asset, and a confirmed run only registers on the next update check, which the skill says is "typically up to 24h later."
- Crashes are self-reported. A crash that kills the process before the app makes another update request won't show up.
- Unique users can double-count. A user on both iOS and Android may count twice, and
otaTotalUniqueUsersis a sum of the top updates the server returns, so it may undercount OTA reach when many updates are active. - Aggregate only. It is not for per-user or device-level crash reports.
- Extra frontmatter field. The SKILL.md includes a
versionfield, which is not one of the six fields the Claude Code skills docs list for claude.ai skill uploads. The docs say an upload with any other field fails with an error, so remove that line before uploading it there. - Feedback command. The skill tells the agent it can send feedback to Expo with
npx --yes @expo/agent-cli@latest feedback, only when it has something specific to report. Watch for it if you don't want anything sent. - Audits. On 24 October 2026, skills.sh showed Pass from Gen Agent Trust Hub, Socket and Snyk, all three audits dated 22 October 2026.
- License. MIT, stated in the SKILL.md frontmatter and in the LICENSE files at the repo root and in
plugins/expo.
Save it in your Kipt library
In Kipt, open Skills and paste the skill's GitHub folder link into the import box; it reads the SKILL.md, both schema files and agents/openai.yaml. Paste the repo link instead and Kipt shows a list of Expo skills to pick from, so you can add the other EAS skills in the same pass. Your library stays in a private GitHub repo you own and installs into Claude Code or Codex with one command:
npx skills add https://github.com/<you>/<repo>.git --all -g
Kipt is not affiliated with Expo.
Similar skills
- Expo skill (expo-dev-client): Expo's most installed skill, for development builds through EAS Build or locally.
- Expo module skill: Expo's skill for native modules, a change that needs a new build rather than an OTA update.
- React Native skill: Vercel's React Native and Expo rules for the JavaScript you ship in each update.
- Expo native UI skill: Expo's skill for native-feeling screens.