Kipt

EAS Update Insights skill: check OTA update health from your agent

Expo's eas-update-insights skill lets your coding agent check EAS Update health: crash rates, launches, unique users and the embedded vs OTA split. Install it.

By the Kipt team · Updated 24 October 2026

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 otaTotalUniqueUsers is 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 version field, 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

Questions

What is the eas-update-insights skill?

eas-update-insights is an official Agent Skill from Expo in the expo/skills repo. It teaches a coding agent to check the health of published EAS Update releases from the terminal: crash rates, launch counts, unique users, payload size and the split between embedded and over-the-air users per channel. It is MIT licensed.

How do I install the eas-update-insights skill?

For Claude Code, Expo recommends the plugin: claude plugin install expo@claude-plugins-official, which installs every Expo skill and the Expo MCP server. For Codex, run codex plugin add expo@openai-curated. For this skill only, run npx skills add https://github.com/expo/skills --skill eas-update-insights.

Which commands does the skill use?

It uses four EAS CLI commands: eas update:list to find update group IDs, eas update:insights for per-platform metrics on one group, eas update:view with --insights to add those metrics to the group details, and eas channel:insights for embedded and OTA user counts on a channel and runtime version.

Does the eas-update-insights skill cost money?

The skill itself is free and MIT licensed, but it opens with a note that 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.dev/pricing for current plans.

Can it show which users crashed?

No. The skill says not to use it for per-user crash detail or device-level reporting, because it only exposes aggregate EAS metrics. Crashes are also self-reported on the next update check, so a crash that never triggers another update request won't appear.

More in Skill directory

All guides

Keep your prompts and skills in one place, in your own GitHub. Install every skill with one command.

Get started

Kipt is an independent product, not affiliated with or endorsed by Anthropic, OpenAI, Cursor or GitHub. Claude, ChatGPT, Codex, Cursor and GitHub are trademarks of their owners.