PlugWiki

EAS Simulator: a skill that lets Claude run and drive your Expo app on a cloud iOS or Android simulator

Expo's skill makes Claude start a remote iOS or Android simulator on EAS cloud, run your app on it, tap through it and bring back screenshots.

Installs
22.1K
on skills.sh
Stars
4K
on GitHub
Files
5
besides SKILL.md
Updated
Nov 2026
last repo commit

The skill gives Claude the current commands for the experimental eas simulator:* API. Claude checks that your account has access, starts a named session, installs your build, drives the app with the open-source agent-device tool, and stops the session when the work is done. You can also hand the user a browser preview link to watch the session live.

It triggers on requests such as "run my app on a cloud simulator", "I'm on Linux and need an iOS device" or "let an agent click through my app and screenshot it". On a Mac it does not trigger for a plain "run on the simulator"; it is for cloud, remote or shareable sessions. It is not for local simulators, EAS Build or Update, or physical devices.

It needs an Expo account that has been given access to this limited feature, and sessions count toward your EAS plan limits. SKILL.md gives the maximum session length as 40 minutes on Free and 115 on paid plans. Read the permissions section below before you let an agent start sessions on its own.

Good for

  • Expo developers on Linux or in CI who have no local iOS simulator
  • People using a cloud coding agent such as Cursor Cloud that needs a real device to test on
  • Teams who want Claude to check a change on a device and share a live browser preview

Install eas-simulator

Claude Code

  1. 1

    Copy this prompt.

    Install the eas-simulator skill in Claude Code. Run this command:
    
    npx skills add https://github.com/expo/skills --skill eas-simulator
    
    Then check that it loaded and tell me how to use it.
  2. 2

    Paste it into Claude Code. It shows the change and asks before running it.

Requires Node.js.

From its listing on skills.sh. Source.

What's in the skill

When it loads

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.

Sections in SKILL.md

  1. When to use
  2. Cloud vs local: decide this first
  3. Prerequisites
  4. Session lifetime
  5. Check availability first
  6. The core loop (always the same)
  7. Always name the session
  8. Commands at a glance
  9. Running the user's app — pick a mode
  10. Driving the device (agent-device)
  11. When the app crashes: device logs and crash reports (iOS)
  12. Operating principles
  13. Stop and clean up
  14. References
  15. Submitting Feedback

Key facts

Author
Expo
License
MIT
Repository
expo/skills
Installs on skills.sh
22,107 as of 2026-11-02
Last repo commit
2026-11-01

What it includes

  • Asks EAS whether your account can use simulators

    Runs `simulator:availability` first. If access is off, Claude is told not to start a session and to fall back to a local simulator, a build or another path.

    Runs code · Check availability

  • Boots a named remote simulator and writes .env.eas-simulator

    Runs `simulator:start` with a platform, a session type and a short name. The file it writes holds the session id and a token.

    Runs code · Start a session

  • Build on your Mac, upload and install it

    A one-off static screenshot of your current code. Needs a Mac toolchain. No live edits.

    Runs code · Mode A: local release build

  • Install an existing or fresh EAS simulator build

    Only when you ask for it, such as an existing build or a build to share. The remote machine downloads the build. No live edits.

    Runs code · Mode B: EAS build

  • Edit code and see it update live on the cloud sim

    The default for most requests. Starts Metro behind an Expo tunnel so the dev client on the cloud simulator can fetch your bundle and update on save.

    Runs code · Mode C: dev build and tunnel

  • Open, snapshot, tap, fill, screenshot and record

    Runs agent-device verbs through `simulator:exec`, such as `open`, `snapshot -i`, `press`, `fill`, `screenshot` and `record start` and `stop`.

    Runs code · Drive the device

  • Reads iOS crash reports and the device log

    When the app crashes, Claude reads reports from the session's preview API URL. The URL carries the session token, so the skill says never to print it.

    Network · Device logs and crash reports

  • Stops the session and clears the dotenv

    Runs `simulator:stop`, resets .env.eas-simulator and stops any Metro process it started.

    Runs code · Stop and clean up

From the official docs

Permissions

Medium risk

Claude runs cloud simulator sessions that use your EAS plan, and live-edit mode opens a tunnel to your local dev server. Set a maximum session duration and approve the tunnel only for the project you mean.

What it can do

  • Read your data
  • Create and change things
  • Delete things
  • Read-only mode

Watch out for

  • Uses paid EAS sessions that keep running

    Sessions count toward your plan limits, and with no idle timeout one runs until its maximum duration or until stopped. Set a maximum duration and check that Claude stops each session.

  • Live edits open a public tunnel to your dev server

    Mode C starts Metro behind an Expo tunnel. The skill's own reference says the URL is not proof of authentication, so approve it only for the project you mean and stop Metro afterwards.

  • Runs the latest npm packages each time

    Commands use eas-cli@latest and agent-device@latest through npx, so new versions run without a pin. Pin versions yourself if your team requires it.

  • Writes a token file into your project

    The .env.eas-simulator file holds a session token. SKILL.md says to add it to .gitignore if missing.

  • The plugin route adds more than this skill

    The expo plugin that the README documents for Claude Code brings 23 skills, a .mcp.json that points to https://mcp.expo.dev/mcp and an agents/openai.yaml, and its plugin.json lists no hooks. Installing only this skill with the skills CLI avoids the MCP server setting.

  • Includes a feedback command that reports to Expo

    SKILL.md ends with an `npx --yes @expo/agent-cli@latest feedback` command for reporting problems to Expo. It says to use it only for specific, actionable feedback.

Technical details
Talks toEAS cloud simulator sessions. Expo tunnel to your local Metro server. npm registry for npx eas-cli@latest and agent-device@latest
Sign-in and keysSKILL.md names EXPO_TOKEN for headless machines. eas-cli writes the session id and a token to .env.eas-simulator in your project.
Scopes
  • EXPO_TOKEN (for headless or CI use)

Questions

What does the EAS Simulator skill do?

It makes Claude run your Expo app on a remote iOS or Android simulator hosted on EAS cloud and drive it with taps, text and screenshots. It is meant for machines that cannot run a simulator, such as Linux, CI or cloud agents.

Do I need special access or a paid plan?

You need an Expo account with access to this limited feature, which the skill says is still rolling out. Claude checks access first and falls back to another path if it is off. Sessions count toward your plan limits. SKILL.md gives the maximum length as 40 minutes on Free and 115 on paid plans.

How do I install it in Claude Code, the Claude app or Codex?

Use the install box above. The expo/skills README also documents a Claude Code plugin (claude plugin install expo@claude-plugins-official) and a Codex plugin. The Claude Code plugin bundles an Expo MCP server setting that points to mcp.expo.dev, along with the other Expo skills.

Does it cost money?

The skill opens with a note that EAS costs apply. Sessions count toward your account's pricing and limits, and they stop at their maximum duration. Claude is told to stop a session when the task is done.

Is it safe to install?

It bundles no scripts, but Claude runs npx --yes eas-cli@latest and npx agent-device@latest for you, and live-edit mode opens a public tunnel to your local Metro server. Review the commands before you approve them and keep the .env.eas-simulator file out of git, because it holds a token.

Does it work on a Mac with a local simulator?

Yes, but it is not the first choice there. SKILL.md says a plain "run on the simulator" request should use a local simulator. It uses EAS Simulator only if you ask for a cloud, remote or shareable session, an iOS version you lack, or an agent-driven session.

Can I watch the session myself?

Yes. Claude gives you a preview link in the browser. Browser activity does not reset the idle timer, so set a maximum duration if you want to keep it open for yourself.

Information

updated Nov 2, 2026

Repository
expo/skills
Folder
plugins/expo/skills/eas-simulator

expo/skillsskills.sh

Sources

Docs, issue trackers and discussions this page is built from.

Show all 5
  1. SKILL.md · github.com
  2. expo/skills README · github.com
  3. run-your-app.md · github.com
  4. expo plugin .mcp.json · github.com
  5. plugin.json · github.com

Updated Nov 2, 2026.