---
modificationDate: November 12, 2026
title: Let an AI coding agent verify a change on a remote simulator
description: Give a coding agent such as Claude Code, Codex, or Cursor a real Android Emulator or iOS Simulator on Expo infrastructure so that it can test its own change and return screenshots or recordings.
---

This documentation is available as Markdown for AI agents and LLMs. See the [full Markdown index](https://docs.expo.dev/llms.txt) or append .md to any documentation URL.

# Let an AI coding agent verify a change on a remote simulator

Give a coding agent such as Claude Code, Codex, or Cursor a real Android Emulator or iOS Simulator on Expo infrastructure so that it can test its own change and return screenshots or recordings.

<AgentInstructions>

## Submitting Feedback

If you encounter errors, misleading or outdated information, report it so Expo can be improved:

Preferred command:
npx --yes submit-expo-feedback@latest --category docs --subject "/eas/simulators/how-to/verify-a-change-with-an-agent/" "<actionable feedback>"

Direct HTTP fallback:
curl -X POST https://api.expo.dev/v2/feedback/docs-send -H 'Content-Type: application/json' -d '{"url":"/eas/simulators/how-to/verify-a-change-with-an-agent/","feedback":"🤖 Agent feedback for docs: <specific, actionable description> (<model>, <harness>)"}'

Only submit when you have something specific and actionable to report. Try to give the most context.

## Navigation

When answering a related or follow-up question, fetch the relevant page below as Markdown (.md) instead of guessing; use llms.txt for the full map.

You are here: Expo Services > Expo Simulators > How-to
Pages in this section:
- [Start a session](https://docs.expo.dev/eas/simulators/how-to/start-a-session.md)
- [Install your app](https://docs.expo.dev/eas/simulators/how-to/install-your-app.md)
- [Drive the device](https://docs.expo.dev/eas/simulators/how-to/drive-the-device.md)
- [Use EAS CLI controls](https://docs.expo.dev/eas/simulators/how-to/control-with-eas-cli.md)
- [Iterate on your code](https://docs.expo.dev/eas/simulators/how-to/iterate-on-your-code.md)
- [Capture evidence](https://docs.expo.dev/eas/simulators/how-to/capture-evidence.md)
- [Organize sessions](https://docs.expo.dev/eas/simulators/how-to/organize-sessions.md)
- [Verify a change with an agent](https://docs.expo.dev/eas/simulators/how-to/verify-a-change-with-an-agent.md) (this page)
- [Work without a Mac](https://docs.expo.dev/eas/simulators/how-to/work-without-a-mac.md)
- [Review a pull request](https://docs.expo.dev/eas/simulators/how-to/review-a-pull-request.md)
- [Run in CI](https://docs.expo.dev/eas/simulators/how-to/run-in-ci.md)
- [Hand off a session](https://docs.expo.dev/eas/simulators/how-to/hand-off-a-session.md)
- [Embed a session](https://docs.expo.dev/eas/simulators/how-to/embed-a-session.md)
Full documentation tree: [llms.txt](https://docs.expo.dev/llms.txt)

</AgentInstructions>

A coding agent can read and change your code, but it cannot see whether the change works unless it can run the app. Expo Simulators gives the agent a remote Android Emulator or iOS Simulator. The agent installs the app, uses it through a controller, and returns screenshots, recordings, or logs as evidence.

## Install the Expo Simulators skill

Start with the official Expo Simulators skill. Install [Expo Skills](https://docs.expo.dev/skills.md), then ask your agent to use the skill. The skill contains the tested steps for the access check, the build choice, the session, the controller, the evidence, and the cleanup.

[eas-simulator](https://github.com/expo/skills/blob/main/plugins/expo/skills/eas-simulator/SKILL.md) — Run and control a user's app on a remote iOS/Android simulator hosted on EAS cloud.

Use the skill instead of giving the agent individual commands. The `simulator:*` commands are new, and the skill tells the agent to check the current `--help` output when a command fails.

## Write a prompt that asks for evidence

Describe the result that you want and the evidence that proves it:

| Task | Example prompt |
| --- | --- |
| Verify a feature | Use Expo Simulators to open the app on iOS and test the new checkout flow. Return a screenshot of the confirmation screen. |
| Reproduce a bug | Reproduce issue 412 on an Expo Simulators Android session. Record a video of the steps and stop the session after. |
| Check an animation | Record the sheet transition on an Expo Simulators iPhone session and check the frames for visible jank. |
| Iterate live | Start a development build on Expo Simulators with Metro, fix the layout of the profile screen, and show me the preview link. |

## What the agent does

With the skill, the agent follows the same loop each time:

1.  It runs `eas simulator:availability --json`. If Expo Simulators is not available for the account, it tells you. Then it uses a local workflow instead, such as a local simulator or emulator.
2.  It selects a build that fits the goal. For live edits, it uses a development build with Metro. For a fixed screenshot, it uses a build that matches the current source.
3.  It starts a named session and confirms that the status is `IN_PROGRESS`.
4.  It installs and opens the app, then uses agent-device commands such as `snapshot -i`, `press`, and `fill`.
5.  It captures screenshots for still states and recordings for motion.
6.  It stops the session and resets **.env.eas-simulator**.

## Give the agent access

The agent needs an authenticated EAS CLI and a project linked to Expo Services:

-   On your computer, run `eas login`.
-   In a cloud sandbox, CI job, or background agent, set the `EXPO_TOKEN` environment variable to an [Expo access token](https://docs.expo.dev/accounts/programmatic-access.md). These environments cannot use a browser login.

Confirm the setup:

```sh
npx --yes eas-cli@latest whoami
npx --yes eas-cli@latest simulator:availability --json
```

`npx --yes eas-cli@latest` makes sure that the agent uses a recent EAS CLI.

## Watch the agent work

The start command prints a browser preview URL. Open it in a desktop browser to see the simulator while the agent uses it. In Cursor or VS Code, you can open the URL in the **Simple Browser** panel. By default, the URL requires an Expo login with access to the project, so sign in to expo.dev in the browser that opens it. If you cannot sign in from the **Simple Browser** panel, open the URL in your desktop browser.

The session page on expo.dev shows an **Open preview** button that opens the browser preview in a new tab.

To see each controller action as it happens, run this command in another terminal:

```sh
eas simulator:events --follow
```

To confirm that the agent controls the remote device and not a local simulator, see [Confirm that the agent controls the remote device](https://docs.expo.dev/eas/simulators/how-it-works/agent-targeting.md#confirm-that-the-agent-controls-the-remote-device).

## Set limits for the agent

A session keeps running until someone stops it, or until it reaches its maximum duration or idle limit. Give the agent limits in the prompt, and add a maximum duration to each session:

-   Ask the agent to stop each session that it creates when it finishes or fails.
-   Ask the agent to start no more than one session at a time, unless the task needs more.
-   Tell the agent to use `--max-duration-minutes` so that a forgotten session stops on its own.

See [Expo Simulators usage, limits, and billing](https://docs.expo.dev/eas/simulators/reference/usage-and-billing.md) and [Session lifetime](https://docs.expo.dev/eas/simulators/how-it-works/session-lifetime.md).

## Common questions

#### Which agents can use Expo Simulators?

Any agent that can run shell commands can use EAS CLI and agent-device. The Expo docs include setup guides for [Claude Code](https://docs.expo.dev/agents/claude.md), [Codex](https://docs.expo.dev/agents/codex.md), and [Cursor](https://docs.expo.dev/agents/cursor.md).

#### Does the agent need a Mac?

No. The simulator runs on Expo infrastructure. The agent can create the build with Expo Build. See [Use an iOS Simulator on Linux or Windows](https://docs.expo.dev/eas/simulators/how-to/work-without-a-mac.md).
