About eas-observe
A skill for Expo developers using EAS Observe to monitor production app performance and errors. It explains instrumentation, metric queries through the CLI or Expo MCP Server, and interpreting results.
Key features
- 01Track startup and navigation performance
- 02Record custom events and errors
- 03Query metrics with EAS CLI
- 04Query metrics through Expo MCP Server
- 05Interpret performance metrics
Use cases
- 01Investigate slow app startup
- 02Review route and session metrics
- 03Find JavaScript errors and native crashes
- 04Inspect events reported by library integrations
MCP support
The skill documents querying EAS Observe through the Expo MCP Server's `observe_*` tools, including how their inputs differ from CLI flags.
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ expo/ skills --skill eas-observeAfter installing, type/eas-observein Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
agents/openai.yamlreferences/library-integrations.mdmetrics.mdqueries.mdsetup.mdthird-party.mdDetails
From the project READMEEAS Observe
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.
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/ — 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.
Which reference to read
The five reference files in ./references/ cover what people typically need this skill for:
- Adding EAS Observe to a project →
./references/setup.md. Install, wrap the root layout (AppMetricsRooton SDK 55,ObserveRooton SDK 56+), mark the app interactive (globalmarkInteractive()on SDK 55, theuseObserve()hook or<ObserveInteractiveMarker />on SDK 56+), optional per-route navigation metrics through the Expo Router / React Navigation integrations, user-defined events viaObserve.logEvent(SDK 56+), error reporting, and runtime configuration (sampling, dispatch, environments, custom endpoint). - Querying metrics from the terminal →
./references/queries.md. Theeas observe:*commands —metrics-summary,metrics,routes,events,session,versions,errors,event— with flags, metric aliases, table layouts, JSON shapes, and common workflows. Also the matchingobserve_*tools in the Expo MCP Server, and how their inputs differ from the CLI flags. - Reading a dashboard or CLI output →
./references/metrics.md. 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. - Reporting problems from library integrations →
./references/library-integrations.md. 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.oversizedevents for images decoded far larger than the screen) andreact-native-reanimated(reanimated.errorerrors and optionalreanimated.warningevents). - Shipping an Observe integration in a library →
./references/third-party.md. For package authors only (SDK 57+): optional peer dependency, config declaration merging,Observe.registerIntegration(), and event naming.
Quick links to the docs
- Get started: https://docs.expo.dev/eas/observe/get-started/
- Dashboard guide: https://docs.expo.dev/eas/observe/dashboard/
- Querying with EAS CLI: https://docs.expo.dev/eas/observe/eas-cli/
- Querying with the Expo MCP Server: https://docs.expo.dev/eas/observe/mcp/
- Metrics reference: https://docs.expo.dev/eas/observe/reference/metrics/
- Expo Router integration: https://docs.expo.dev/eas/observe/integrations/expo-router/
- React Navigation integration: https://docs.expo.dev/eas/observe/integrations/react-navigation/
- Expo Image integration: https://docs.expo.dev/eas/observe/integrations/expo-image/
- Reanimated integration: https://docs.expo.dev/eas/observe/integrations/react-native-reanimated/
- User-defined events: https://docs.expo.dev/eas/observe/events/
- Error reporting: https://docs.expo.dev/eas/observe/errors/
- Configuration: https://docs.expo.dev/eas/observe/configuration/
- Third-party integrations: https://docs.expo.dev/eas/observe/integrations/third-party/
- EAS Update download performance: https://docs.expo.dev/eas/observe/eas-update/
- Troubleshooting: https://docs.expo.dev/eas/observe/reference/troubleshooting/
Submitting Feedback
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.