eas-observe

Instrument Expo apps with expo-observe and query performance metrics via the EAS CLI.

Updated Sep 11, 2026
One-click install
npx skills add https://github.com/CYRUS-pinto/pi-bot --skill eas-observe-cyrus-pinto
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: eas-observe
Source: https://github.com/CYRUS-pinto/pi-bot/tree/main/.agents/skills/eas-observe
Command: npx skills add https://github.com/CYRUS-pinto/pi-bot --skill eas-observe-cyrus-pinto

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires expo-observe, eas-cli, and includes references (resource) components.

What problem does it solve? Mobile teams shipping Expo apps lack visibility into real-world startup and navigation performance. This Skill guides adding EAS Observe instrumentation to an Expo project, querying the collected metrics from the terminal, and interpreting cold launch, TTR, and TTI results to diagnose slow startups. ## Core Features & Use Cases - Project instrumentation: Add expo-observe to an Expo app with the correct SDK-specific API (AppMetricsRoot on SDK 55, ObserveRoot and useObserve on SDK 56+), plus per-route navigation metrics via Expo Router or React Navigation integrations. - CLI querying: Run the six eas observe:* commands (metrics-summary, metrics, routes, events, session, versions) with correct flags, aliases, pagination, and JSON output shapes. - Metrics interpretation: Read TTI frame-rate, device, and network params to distinguish slow-but-smooth launches from main-thread contention, hard freezes, or throttled devices. - Use Case: After users report slow startup, run eas observe:metrics tti --sort slowest --days 7, pull a sessionId from the JSON output, and replay the full session timeline with eas observe:session to find the blocking request. ## Quick Start Use the eas-observe skill to add expo-observe instrumentation to my Expo Router app and show me the slowest TTI samples from the last 7 days.

Frequently Asked Questions about eas-observe

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add EAS Observe to an Expo project?

Install expo-observe with npx expo install, wrap your root layout with AppMetricsRoot.wrap (SDK 55) or ObserveRoot.wrap (SDK 56+), and call markInteractive() once the screen is usable. You need an EAS project and a development or production build, since it does not work in Expo Go.

How do I query EAS Observe metrics from the terminal?

Use the six eas observe:* commands: metrics-summary for per-version aggregates, metrics for individual samples, routes for per-route navigation stats, events for custom logEvent data, session for a full session timeline, and versions for the app version hierarchy. All support --days, --platform, and --json.

Does expo-observe work in Expo Go?

No. expo-observe is a native library, so it requires a development build or a production build created with eas build. Metrics collected from debug builds are also not dispatched unless you set configure({ dispatchInDebug: true }).

What is the difference between TTR and TTI in EAS Observe?

TTR (time to first render) is measured automatically when the root is wrapped with the Observe HOC, targeting under 2 seconds. TTI (time to interactive) is not automatic; you must call markInteractive() once the screen is genuinely usable, targeting under 3 seconds including cold launch.

Why is my EAS Observe query rejected with a plan upgrade error?

EAS Observe is a paid EAS service, and the server rejects queries the account's plan does not include with EAS_OBSERVE_PLAN_UPGRADE_REQUIRED or EAS_OBSERVE_FEATURE_NOT_AVAILABLE_IN_FREE_TIER. The free plan allows up to 10,000 monthly active users with limited features.

Does EAS Observe replace a crash reporter like Sentry?

No. EAS Observe records errors as non-fatal exception events via a global handler, ObserveErrorBoundary, and Observe.reportError, but it has no crash reporting. Use Sentry or BugSnag alongside it for crash reporting.