Expo
Skill 4 of 25
Use for anything related to EAS Observe - adding expo-observe to an Expo project (AppMetricsRoot/ObserveRoot HOC, markInteractive and ObserveInteractiveMarker, the useObserve…
3 minutes · 582 words · 3 sections
Install
npx skills add expo/skills --skill eas-observenpx skills add expo/skills/plugin marketplace add expo/skillsThe first command installs just this skill, by the name in its SKILL.md; the second installs the whole repository.
EAS service - costs apply. EAS Observe is an Expo Application Services product. The free EAS plan allows up to 10,000 monthly active users, with a limited set of features; higher usage requires a paid subscription. For details, see https://expo.dev/pricing#plan-features (opens in a new tab).
EAS Observe tracks startup, navigation, and custom-event performance from production Expo apps, and records JavaScript errors and native crashes. It needs a development or production build — the native library is not in Expo Go.
Source of truth: https://docs.expo.dev/eas/observe/ (opens in a new tab) — always consult the canonical docs when API details matter, especially get-started, configuration, integrations, and the metrics reference. EAS Observe is evolving; this skill’s references are written to stay accurate but may lag the docs.
The five reference files in ./references/ cover what people typically need this skill for:
./references/setup.md (opens in a new tab). Install, wrap the root layout (AppMetricsRoot on SDK 55, ObserveRoot on SDK 56+), mark the app interactive (global markInteractive() on SDK 55, the useObserve() hook or <ObserveInteractiveMarker /> on SDK 56+), optional per-route navigation metrics through the Expo Router / React Navigation integrations, user-defined events via Observe.logEvent (SDK 56+), error reporting, and runtime configuration (sampling, dispatch, environments, custom endpoint)../references/queries.md (opens in a new tab). The eas observe:* commands — metrics-summary, metrics, routes, events, session, versions, errors, event — with flags, metric aliases, table layouts, JSON shapes, and common workflows. Also the matching observe_* tools in the Expo MCP Server, and how their inputs differ from the CLI flags../references/metrics.md (opens in a new tab). Target thresholds per metric, what the automatic TTI params mean (frameRate.*, device.*, network.*), and diagnostic patterns for telling slow-but-smooth startup apart from main-thread contention, hard blocks, or throttled devices../references/library-integrations.md (opens in a new tab). The current and future integrations that report problems a library detects as events or errors, with their options, limits, and how to query the reports. Currently: expo-image (expo-image.oversized events for images decoded far larger than the screen) and react-native-reanimated (reanimated.error errors and optional reanimated.warning events)../references/third-party.md (opens in a new tab). For package authors only (SDK 57+): optional peer dependency, config declaration merging, Observe.registerIntegration(), and event naming.If you encounter errors, misleading or outdated information in this skill, report it so Expo can improve:
npx --yes @expo/agent-cli@latest feedback --category skills --subject "eas-observe" "<actionable feedback>"Only submit when you have something specific and actionable to report. Include as much relevant context as possible.
If an agent repeatedly fails at an Expo task or the user has to step in, submit a brief report of the task, expected result, and what went wrong using --category evals and the relevant Expo package or command as --subject.
Use for anything related to EAS Observe - adding `expo-observe` to an Expo project (AppMetricsRoot/ObserveRoot HOC, markInteractive and ObserveInteractiveMarker, the useObserve hook, the Expo Router / React Navigation integrations for per-route metrics, the expo-image and Reanimated integrations, user-defined events via `Observe.logEvent`, error reporting via ObserveErrorBoundary and `Observe.reportError`, native crash reporting, source map upload for symbolicated stack traces, and runtime config such as sampleRate and dispatchInDebug), querying via the EAS CLI (`eas observe:metrics-summary`, `observe:metrics`, `observe:routes`, `observe:events`, `observe:session`, `observe:versions`, `observe:errors`, `observe:event`) or the Expo MCP `observe_*` tools, interpreting the resulting metrics (cold/warm launch, TTR, TTI, navigation cold/warm TTR, update download, and the TTI frameRate/device/network params for triaging slow startups), or shipping an Observe integration inside a third-party package.
The verbatim description from this skill’s front matter — the string an agent matches on to decide whether to load it.
plugins/expo/skills/eas-observe/SKILL.mdmain, last pushed 6 November 2026.SKILL.md, not by matching a directory convention. 3 distinct layouts observed: .claude/skills/*/SKILL.md, plugins/expo-experiments/skills/*/SKILL.md, plugins/expo/skills/*/SKILL.md.h1 and no skipped levels:.claude-plugin/marketplace.json by Expo Team, declaring 2 plugins. It is read for editorial metadata only — never as the skill index, which is always the repository tree./expo/skills.md, and each skill at its own .md URL.6 files · 70 KB
Everything this skill ships beside its prose. All of it is set here, as subchapters of skill 4.
Documentation the agent loads on demand, rather than up front.
Everything else published alongside the skill.