vybekiit 0.7.33 → 0.7.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin.js +818 -92
- package/dist/global-skills/eas-app-stores/SKILL.md +2 -2
- package/dist/global-skills/eas-hosting/SKILL.md +2 -2
- package/dist/global-skills/eas-observe/SKILL.md +7 -15
- package/dist/global-skills/eas-observe/references/queries.md +51 -10
- package/dist/global-skills/eas-observe/references/setup.md +60 -7
- package/dist/global-skills/eas-simulator/SKILL.md +2 -2
- package/dist/global-skills/eas-simulator/references/run-your-app.md +2 -0
- package/dist/global-skills/eas-update/SKILL.md +2 -2
- package/dist/global-skills/eas-update-insights/SKILL.md +2 -2
- package/dist/global-skills/eas-workflows/SKILL.md +2 -2
- package/dist/global-skills/expo-animation/SKILL.md +2 -2
- package/dist/global-skills/expo-app-clip/SKILL.md +2 -2
- package/dist/global-skills/expo-brownfield/SKILL.md +2 -2
- package/dist/global-skills/expo-data-fetching/SKILL.md +2 -2
- package/dist/global-skills/expo-design-system/SKILL.md +2 -2
- package/dist/global-skills/expo-dev-client/SKILL.md +4 -2
- package/dist/global-skills/expo-dom/SKILL.md +2 -2
- package/dist/global-skills/expo-examples/SKILL.md +2 -2
- package/dist/global-skills/expo-migrate-module/SKILL.md +2 -2
- package/dist/global-skills/expo-module/SKILL.md +2 -2
- package/dist/global-skills/expo-native-ui/SKILL.md +2 -2
- package/dist/global-skills/expo-overview/SKILL.md +9 -4
- package/dist/global-skills/expo-overview/references/launch-without-dev-menu.md +24 -0
- package/dist/global-skills/expo-project-structure/SKILL.md +2 -2
- package/dist/global-skills/expo-router/SKILL.md +2 -2
- package/dist/global-skills/expo-ui/SKILL.md +2 -2
- package/dist/global-skills/expo-upgrade/SKILL.md +2 -2
- package/dist/global-skills/expo-web-to-native/SKILL.md +2 -2
- package/dist/global-skills/expo-web-to-native/references/verify-on-device.md +1 -1
- package/dist/global-skills/firebase-app-hosting-basics/SKILL.md +16 -3
- package/dist/global-skills/firebase-app-hosting-basics/references/cli_commands.md +10 -12
- package/dist/global-skills/firebase-app-hosting-basics/references/configuration.md +2 -1
- package/dist/global-skills/firebase-basics/SKILL.md +6 -4
- package/dist/global-skills/firebase-basics/references/web_setup.md +3 -3
- package/dist/global-skills/instrument-feature-flags/references/adding-feature-flag-code.md +81 -333
- package/dist/global-skills/instrument-feature-flags/references/android.md +19 -13
- package/dist/global-skills/instrument-feature-flags/references/api.md +17 -13
- package/dist/global-skills/instrument-feature-flags/references/best-practices.md +35 -35
- package/dist/global-skills/instrument-feature-flags/references/django.md +120 -72
- package/dist/global-skills/instrument-feature-flags/references/dotnet.md +48 -102
- package/dist/global-skills/instrument-feature-flags/references/elixir.md +4 -10
- package/dist/global-skills/instrument-feature-flags/references/flask.md +55 -39
- package/dist/global-skills/instrument-feature-flags/references/flutter.md +19 -13
- package/dist/global-skills/instrument-feature-flags/references/go.md +21 -13
- package/dist/global-skills/instrument-feature-flags/references/ios.md +19 -13
- package/dist/global-skills/instrument-feature-flags/references/java.md +4 -12
- package/dist/global-skills/instrument-feature-flags/references/laravel.md +18 -16
- package/dist/global-skills/instrument-feature-flags/references/next-js.md +44 -54
- package/dist/global-skills/instrument-feature-flags/references/nodejs.md +21 -13
- package/dist/global-skills/instrument-feature-flags/references/php.md +21 -13
- package/dist/global-skills/instrument-feature-flags/references/python.md +22 -14
- package/dist/global-skills/instrument-feature-flags/references/react-native.md +18 -13
- package/dist/global-skills/instrument-feature-flags/references/react.md +21 -14
- package/dist/global-skills/instrument-feature-flags/references/ruby-on-rails.md +31 -68
- package/dist/global-skills/instrument-feature-flags/references/ruby.md +21 -13
- package/dist/global-skills/instrument-feature-flags/references/rust.md +10 -34
- package/dist/global-skills/instrument-feature-flags/references/usage.md +94 -114
- package/dist/global-skills/instrument-feature-flags/references/web.md +21 -13
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-android.md +7 -7
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-expo.md +2 -2
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-fastapi.md +1 -1
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-flask.md +1 -1
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-laravel.md +2 -2
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-php.md +1 -1
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-python.md +1 -1
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-ruby.md +1 -1
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-swift.md +4 -4
- package/dist/global-skills/instrument-product-analytics/references/android.md +64 -109
- package/dist/global-skills/instrument-product-analytics/references/angular.md +32 -28
- package/dist/global-skills/instrument-product-analytics/references/astro.md +29 -34
- package/dist/global-skills/instrument-product-analytics/references/configuration.md +27 -42
- package/dist/global-skills/instrument-product-analytics/references/django.md +120 -72
- package/dist/global-skills/instrument-product-analytics/references/dotnet.md +48 -102
- package/dist/global-skills/instrument-product-analytics/references/elixir.md +25 -50
- package/dist/global-skills/instrument-product-analytics/references/flask.md +55 -39
- package/dist/global-skills/instrument-product-analytics/references/flutter.md +94 -96
- package/dist/global-skills/instrument-product-analytics/references/go.md +39 -77
- package/dist/global-skills/instrument-product-analytics/references/identify-users.md +24 -26
- package/dist/global-skills/instrument-product-analytics/references/ios.md +22 -22
- package/dist/global-skills/instrument-product-analytics/references/laravel.md +18 -16
- package/dist/global-skills/instrument-product-analytics/references/next-js.md +44 -54
- package/dist/global-skills/instrument-product-analytics/references/nuxt-js-3-6.md +32 -34
- package/dist/global-skills/instrument-product-analytics/references/nuxt-js.md +36 -36
- package/dist/global-skills/instrument-product-analytics/references/php.md +42 -87
- package/dist/global-skills/instrument-product-analytics/references/posthog-python.md +15 -12
- package/dist/global-skills/instrument-product-analytics/references/python.md +106 -154
- package/dist/global-skills/instrument-product-analytics/references/react-native.md +97 -176
- package/dist/global-skills/instrument-product-analytics/references/react-router-v6.md +29 -40
- package/dist/global-skills/instrument-product-analytics/references/react-router-v7-data-mode.md +29 -38
- package/dist/global-skills/instrument-product-analytics/references/react-router-v7-declarative-mode.md +29 -40
- package/dist/global-skills/instrument-product-analytics/references/react-router-v7-framework-mode.md +32 -37
- package/dist/global-skills/instrument-product-analytics/references/ruby-on-rails.md +31 -68
- package/dist/global-skills/instrument-product-analytics/references/ruby.md +40 -96
- package/dist/global-skills/instrument-product-analytics/references/svelte.md +34 -34
- package/dist/global-skills/instrument-product-analytics/references/tanstack-start.md +19 -19
- package/dist/global-skills/instrument-product-analytics/references/usage.md +94 -114
- package/dist/global-skills/instrument-product-analytics/references/vue-js.md +33 -45
- package/dist/global-skills/manifest.json +2 -1
- package/dist/global-skills/mongodb-search-and-ai/SKILL.md +40 -22
- package/dist/global-skills/mongodb-search-and-ai/references/automated-embedding.md +8 -2
- package/dist/global-skills/mongodb-search-and-ai/references/quick-start.md +725 -0
- package/dist/global-skills/mongodb-search-and-ai/scripts/quickstart_complete.py +386 -0
- package/dist/global-skills/neon/SKILL.md +15 -10
- package/dist/global-skills/neon/references/claimable-neon.md +2 -0
- package/dist/global-skills/neon-functions/SKILL.md +12 -11
- package/dist/global-skills/neon-functions/references/sse.md +2 -2
- package/dist/global-skills/neon-object-storage/SKILL.md +5 -4
- package/dist/global-skills/neon-postgres/SKILL.md +4 -1
- package/dist/global-skills/neon-realtime/SKILL.md +207 -0
- package/dist/global-skills/neon-realtime/references/mutations.md +743 -0
- package/dist/global-skills/neon-realtime/references/queries.md +509 -0
- package/dist/global-skills/neon-realtime/references/reactivity.md +407 -0
- package/dist/global-skills/neon-realtime/references/ssr.md +695 -0
- package/dist/global-skills/neon-realtime/references/subscribing.md +485 -0
- package/dist/global-skills/resend/SKILL.md +4 -2
- package/dist/global-skills/resend/references/inboxes.md +377 -0
- package/dist/global-skills/resend/references/webhooks.md +9 -0
- package/dist/global-skills/stripe-best-practices/SKILL.md +1 -1
- package/dist/global-skills/stripe-best-practices/references/connect.md +1 -1
- package/dist/global-skills/stripe-best-practices/references/security.md +9 -9
- package/dist/global-skills/vybekiitReferences/backend/AGENTS.md +1 -1
- package/dist/global-skills/vybekiitReferences/backend/agent/goal-routes.json +303 -18
- package/dist/global-skills/vybekiitReferences/extension/AGENTS.md +1 -1
- package/dist/global-skills/vybekiitReferences/extension/agent/goal-routes.json +352 -18
- package/dist/global-skills/vybekiitReferences/mobile/AGENTS.md +1 -1
- package/dist/global-skills/vybekiitReferences/mobile/agent/goal-routes.json +413 -22
- package/dist/global-skills/vybekiitReferences/spa/AGENTS.md +1 -1
- package/dist/global-skills/vybekiitReferences/spa/agent/goal-routes.json +391 -21
- package/dist/global-skills/vybekiitReferences/web/AGENTS.md +14 -2
- package/dist/global-skills/vybekiitReferences/web/agent/goal-routes.json +490 -32
- package/package.json +8 -8
|
@@ -171,7 +171,7 @@ Check the CLI version before interpreting a missing command: these submission co
|
|
|
171
171
|
## Submitting Feedback
|
|
172
172
|
If you encounter errors, misleading or outdated information in this skill, report it so Expo can improve:
|
|
173
173
|
```bash
|
|
174
|
-
npx --yes
|
|
174
|
+
npx --yes @expo/agent-cli@latest feedback --category skills --subject "eas-app-stores" "<actionable feedback>"
|
|
175
175
|
```
|
|
176
176
|
Only submit when you have something specific and actionable to report. Include as much relevant context as possible.
|
|
177
|
-
If an
|
|
177
|
+
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`.
|
|
@@ -426,7 +426,7 @@ export async function GET(request: Request) {
|
|
|
426
426
|
## Submitting Feedback
|
|
427
427
|
If you encounter errors, misleading or outdated information in this skill, report it so Expo can improve:
|
|
428
428
|
```bash
|
|
429
|
-
npx --yes
|
|
429
|
+
npx --yes @expo/agent-cli@latest feedback --category skills --subject "eas-hosting" "<actionable feedback>"
|
|
430
430
|
```
|
|
431
431
|
Only submit when you have something specific and actionable to report. Include as much relevant context as possible.
|
|
432
|
-
If an
|
|
432
|
+
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`.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: eas-observe
|
|
3
|
-
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`, 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`), 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.
|
|
4
|
-
version: 1.1
|
|
3
|
+
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.
|
|
4
|
+
version: 1.2.1
|
|
5
5
|
license: MIT
|
|
6
6
|
disable-model-invocation: true
|
|
7
7
|
---
|
|
@@ -10,7 +10,7 @@ disable-model-invocation: true
|
|
|
10
10
|
|
|
11
11
|
> **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.
|
|
12
12
|
|
|
13
|
-
EAS Observe tracks startup, navigation, and custom-event performance from production Expo apps. It needs a development or production build — the native library is not in Expo Go.
|
|
13
|
+
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.
|
|
14
14
|
|
|
15
15
|
> **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.
|
|
16
16
|
|
|
@@ -19,7 +19,7 @@ EAS Observe tracks startup, navigation, and custom-event performance from produc
|
|
|
19
19
|
The four reference files in `./references/` cover what people typically need this skill for:
|
|
20
20
|
|
|
21
21
|
- **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).
|
|
22
|
-
- **Querying metrics from the terminal** → [`./references/queries.md`](./references/queries.md). The
|
|
22
|
+
- **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.
|
|
23
23
|
- **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.
|
|
24
24
|
- **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.
|
|
25
25
|
|
|
@@ -32,24 +32,16 @@ The four reference files in `./references/` cover what people typically need thi
|
|
|
32
32
|
- Expo Router integration: https://docs.expo.dev/eas/observe/integrations/expo-router/
|
|
33
33
|
- React Navigation integration: https://docs.expo.dev/eas/observe/integrations/react-navigation/
|
|
34
34
|
- User-defined events: https://docs.expo.dev/eas/observe/events/
|
|
35
|
+
- Error reporting: https://docs.expo.dev/eas/observe/errors/
|
|
35
36
|
- Configuration: https://docs.expo.dev/eas/observe/configuration/
|
|
36
37
|
- Third-party integrations: https://docs.expo.dev/eas/observe/integrations/third-party/
|
|
37
38
|
- EAS Update download performance: https://docs.expo.dev/eas/observe/eas-update/
|
|
38
39
|
- Troubleshooting: https://docs.expo.dev/eas/observe/reference/troubleshooting/
|
|
39
40
|
|
|
40
|
-
## Known gaps between the docs and the shipped code
|
|
41
|
-
|
|
42
|
-
Verified against `eas-cli` 21.8.0 and `expo-observe` 57.0.9. Trust this skill's references over the docs on these points, but re-check with `--help` and the installed package before relying on them:
|
|
43
|
-
|
|
44
|
-
- All six CLI commands are on the [Querying with EAS CLI](https://docs.expo.dev/eas/observe/eas-cli/) page. Older doc builds list only four and omit `observe:routes` and `observe:session`.
|
|
45
|
-
- Navigation metric aliases are `nav_cold_ttr`, `nav_warm_ttr`, and `nav_tti`. There are no bare `cold_ttr` / `warm_ttr` aliases in the CLI.
|
|
46
|
-
- Sorting uses `--sort <slowest|fastest|newest|oldest>`. There is no `--order` flag.
|
|
47
|
-
- `ObserveErrorBoundary`, `Observe.reportError`, and `configure({ errorHandlingEnabled })` are exported but undocumented. Observe still has no crash reporting; use Sentry or BugSnag for that.
|
|
48
|
-
|
|
49
41
|
## Submitting Feedback
|
|
50
42
|
If you encounter errors, misleading or outdated information in this skill, report it so Expo can improve:
|
|
51
43
|
```bash
|
|
52
|
-
npx --yes
|
|
44
|
+
npx --yes @expo/agent-cli@latest feedback --category skills --subject "eas-observe" "<actionable feedback>"
|
|
53
45
|
```
|
|
54
46
|
Only submit when you have something specific and actionable to report. Include as much relevant context as possible.
|
|
55
|
-
If an
|
|
47
|
+
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`.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# EAS Observe CLI
|
|
2
2
|
|
|
3
|
-
EAS Observe collects app performance telemetry and custom events from Expo apps and exposes them through
|
|
3
|
+
EAS Observe collects app performance telemetry and custom events from Expo apps and exposes them through the `eas observe:*` commands. The CLI changes between releases, so treat `--help` as the source of truth: run `eas observe --help` to list the commands the installed CLI has, and `eas observe:<command> --help` for a command's current flags.
|
|
4
4
|
|
|
5
5
|
> Source: https://docs.expo.dev/eas/observe/eas-cli/ — the canonical CLI page. This reference adds table layouts, JSON output shapes, and pagination details that the docs page does not cover.
|
|
6
6
|
|
|
@@ -14,18 +14,22 @@ EAS Observe collects app performance telemetry and custom events from Expo apps
|
|
|
14
14
|
| `eas observe:events` | Custom events emitted by the app via `logEvent` — name summary, all events, or filtered by event name (paginated) |
|
|
15
15
|
| `eas observe:session` | Full timeline of metric and log events for one session |
|
|
16
16
|
| `eas observe:versions` | App version hierarchy with build numbers, OTA update IDs, and event counts |
|
|
17
|
+
| `eas observe:errors` | Error groups by fingerprint; `--fingerprint <id>` lists one group's occurrences with stack traces |
|
|
18
|
+
| `eas observe:event` | One metric, log, or error event by its ID, taken from the `--json` output of `observe:session`, `observe:metrics`, or `observe:events`, or from the occurrences listed by `observe:errors --fingerprint` |
|
|
17
19
|
|
|
18
|
-
|
|
20
|
+
All commands take these flags:
|
|
19
21
|
|
|
20
|
-
All six commands share these flags:
|
|
21
|
-
|
|
22
|
-
- `--start <ISO date>` and `--end <ISO date>` — explicit time range
|
|
23
|
-
- `--days <N>` — show data from the last N days (mutually exclusive with `--start`/`--end`, minimum 1)
|
|
24
22
|
- `--project-id <id>` — run against a specific project without needing a project directory. When passed, the command will not try to create a new EAS project where one is unneeded.
|
|
25
23
|
- `--json` — machine-readable output (implies `--non-interactive`)
|
|
26
24
|
- `--non-interactive` — fail instead of prompting
|
|
27
25
|
|
|
28
|
-
|
|
26
|
+
All commands **except `observe:event`** also take these flags:
|
|
27
|
+
|
|
28
|
+
- `--start <ISO date>` and `--end <ISO date>` — explicit time range
|
|
29
|
+
- `--days <N>` — show data from the last N days (mutually exclusive with `--start`/`--end`, minimum 1)
|
|
30
|
+
- `--environment <name>` — filter by environment, for example `production` or `development`
|
|
31
|
+
|
|
32
|
+
`--platform <android|ios|ipados|macos|tvos|apple>` (default: all) is on every command **except `observe:session` and `observe:event`**, which are scoped to one session or one event already. `apple` covers iOS, iPadOS, tvOS, and macOS.
|
|
29
33
|
|
|
30
34
|
Default time range is the last 60 days when none of `--days`, `--start`, `--end` is given.
|
|
31
35
|
|
|
@@ -86,7 +90,7 @@ eas observe:metrics-summary --metric tti --days 14 --platform ios
|
|
|
86
90
|
|
|
87
91
|
**Default stats:** `median` + `eventCount` in the table; all eight in JSON.
|
|
88
92
|
|
|
89
|
-
This command has no `--limit`, `--after`, `--app-version`, or `--update-id`. It always aggregates every version in the time range.
|
|
93
|
+
This command has no `--limit`, `--after`, `--app-version`, `--build-number`, or `--update-id`. It always aggregates every version in the time range.
|
|
90
94
|
|
|
91
95
|
**Table layout:**
|
|
92
96
|
- One table per metric (with merged value + event count cells, e.g. `0.45s (150)`)
|
|
@@ -141,6 +145,7 @@ eas observe:metrics tti --after <cursor>
|
|
|
141
145
|
- `--limit <N>` — samples per page (default 10, max 100)
|
|
142
146
|
- `--after <cursor>` — pagination cursor from the previous run
|
|
143
147
|
- `--app-version <version>` — filter by app version string
|
|
148
|
+
- `--build-number <number>` — filter by app build number
|
|
144
149
|
- `--update-id <id>` — filter by EAS update ID
|
|
145
150
|
|
|
146
151
|
**Table layout:**
|
|
@@ -179,7 +184,7 @@ eas observe:routes --after <cursor>
|
|
|
179
184
|
- `--limit <N>` — routes per page (default **50**, max **200**, different from `metrics`/`events` which default to 10).
|
|
180
185
|
- `--after <cursor>` — pagination cursor from the previous run.
|
|
181
186
|
- `--app-version <version>` — filter by app version string.
|
|
182
|
-
- `--build-number <number>` — filter by app build number
|
|
187
|
+
- `--build-number <number>` — filter by app build number.
|
|
183
188
|
- `--route-name <name>` — filter by route name. Repeatable; only the listed routes are returned across both platforms. Duplicates are de-duplicated; omitting the flag returns all routes.
|
|
184
189
|
- `--update-id <id>` — filter by EAS update ID.
|
|
185
190
|
|
|
@@ -242,6 +247,7 @@ eas observe:events login_failed --after <cursor>
|
|
|
242
247
|
- `--all-events` — when no event name argument is given, list all events instead of the name summary. Cannot be combined with an event name argument.
|
|
243
248
|
- `--session-id <id>` — filter to events from a single session (events-only). With no event name argument, this lists the session's events instead of the event-name summary. For the full timeline — metrics as well as log events — use `observe:session`.
|
|
244
249
|
- `--app-version <version>` — filter by app version string
|
|
250
|
+
- `--build-number <number>` — filter by app build number
|
|
245
251
|
- `--update-id <id>` — filter by EAS update ID
|
|
246
252
|
- `--limit <N>` — events per page (default 10, max 100)
|
|
247
253
|
- `--after <cursor>` — pagination cursor
|
|
@@ -307,7 +313,7 @@ eas observe:session --event-name tti --sort slowest --days 7
|
|
|
307
313
|
|
|
308
314
|
**The picker flags and the session ID are mutually exclusive.** `--event-name`, `--sort`, `--days`, `--start`, and `--end` describe how to *find* a session, so passing any of them together with a session ID throws. Query a known session with the ID alone.
|
|
309
315
|
|
|
310
|
-
This command has no `--platform`, `--limit`, or `--after` flag. It takes the shared time-range, `--project-id`, `--json`, and `--non-interactive` flags.
|
|
316
|
+
This command has no `--platform`, `--limit`, or `--after` flag. It takes the shared time-range, `--environment`, `--project-id`, `--json`, and `--non-interactive` flags.
|
|
311
317
|
|
|
312
318
|
**JSON output shape:**
|
|
313
319
|
```json
|
|
@@ -322,6 +328,41 @@ This command has no `--platform`, `--limit`, or `--after` flag. It takes the sha
|
|
|
322
328
|
|
|
323
329
|
`entries` interleaves metric and log events for the session. The two `hasMore*` flags report truncation per event kind; there is no cursor to page with.
|
|
324
330
|
|
|
331
|
+
## `eas observe:errors`
|
|
332
|
+
|
|
333
|
+
Shows error and exception groups, grouped by fingerprint, with event, user, and session counts for each group. The fingerprint is in the first column. Pass `--fingerprint` to list the occurrences of one group, with stack traces, instead of the grouped summary. Error reporting setup is in [`./setup.md`](./setup.md).
|
|
334
|
+
|
|
335
|
+
```bash
|
|
336
|
+
# Error groups, last 7 days
|
|
337
|
+
eas observe:errors --days 7
|
|
338
|
+
|
|
339
|
+
# Only fatal errors on Android
|
|
340
|
+
eas observe:errors --severity fatal --platform android
|
|
341
|
+
|
|
342
|
+
# Occurrences of one group, with stack traces
|
|
343
|
+
eas observe:errors --fingerprint <fingerprint>
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
**Errors-specific flags:**
|
|
347
|
+
- `--fingerprint <value>` — show the occurrences of this error group instead of the grouped summary
|
|
348
|
+
- `--severity <fatal|error>` — filter by severity (ignored when `--fingerprint` is set)
|
|
349
|
+
- `--app-version <version>`, `--build-number <number>`, `--update-id <id>` — filter by version, build, or EAS update
|
|
350
|
+
- `--limit <N>` — occurrences per page (default 10, max 100). Requires `--fingerprint`.
|
|
351
|
+
- `--after <cursor>` — pagination cursor. Requires `--fingerprint`.
|
|
352
|
+
|
|
353
|
+
`--limit` or `--after` without `--fingerprint` fails with an error. The grouped summary has no pagination.
|
|
354
|
+
|
|
355
|
+
## `eas observe:event`
|
|
356
|
+
|
|
357
|
+
Shows one metric, log, or error event by its ID. Event IDs are in the `--json` output of `observe:metrics`, `observe:events`, and `observe:session`, and in the occurrences from `observe:errors --fingerprint`.
|
|
358
|
+
|
|
359
|
+
```bash
|
|
360
|
+
eas observe:event <event-id>
|
|
361
|
+
eas observe:event <event-id> --json
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
`ID` is a required positional argument. The command takes only `--project-id`, `--json`, and `--non-interactive`.
|
|
365
|
+
|
|
325
366
|
## `eas observe:versions`
|
|
326
367
|
|
|
327
368
|
Shows app version hierarchy with build numbers, OTA update IDs, and event counts per version.
|
|
@@ -403,15 +403,17 @@ User-defined events are persisted on-device, batched, and dispatched on the next
|
|
|
403
403
|
|
|
404
404
|
User-defined events appear under the **Events** tab in the Observe dashboard, and are queryable from the terminal with `eas observe:events` — see [`./queries.md`](./queries.md).
|
|
405
405
|
|
|
406
|
-
## Optional — error reporting
|
|
406
|
+
## Optional — error and crash reporting
|
|
407
407
|
|
|
408
|
-
`expo-observe` records errors
|
|
408
|
+
`expo-observe` records JavaScript errors and native crashes alongside the performance metrics. Errors are persisted on-device, batched, and dispatched on the next flush. They appear on the **Observe > Errors** page of the dashboard. Docs: https://docs.expo.dev/eas/observe/errors/
|
|
409
409
|
|
|
410
|
-
>
|
|
410
|
+
> Error reporting is in **preview** and requires SDK 57+. Native crashes additionally require `expo-observe` 57.0.21+.
|
|
411
411
|
|
|
412
|
-
|
|
412
|
+
JavaScript errors arrive by three paths.
|
|
413
413
|
|
|
414
|
-
**
|
|
414
|
+
**1. Unhandled JS errors — automatic.** A global `ErrorUtils` handler is installed when the package is first imported, which is earlier than any `configure()` call, so errors thrown before configuration are still recorded. React Native's own behavior is unchanged: the red box in development and fatal termination in production still happen. Turn the recording off with `configure({ errorHandlingEnabled: false })`. This only affects unhandled JS errors — boundary errors, `reportError` calls, and native crashes are still recorded.
|
|
415
|
+
|
|
416
|
+
**2. Render-phase errors — `<ObserveErrorBoundary>`.** Without a boundary, a render error is recorded by the global handler as an unhandled error. A boundary records it with the React component stack and then renders `fallback` in place of the subtree.
|
|
415
417
|
|
|
416
418
|
```tsx
|
|
417
419
|
import { ObserveErrorBoundary } from 'expo-observe';
|
|
@@ -424,6 +426,22 @@ import { ObserveErrorBoundary } from 'expo-observe';
|
|
|
424
426
|
|
|
425
427
|
`fallback` is required and accepts a React element, `null`, or a function receiving `{ error, resetError }`. `resetError()` clears the caught error and re-mounts the children, so they restart from a clean state. There is no capture-and-rethrow mode — a boundary always renders one of the three fallback forms. Errors that no boundary catches still reach the global handler.
|
|
426
428
|
|
|
429
|
+
For an app-wide boundary, pass `errorBoundaryFallback` to `ObserveRoot`. `ObserveRoot.wrap(Component)` takes no options, so replace `export default ObserveRoot.wrap(RootLayout)` with an outer wrapper that keeps `RootLayout` beneath `ObserveRoot`:
|
|
430
|
+
|
|
431
|
+
```tsx
|
|
432
|
+
export default function ObservedRootLayout() {
|
|
433
|
+
return (
|
|
434
|
+
<ObserveRoot errorBoundaryFallback={<FallbackScreen />}>
|
|
435
|
+
<RootLayout />
|
|
436
|
+
</ObserveRoot>
|
|
437
|
+
);
|
|
438
|
+
}
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
Keep your existing `RootLayout` beneath `ObserveRoot` when making this change. Rendering `<ObserveRoot>` inside a layout is fine only when that layout just returns the wrapper and its children.
|
|
442
|
+
|
|
443
|
+
`ObserveRoot.wrap(RootLayout)` stays correct when no custom boundary is needed. Without `errorBoundaryFallback`, no root boundary is mounted and render errors are recorded by the global handler without the component stack. Pass `errorBoundaryFallback={null}` to capture render errors and render nothing after an error.
|
|
444
|
+
|
|
427
445
|
**3. Handled errors — `Observe.reportError(error)`.** Report failures your code caught and recovered from, which reach neither the global handler nor a boundary.
|
|
428
446
|
|
|
429
447
|
```tsx
|
|
@@ -434,7 +452,42 @@ try {
|
|
|
434
452
|
}
|
|
435
453
|
```
|
|
436
454
|
|
|
437
|
-
The value is normalized before it is sent: an `Error` contributes `name`, `message`, and `stack`; any other thrown value (a string, a plain object, a number) is stringified into the message with no stack. `reportError` never throws — it is called from a `catch` block, so a failure inside it must not turn a handled error into an unhandled one.
|
|
455
|
+
The value is normalized before it is sent: an `Error` contributes `name`, `message`, and `stack`; any other thrown value (a string, a plain object, a number) is stringified into the message with no stack. `reportError` never throws — it is called from a `catch` block, so a failure inside it must not turn a handled error into an unhandled one. Keep PII out of error messages; everything reported leaves the device and is visible in the dashboard.
|
|
456
|
+
|
|
457
|
+
### Native crashes — automatic
|
|
458
|
+
|
|
459
|
+
With `expo-observe` 57.0.21+, native crashes are recorded with no setup. The report is written on the device and dispatched on the **next launch**, so a recent crash can take time to appear. They show with the **Native** source in the dashboard.
|
|
460
|
+
|
|
461
|
+
- **Android:** uncaught Java/Kotlin exceptions, including the `Caused by` chain. On Android 11+, also the OS crash records for native-code crashes such as `SIGSEGV` and `SIGABRT`.
|
|
462
|
+
- **iOS:** MetricKit crash reports — Mach exceptions (`EXC_BAD_ACCESS`, `EXC_BREAKPOINT`) and Unix signals (`SIGSEGV`, `SIGBUS`, `SIGTRAP`). On iOS 17+, also uncaught Objective-C and Swift exceptions.
|
|
463
|
+
- **Not recorded:** tvOS, the iOS Simulator, ANRs, and out-of-memory terminations.
|
|
464
|
+
|
|
465
|
+
### Symbolicated stack traces
|
|
466
|
+
|
|
467
|
+
Production JS stack traces point into the minified bundle unless a source map is stored for the code that threw. Errors from the embedded bundle use the **build's** source map; errors from an OTA bundle use the **update's** source map. Upload both.
|
|
468
|
+
|
|
469
|
+
**Builds** — set `uploadSourceMaps` in the build profile:
|
|
470
|
+
|
|
471
|
+
```json
|
|
472
|
+
{ "build": { "production": { "uploadSourceMaps": true } } }
|
|
473
|
+
```
|
|
474
|
+
|
|
475
|
+
- Requires EAS CLI 22.0.0+ and a build on EAS Build servers. `eas build --local` does not upload source maps.
|
|
476
|
+
- `sourcesContent` is stripped before upload; only file names and mappings are stored. A failed upload only warns — the build still completes.
|
|
477
|
+
|
|
478
|
+
**EAS Updates** — publish with `--upload-source-maps` (EAS CLI 24.9.0+):
|
|
479
|
+
|
|
480
|
+
```bash
|
|
481
|
+
eas update --channel production --upload-source-maps
|
|
482
|
+
```
|
|
483
|
+
|
|
484
|
+
- Uploads the map `expo export` emits for each native platform, with `sourcesContent` stripped.
|
|
485
|
+
- Maps over the 5 MiB upload limit are skipped with a warning; publishing never fails because of a source map.
|
|
486
|
+
- The error detail page links the update that supplied the map next to **Stack trace**, as it does for the build.
|
|
487
|
+
|
|
488
|
+
**Not available yet:** native symbolication (no dSYM or ProGuard mapping upload). Native frames show symbol names on iOS and class/method/line on Android.
|
|
489
|
+
|
|
490
|
+
If the user needs ANR/OOM capture or native symbolication today, a separate crash reporter such as Sentry is still the option for that gap.
|
|
438
491
|
|
|
439
492
|
## Optional — runtime configuration
|
|
440
493
|
|
|
@@ -472,5 +525,5 @@ The URL is baked into the native layer at build time, so run `npx expo prebuild`
|
|
|
472
525
|
- [ ] (Optional, SDK 56+) Per-route metrics enabled via `Observe.configure({ integrations: { ... } })`, plus `<ObserveNavigationContainer>` (dynamic) or `<ObserveNavigationProvider>` (static) for React Navigation.
|
|
473
526
|
- [ ] (Optional, SDK 57+) Sensitive route/query params listed in `filteredParams`.
|
|
474
527
|
- [ ] (Optional, SDK 56+) User-defined events emitted via `Observe.logEvent(name, { attributes })` with stable, lowercase, dot-separated names and no PII.
|
|
475
|
-
- [ ] (Optional) `<ObserveErrorBoundary>` around risky subtrees
|
|
528
|
+
- [ ] (Optional, SDK 57+) `<ObserveErrorBoundary>` (or `errorBoundaryFallback` on `ObserveRoot`) around risky subtrees, `Observe.reportError` in recovery paths, `"uploadSourceMaps": true` in the `eas.json` build profile, and `eas update --upload-source-maps` when publishing updates.
|
|
476
529
|
- [ ] New build produced with `eas build` and metrics visible in the Observe dashboard.
|
|
@@ -232,7 +232,7 @@ Source of truth: Expo docs and the `eas` / `agent-device` CLIs (`npx --yes eas-c
|
|
|
232
232
|
## Submitting Feedback
|
|
233
233
|
If you encounter errors, misleading or outdated information in this skill, report it so Expo can improve:
|
|
234
234
|
```bash
|
|
235
|
-
npx --yes
|
|
235
|
+
npx --yes @expo/agent-cli@latest feedback --category skills --subject "eas-simulator" "<actionable feedback>"
|
|
236
236
|
```
|
|
237
237
|
Only submit when you have something specific and actionable to report. Include as much relevant context as possible.
|
|
238
|
-
If an
|
|
238
|
+
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`.
|
|
@@ -219,6 +219,8 @@ The launch-args are iOS UserDefaults (`-Key Value`), verified in expo/expo `pack
|
|
|
219
219
|
|
|
220
220
|
Method 1 passes each as two flags: `--launch-arg "<key>" --launch-arg "<value>"`. Method 2 passes them as `--launch-args`.
|
|
221
221
|
|
|
222
|
+
On SDK 58+, you can put the same switches in the URL instead, which also works on **Android**, where launch-args don't apply: append `__expo_disable_onboarding=1&__expo_disable_fab=1&__expo_disable_auto_launch=1` to the `exp://` URL or to `<scheme>://?__expo_url=<encoded manifest URL>`. On SDK 57 and earlier, keep the launch-args on iOS; on Android, the legacy dev client URL takes `&disableOnboarding=1&disableFab=1&disableAutoLaunch=1` after `url=` (`disableFab` and `disableAutoLaunch` need `expo-dev-launcher` 57.0.20+). See `../../expo-overview/references/launch-without-dev-menu.md`.
|
|
223
|
+
|
|
222
224
|
### Metro tunnel backends (both methods)
|
|
223
225
|
|
|
224
226
|
#### Tunnel scope and approvals
|
|
@@ -141,7 +141,7 @@ Never bypass a compatibility or anti-bricking safeguard merely to make an update
|
|
|
141
141
|
## Submitting Feedback
|
|
142
142
|
If you encounter errors, misleading or outdated information in this skill, report it so Expo can improve:
|
|
143
143
|
```bash
|
|
144
|
-
npx --yes
|
|
144
|
+
npx --yes @expo/agent-cli@latest feedback --category skills --subject "eas-update" "<actionable feedback>"
|
|
145
145
|
```
|
|
146
146
|
Only submit when you have something specific and actionable to report. Include as much relevant context as possible.
|
|
147
|
-
If an
|
|
147
|
+
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`.
|
|
@@ -233,7 +233,7 @@ Human-readable group details plus 30 days of launches/failures per platform —
|
|
|
233
233
|
## Submitting Feedback
|
|
234
234
|
If you encounter errors, misleading or outdated information in this skill, report it so Expo can improve:
|
|
235
235
|
```bash
|
|
236
|
-
npx --yes
|
|
236
|
+
npx --yes @expo/agent-cli@latest feedback --category skills --subject "eas-update-insights" "<actionable feedback>"
|
|
237
237
|
```
|
|
238
238
|
Only submit when you have something specific and actionable to report. Include as much relevant context as possible.
|
|
239
|
-
If an
|
|
239
|
+
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`.
|
|
@@ -94,7 +94,7 @@ When users ask about available options (job types, triggers, runner types, etc.)
|
|
|
94
94
|
## Submitting Feedback
|
|
95
95
|
If you encounter errors, misleading or outdated information in this skill, report it so Expo can improve:
|
|
96
96
|
```bash
|
|
97
|
-
npx --yes
|
|
97
|
+
npx --yes @expo/agent-cli@latest feedback --category skills --subject "eas-workflows" "<actionable feedback>"
|
|
98
98
|
```
|
|
99
99
|
Only submit when you have something specific and actionable to report. Include as much relevant context as possible.
|
|
100
|
-
If an
|
|
100
|
+
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`.
|
|
@@ -269,7 +269,7 @@ Opinionated and brief. When the honest answer is "this shouldn't animate," or "t
|
|
|
269
269
|
## Submitting Feedback
|
|
270
270
|
If you encounter errors, misleading or outdated information in this skill, report it so Expo can improve:
|
|
271
271
|
```bash
|
|
272
|
-
npx --yes
|
|
272
|
+
npx --yes @expo/agent-cli@latest feedback --category skills --subject "expo-animation" "<actionable feedback>"
|
|
273
273
|
```
|
|
274
274
|
Only submit when you have something specific and actionable to report. Include as much relevant context as possible.
|
|
275
|
-
If an
|
|
275
|
+
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`.
|
|
@@ -285,7 +285,7 @@ See [./references/native-module.md](./references/native-module.md) for the Swift
|
|
|
285
285
|
## Submitting Feedback
|
|
286
286
|
If you encounter errors, misleading or outdated information in this skill, report it so Expo can improve:
|
|
287
287
|
```bash
|
|
288
|
-
npx --yes
|
|
288
|
+
npx --yes @expo/agent-cli@latest feedback --category skills --subject "expo-app-clip" "<actionable feedback>"
|
|
289
289
|
```
|
|
290
290
|
Only submit when you have something specific and actionable to report. Include as much relevant context as possible.
|
|
291
|
-
If an
|
|
291
|
+
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`.
|
|
@@ -64,7 +64,7 @@ Open the RN screen with input, return a result to native, dismiss, and reopen wi
|
|
|
64
64
|
## Submitting Feedback
|
|
65
65
|
If you encounter errors, misleading or outdated information in this skill, report it so Expo can improve:
|
|
66
66
|
```bash
|
|
67
|
-
npx --yes
|
|
67
|
+
npx --yes @expo/agent-cli@latest feedback --category skills --subject "expo-brownfield" "<actionable feedback>"
|
|
68
68
|
```
|
|
69
69
|
Only submit when you have something specific and actionable to report. Include as much relevant context as possible.
|
|
70
|
-
If an
|
|
70
|
+
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`.
|
|
@@ -473,7 +473,7 @@ User: "How do I load data for a page in Expo Router?"
|
|
|
473
473
|
## Submitting Feedback
|
|
474
474
|
If you encounter errors, misleading or outdated information in this skill, report it so Expo can improve:
|
|
475
475
|
```bash
|
|
476
|
-
npx --yes
|
|
476
|
+
npx --yes @expo/agent-cli@latest feedback --category skills --subject "expo-data-fetching" "<actionable feedback>"
|
|
477
477
|
```
|
|
478
478
|
Only submit when you have something specific and actionable to report. Include as much relevant context as possible.
|
|
479
|
-
If an
|
|
479
|
+
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`.
|
|
@@ -371,7 +371,7 @@ To measure drift in an app that already has screens - hardcoded hex values, arbi
|
|
|
371
371
|
## Submitting Feedback
|
|
372
372
|
If you encounter errors, misleading or outdated information in this skill, report it so Expo can improve:
|
|
373
373
|
```bash
|
|
374
|
-
npx --yes
|
|
374
|
+
npx --yes @expo/agent-cli@latest feedback --category skills --subject "expo-design-system" "<actionable feedback>"
|
|
375
375
|
```
|
|
376
376
|
Only submit when you have something specific and actionable to report. Include as much relevant context as possible.
|
|
377
|
-
If an
|
|
377
|
+
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`.
|
|
@@ -153,6 +153,8 @@ npx expo start --dev-client
|
|
|
153
153
|
# Scan QR code with dev client or enter URL manually
|
|
154
154
|
```
|
|
155
155
|
|
|
156
|
+
When you launch the dev client yourself to screenshot or drive it, skip the onboarding sheet, the dev menu at launch, and the Tools button. On SDK 58+, Expo CLI does this for launches it starts from a non-interactive shell; for a URL you open yourself, use `<scheme>://?__expo_url=<encoded dev server URL>&__expo_disable_onboarding=1&__expo_disable_fab=1&__expo_disable_auto_launch=1`. On SDK 57 and earlier, launch the iOS app with the `-EXDevMenu*` launch arguments, and on Android open `<scheme>://expo-development-client/?url=<encoded dev server URL>&disableOnboarding=1&disableFab=1&disableAutoLaunch=1`. See `../expo-overview/references/launch-without-dev-menu.md` for the exact commands.
|
|
157
|
+
|
|
156
158
|
## Troubleshooting
|
|
157
159
|
|
|
158
160
|
**Build fails with signing errors:**
|
|
@@ -177,7 +179,7 @@ eas update
|
|
|
177
179
|
## Submitting Feedback
|
|
178
180
|
If you encounter errors, misleading or outdated information in this skill, report it so Expo can improve:
|
|
179
181
|
```bash
|
|
180
|
-
npx --yes
|
|
182
|
+
npx --yes @expo/agent-cli@latest feedback --category skills --subject "expo-dev-client" "<actionable feedback>"
|
|
181
183
|
```
|
|
182
184
|
Only submit when you have something specific and actionable to report. Include as much relevant context as possible.
|
|
183
|
-
If an
|
|
185
|
+
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`.
|
|
@@ -420,7 +420,7 @@ On web, the `dom` prop is ignored since no webview is needed.
|
|
|
420
420
|
## Submitting Feedback
|
|
421
421
|
If you encounter errors, misleading or outdated information in this skill, report it so Expo can improve:
|
|
422
422
|
```bash
|
|
423
|
-
npx --yes
|
|
423
|
+
npx --yes @expo/agent-cli@latest feedback --category skills --subject "expo-dom" "<actionable feedback>"
|
|
424
424
|
```
|
|
425
425
|
Only submit when you have something specific and actionable to report. Include as much relevant context as possible.
|
|
426
|
-
If an
|
|
426
|
+
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`.
|
|
@@ -101,7 +101,7 @@ When the user already has an app, **add only what the example introduces; never
|
|
|
101
101
|
## Submitting Feedback
|
|
102
102
|
If you encounter errors, misleading or outdated information in this skill, report it so Expo can improve:
|
|
103
103
|
```bash
|
|
104
|
-
npx --yes
|
|
104
|
+
npx --yes @expo/agent-cli@latest feedback --category skills --subject "expo-examples" "<actionable feedback>"
|
|
105
105
|
```
|
|
106
106
|
Only submit when you have something specific and actionable to report. Include as much relevant context as possible.
|
|
107
|
-
If an
|
|
107
|
+
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`.
|
|
@@ -119,7 +119,7 @@ Report:
|
|
|
119
119
|
## Submitting Feedback
|
|
120
120
|
If you encounter errors, misleading or outdated information in this skill, report it so Expo can improve:
|
|
121
121
|
```bash
|
|
122
|
-
npx --yes
|
|
122
|
+
npx --yes @expo/agent-cli@latest feedback --category skills --subject "expo-migrate-module" "<actionable feedback>"
|
|
123
123
|
```
|
|
124
124
|
Only submit when you have something specific and actionable to report. Include as much relevant context as possible.
|
|
125
|
-
If an
|
|
125
|
+
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`.
|
|
@@ -146,7 +146,7 @@ Note: iOS uses just the class name; Android uses the fully-qualified class name
|
|
|
146
146
|
## Submitting Feedback
|
|
147
147
|
If you encounter errors, misleading or outdated information in this skill, report it so Expo can improve:
|
|
148
148
|
```bash
|
|
149
|
-
npx --yes
|
|
149
|
+
npx --yes @expo/agent-cli@latest feedback --category skills --subject "expo-module" "<actionable feedback>"
|
|
150
150
|
```
|
|
151
151
|
Only submit when you have something specific and actionable to report. Include as much relevant context as possible.
|
|
152
|
-
If an
|
|
152
|
+
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`.
|
|
@@ -196,7 +196,7 @@ Use CSS `boxShadow` style prop. NEVER use legacy React Native shadow or elevatio
|
|
|
196
196
|
## Submitting Feedback
|
|
197
197
|
If you encounter errors, misleading or outdated information in this skill, report it so Expo can improve:
|
|
198
198
|
```bash
|
|
199
|
-
npx --yes
|
|
199
|
+
npx --yes @expo/agent-cli@latest feedback --category skills --subject "expo-native-ui" "<actionable feedback>"
|
|
200
200
|
```
|
|
201
201
|
Only submit when you have something specific and actionable to report. Include as much relevant context as possible.
|
|
202
|
-
If an
|
|
202
|
+
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`.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: expo-overview
|
|
3
3
|
description: "Entry point and router for every Expo or EAS task. Load this skill first — before writing code and before choosing another expo-* / eas-* skill — when the request, PRD, or spec mentions Expo, EAS, Expo Go, or an expo-* package, or the project has an `expo` dependency in `package.json`. Within that gate it also covers app specs and designs to implement (tabs, stacks, maps, lists, navigation, building from a screenshot), and phrasings like 'implement a mobile app', 'make my app look native', 'add navigation', 'fetch some data', 'upgrade my SDK', 'add Expo to my existing native app', 'ship to the App Store', or 'I'm new to Expo, where do I start'. A fully specified request (SDK pinned, libraries named, layout given) still routes through here — the shared setup rules still apply. Do NOT load it when neither signal is present: a bare React Native project with no `expo` dependency is not Expo work. Detects the real goal, routes to the right expo-* / eas-* skill, and owns the shared setup rules."
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.2.0
|
|
5
5
|
license: MIT
|
|
6
6
|
disable-model-invocation: true
|
|
7
7
|
---
|
|
@@ -58,7 +58,6 @@ Match the goal to a category, then the skill, then load that leaf's `SKILL.md`.
|
|
|
58
58
|
**Maintain & learn**
|
|
59
59
|
- `expo-upgrade` — upgrade the Expo SDK and fix dependency conflicts
|
|
60
60
|
- `expo-examples` — canonical, version-matched integration examples (Stripe, Clerk, Supabase, …)
|
|
61
|
-
- `expo-skill-feedback` — send feedback on an Expo skill or on Expo itself; enable / disable the anonymous usage telemetry
|
|
62
61
|
|
|
63
62
|
### Translating vague asks
|
|
64
63
|
|
|
@@ -95,6 +94,12 @@ Apply the rules that match the project and the requested task.
|
|
|
95
94
|
native-setup steps differ — note which one the project is in.
|
|
96
95
|
- **Install packages with `npx expo install <pkg>`**, not raw `npm`/`yarn`/`pnpm add`,
|
|
97
96
|
so versions stay compatible with the project's SDK.
|
|
97
|
+
- **Launching the app yourself?** When you open Expo Go or a development build to look
|
|
98
|
+
at, screenshot, or drive it, skip the first-launch onboarding, the dev menu that opens
|
|
99
|
+
at launch, and the floating Tools button. On SDK 58+, Expo CLI does this for launches
|
|
100
|
+
it starts from a non-interactive shell. On SDK 57 and earlier, and for any URL you open
|
|
101
|
+
yourself (`simctl openurl`, `adb`, a controller), follow
|
|
102
|
+
`./references/launch-without-dev-menu.md`.
|
|
98
103
|
- **EAS auth & linking** (only needed for build/submit/update/observe/workflows): check
|
|
99
104
|
login with `eas whoami`, log in with `eas login`. A project is linked when
|
|
100
105
|
`extra.eas.projectId` exists in the app config; create it with `eas init` if missing.
|
|
@@ -110,7 +115,7 @@ Apply the rules that match the project and the requested task.
|
|
|
110
115
|
## Submitting Feedback
|
|
111
116
|
If you encounter errors, misleading or outdated information in this skill, report it so Expo can improve:
|
|
112
117
|
```bash
|
|
113
|
-
npx --yes
|
|
118
|
+
npx --yes @expo/agent-cli@latest feedback --category skills --subject "expo-overview" "<actionable feedback>"
|
|
114
119
|
```
|
|
115
120
|
Only submit when you have something specific and actionable to report. Include as much relevant context as possible.
|
|
116
|
-
If an
|
|
121
|
+
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`.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Launch without onboarding or the dev menu
|
|
2
|
+
|
|
3
|
+
When you launch Expo Go or a development build yourself, suppress the onboarding sheet, the dev menu at launch, and the Tools button with launch flags. Don't change app config for this.
|
|
4
|
+
|
|
5
|
+
**SDK 58+:** Expo CLI adds the flags itself when it has no TTY (force with `EXPO_NO_DEV_MENU=1`). For URLs you open yourself, append `__expo_disable_onboarding=1&__expo_disable_fab=1&__expo_disable_auto_launch=1` to `exp://<host>:8081` or `<scheme>://?__expo_url=<encoded dev server URL>`.
|
|
6
|
+
|
|
7
|
+
**SDK 57 and earlier, iOS:** launch with these arguments before opening the URL. They last for that process only.
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
xcrun simctl launch --terminate-running-process booted <bundle id> \
|
|
11
|
+
-EXDevMenuIsOnboardingFinished 1 -EXDevMenuShowsAtLaunch 0 -EXDevMenuShowFloatingActionButton 0
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
**SDK 57 and earlier, Android:** append `&disableOnboarding=1&disableFab=1&disableAutoLaunch=1` to `<scheme>://expo-development-client/?url=<encoded dev server URL>`. Only `disableOnboarding` works before `expo-dev-launcher` 57.0.20. Expo Go has no flag, so dismiss its onboarding once.
|
|
15
|
+
|
|
16
|
+
**Opening URLs:** on Android, use `adb shell "am start -a android.intent.action.VIEW -d '<url>'"`. The inner quotes keep the URL's `&`. On iOS, `simctl openurl` shows an "Open in '<app>'?" prompt for any scheme not yet approved. Approve it first:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
P=~/Library/Developer/CoreSimulator/Devices/<udid>/data/Library/Preferences/com.apple.launchservices.schemeapproval.plist
|
|
20
|
+
K="com.apple.CoreSimulator.CoreSimulatorBridge--><scheme>"
|
|
21
|
+
/usr/libexec/PlistBuddy -c "Set :'$K' <bundle id>" "$P" 2>/dev/null || /usr/libexec/PlistBuddy -c "Add :'$K' string <bundle id>" "$P"
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Expo Go's bundle id is `host.exp.Exponent`, and its scheme is `exp`.
|