---
modificationDate: October 15, 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 EAS 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 EAS 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 "/preview/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":"/preview/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.

</AgentInstructions>

> **Expo Simulators is a limited-access preview.** It is not included with paid or free plans and is currently available only to select partners. [Join the waitlist](https://expo.dev/services/simulators) if you are interested in trying it.

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 EAS:

-   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.

The session page on expo.dev shows an **Open preview** button that opens the browser preview in a new tab. Android support is still in development, so some features that work on iOS may not work on Android yet.

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/preview/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/preview/simulators/reference/usage-and-billing.md) and [Session lifetime](https://docs.expo.dev/preview/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 EAS. The agent can create the build with EAS Build. See [Use an iOS Simulator on Linux or Windows](https://docs.expo.dev/preview/simulators/how-to/work-without-a-mac.md).
