Agent Skill
Expo Web To Native skill
expo-web-to-nativeexpo/skillsplugins/expo/skills/expo-web-to-native/SKILL.md
Migrate an existing web React app to a native iOS/Android app with Expo. Use when the user wants to turn a website into a mobile app, port a Next.js/Vite/CRA React codebase to React Native, reuse web code on native incrementally, or asks how web idioms (the DOM, CSS, React Router, localStorage, window) map to native. This is the end-to-end migration guide; use the `expo-dom` skill for the DOM-component mechanism itself.
always on
107 tokname + description
once used
2,406 tokSKILL.md body
bundled files
522 KB
repo stars
3.0kGitHub
Install the Expo Web To Native skill
Skills CLI (Claude Code, Codex, Cursor and others)
npx skills add https://github.com/expo/skills --skill expo-web-to-native
Claude Code, by hand (all projects)
git clone --depth 1 https://github.com/expo/skills.git /tmp/skills mkdir -p ~/.claude/skills cp -R /tmp/skills/plugins/expo/skills/expo-web-to-native ~/.claude/skills/expo-web-to-native
For one project only, copy the folder into .claude/skills/ in that project instead. The agent picks it up when a task matches its description.
What it costs your context
Agent Skills load in three steps. Tokens counted with the o200k tokenizer; your model's count will differ a little.
| When | What loads | Cost |
|---|---|---|
| Every session | Name and description | 107 tok |
| When the agent uses it | The SKILL.md instructions | 2,406 tok |
| Only if opened | 5 bundled files (22 KB) | varies |
Until it is used, expo-web-to-native costs about 13× less than the median MCP server we measured (1,363 tokens on every turn). Installing all 25 skills from expo/skills would load 2,576 tokens of descriptions. Skills vs MCP study
Checks
Our checks found nothing to flag: it follows the Agent Skills specification's naming and size guidelines and doesn't pipe downloads into a shell.
Checked 2026-10-22 · method
What's inside
The headings of its SKILL.md. Read the full file on GitHub.
- Web to Native
- Principles
- Run it as a loop (recommended)
- The migration
- 1. Assess → write the worklist
- 2. Scaffold the shell
- 3. Shell it in DOM components — the day-one milestone
- 4. Strangle screens to native — by value
- 5. Wire data, auth, and storage
- 6. Ship
- Verify by running, not compiling
- References
- Submitting Feedback
More skills from expo/skills
- expo-dev-clientexpo/skills
Build and distribute Expo development clients locally or via TestFlight for internal testing. For production TestFlight releases and store submission, use the eas-app-stores skill.
69k36 tok idle · 1,239 in use - eas-app-storesexpo/skills
Build and submit iOS and Android apps with EAS to TestFlight, the App Store, or Google Play. Supports Expo and other React Native projects, plus existing native apps. Use for eas.json setup, release pipelines, signing, app versions and build numbers, store submissions, and listing metadata. For Expo websites and API routes, use eas-hosting; for adding React Native screens to a native app, use expo-brownfield.
3.0k94 tok idle · 1,576 in use - eas-hostingexpo/skills
Deploy Expo websites and Expo Router API routes to EAS Hosting - export the web bundle, run eas deploy for production and PR preview URLs, manage environment secrets and custom domains, and work within the Cloudflare Workers runtime. Also covers authoring API routes (+api.ts handlers, HTTP methods, request handling, CORS). Use when deploying an Expo web app or API routes, setting up EAS Hosting, or configuring hosting environments and domains. Not for native builds or store releases - use the eas-app-stores skill for those.
3.0k111 tok idle · 2,627 in use - eas-observeexpo/skills
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.
3.0k205 tok idle · 891 in use - eas-simulatorexpo/skills
Run and control a user's app on a remote iOS/Android simulator hosted on EAS cloud. Read before running any `eas simulator:*` commands - it has the current syntax for this experimental API. Use whenever the user needs a simulator they can't run locally - 'run my app on a cloud simulator', 'use eas simulator to run/install/screenshot my app', 'I'm on Linux/Cursor and need an iOS device', 'no sim on this box / headless CI', 'let an agent click through my app and screenshot it', 'test my dev build on a remote sim with live reload', 'stream a sim to my browser' - even when they don't say 'EAS Simulator' or 'cloud'. On a host WITHOUT a local simulator (Linux, CI, cloud sandbox) it's the default; on macOS, do NOT auto-trigger for a plain 'run on the simulator' - use it only for a cloud/remote/shareable sim, an iOS version they lack, or an agent-driven session. NOT for local sims (expo run:ios, Xcode, Android Studio), EAS Build/Update, web preview, or physical devices.
3.0k243 tok idle · 6,261 in use - eas-updateexpo/skills
Configure and use EAS Update for over-the-air JavaScript and asset updates with expo-updates and EAS CLI. Use when setting up OTA updates, running eas update:configure or eas update, publishing to preview/staging/production channels, explaining branches/channels/runtime versions, testing updates, or debugging why an installed build still shows old code. Load for TestFlight, preview, or production updates that do not appear, including questions about cold launches or reopening the app. Not for update health metrics; use eas-update-insights for adoption, crashes, and rollout monitoring.
3.0k119 tok idle · 1,864 in use - eas-update-insightsexpo/skills
Check the health of published EAS Update: crash rates, install/launch counts, unique users, payload size, and the split between embedded and OTA users per channel. Use when the user asks how an update is performing, whether a rollout is healthy, how many users are on the embedded build vs OTA, or wants to gate CI on update health.
3.0k77 tok idle · 2,935 in use - eas-workflowsexpo/skills
Helps understand and write EAS workflow YAML files for Expo projects. Use this skill when the user asks about CI/CD or workflows in an Expo or EAS context, mentions .eas/workflows/, or wants help with EAS build pipelines or deployment automation.
3.0k157 tok idle · 972 in use