mcpbeat

Eas Observe

expo/eas-observe

EAS service (paid). Use for anything related to EAS Observe - adding `expo-observe` to an Expo project (AppMetricsRoot/ObserveRoot HOC, markInteractive, the useObserve hook, the Expo Router / React Navigation integrations for per-route metrics, and user-defined events via `Observe.logEvent`), querying via the EAS CLI (`eas observe:metrics-summary`, `observe:metrics`, `observe:routes`, `observe:events`, `observe:versions`), or interpreting the resulting metrics (cold/warm launch, TTR, TTI, navigation cold/warm TTR, update download, and the TTI frameRate params for triaging slow startups).

8k tokens
context cost
the whole folder, loaded on every use
5
files
instructions only
0
copies elsewhere
how many repositories repackaged it
2356
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/expo/skills --skill eas-observe

What comes with it

30 073 bytes besides the instruction
agents/openai.yaml
references/metrics.md
references/queries.md
references/setup.md

The instruction itself

4 sections, as written by the author

EAS Observe

> EAS service - costs apply. EAS Observe is a paid Expo Application Services product with free-tier limits. Ingesting and querying production metrics counts against your plan's event/usage allowance. Review https://expo.dev/pricing before enabling it in production.

EAS Observe tracks startup, navigation, and custom-event performance from production Expo apps.

> 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 three reference files in ./references/ cover the three things people typically need this skill for:

  • Adding EAS Observe to a project./references/setup.md. Install, wrap the root layout (AppMetricsRoot on SDK 55, ObserveRoot on SDK 56+), call markInteractive() (global on SDK 55, via the useObserve() hook on SDK 56+), optional per-route navigation metrics through the Expo Router / React Navigation integrations, and user-defined events via Observe.logEvent (SDK 56+).
  • Querying metrics from the terminal./references/queries.md. The five eas observe:* commands — metrics-summary, metrics, routes, events, versions — with flags, table layouts, JSON shapes, and common workflows.
  • Reading a dashboard or CLI output./references/metrics.md. Target thresholds per metric, what the TTI frameRate.* params mean, and diagnostic patterns for telling slow-but-smooth startup apart from main-thread contention or hard blocks.
  • Get started: https://docs.expo.dev/eas/observe/get-started/
  • Dashboard guide: https://docs.expo.dev/eas/observe/dashboard/
  • 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/
  • Configuration: https://docs.expo.dev/eas/observe/configuration/

Submitting Feedback

If you encounter errors, misleading or outdated information in this skill, report it so Expo can improve:

npx --yes submit-expo-feedback@latest --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.

How to use it

Copy the folder

Take expo/eas-observe from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.

Install what it needs

The instructions reference npx. Without those the skill loads but fails at the first command.