Skip to main content
skill CX Codex

eas-observe — Claude Code skill: EAS Observe metrics

Walks you through adding expo-observe to an Expo app, pulling startup and navigation metrics with the EAS CLI, and reading slow-startup data.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add expo/skills --skill eas-observe -a claude-code
Open on GitHub

What eas-observe does

The skill ships four references: project setup, terminal queries, reading the output, and shipping an Observe integration inside a third-party package. Setup covers wrapping the root layout (AppMetricsRoot on SDK 55, ObserveRoot on SDK 56+), marking the app interactive with markInteractive() or the useObserve() hook, user-defined events through Observe.logEvent, error reporting, and native crash reporting.

For queries you get eas observe:metrics-summary, observe:metrics, observe:routes, observe:events, observe:session, observe:versions, observe:errors and observe:event, with flags, metric aliases and JSON shapes. A separate reference explains target thresholds and the TTI params (frameRate.*, device.*, network.*) so you can tell a slow-but-smooth startup from main-thread contention.

EAS Observe is a paid Expo service. The free EAS plan allows up to 10,000 monthly active users with a limited feature set; higher usage needs a subscription. The native library is not in Expo Go, so a development or production build is required. The skill installs into Claude, Codex, Cursor, GitHub Copilot, Gemini CLI and OpenCode.

What it helps with

  • add expo-observe to an Expo project and wrap the root layout
  • mark the moment the app becomes interactive
  • pull startup and navigation metrics from the terminal
  • triage a slow startup by frame rate, device or network
  • log custom events and report errors

Example prompts for the agent

  • Add expo-observe to my project and wrap the root layout
  • Show me startup metrics for the last session with eas observe:metrics-summary
  • Why is TTI slow on some devices? Break down the frameRate and network params

How to install eas-observe

1Skills CLI (Vercel)

npx skills add expo/skills --skill eas-observe -a claude-code

2Manually: put the files in place

~/.claude/skills/eas-observe/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/eas-observe/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about eas-observe

How do I install eas-observe in Claude Code?

Run npx skills add expo/skills --skill eas-observe -a claude-code, then check that the file landed at ~/.claude/skills/eas-observe/SKILL.md.

What does eas-observe do?

It guides you through adding expo-observe to an Expo app, querying metrics with eas observe:*, and reading the results — cold and warm launch, TTR, TTI, update download.

Do I need a paid EAS plan?

EAS Observe is a paid Expo service. The free plan covers up to 10,000 monthly active users with a limited feature set; beyond that you need a subscription.

Does it work in Expo Go?

No. The native library is not in Expo Go, so you need a development or production build.

Source text

SKILL.md · MIT
---
name: eas-observe
description: 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, 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`), 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.
version: 1.2.1
license: MIT
---

# EAS 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 four reference files in `./references/` cover what people typically need this skill for:

- **Adding EAS Observe to a project** → [`./references/setup.md`](./references/setup.md). 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).
- **Querying metrics from the terminal** → [`./references/queries.md`](./references/queries.md). The `eas observe:*` commands — `metrics-summary`, `metrics`, `routes`, `events`, `session`, `versions`, `errors`, `event` — with flags, metric aliases, table layouts, JSON shapes, and common workflows.
- **Reading a dashboard or CLI output** → [`./references/metrics.md`](./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.
- **Shipping an Observe integration in a library** → [`./references/third-party.md`](./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/
- 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/
- 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:
```bash
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`.

© expo · MIT · expo/skills

Similar skills

Everything for Mobile →

From the same set22

The whole set →
eas-simulator Runs remote iOS and Android simulators in the EAS cloud and lets an AI agent control them. Useful for testing mobile apps on Linux, in CI, or inside cloud sandboxes. CX Codex +1 20,700installs expo-app-clip Adds an iOS App Clip target to Expo projects — a lightweight app invoked from a URL without App Store installation. CX Codex +1 19,800installs expo-web-to-native Guides an existing React web app into a native iOS/Android app with Expo. Use it for a staged screen-by-screen migration. CX Codex +1 19,600installs expo-migrate-module Migrates Swift Expo modules from the 1.0 DSL to the 2.0 macro API while keeping the JavaScript contract intact. Useful when adopting @ExpoModule and @JS. CX Codex +1 19,400installs eas-hosting Skill for deploying Expo web apps and API routes to EAS Hosting (Cloudflare Workers). Exports the web bundle, runs eas deploy for production and PR previews, manages environment variables and custom domains. CX Codex +1 19,200installs expo-design-system Builds and audits a design system in Expo apps by centralizing design tokens, structuring reusable components, and eliminating hardcoded styles. CX Codex +1 16,700installs expo-overview This skill routes Expo and EAS requests to the right follow-up skill. Use it before coding, SDK upgrades, or app delivery work. CX Codex +1 15,200installs eas-update Skill for configuring and publishing updates via EAS Update. Delivers JavaScript and asset changes to installed apps without rebuilding native code. CX Codex +1 10,800installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor