Today we're launching Expo Simulators, our latest cloud service that is now available on all paid plans. With Expo Simulators, your agents, CI jobs, and teammates can start a cloud iOS Simulator or Android Emulator from wherever they work, with no Mac or nested virtualization required, and without occupying scarce and precious RAM on your laptop.
Each session tracks the actions that agents take, captures a video of the entire run, collects captured screenshots, logs, network traffic, CPU and memory usage, and more, so your agent can not only monitor this all in real time but also dig into previous sessions. You can stream it directly in your browser, on desktop or mobile, or let an agent work independently and review the results yourself later.
Verification is one of the new bottlenecks that every engineering team is facing, and Expo Simulators enables your agents to verify their work, wherever and however those agents are running. It also enables humans to verify work, by booting an app into a cloud simulator and interacting with it, without needing to install any local developer tools.
The limitation of local simulators
Agents that check their own work deliver better results. That loop already works on your own machine, but local simulators don't scale to the way agents work now, and no history of a session is retained.
Local simulators limit how much you can run in parallel. They use a lot of compute on your machine. That limits how many agents you and your team can run in parallel, which slows down iteration. If you want to run seven agents at once on your laptop, your laptop has to run seven simulators or emulators.
Agents sharing simulators can collide. Agents that share your machine can fight over the same simulator and get in each other's way. One agent reinstalls the app in the middle of another agent's test.
No session history. Your agent did something weird. Why? How did it end up there? You can look back at the agent session data, but that doesn't give you the full picture because you won't know exactly what was happening on the simulator/emulator at the time.
Local simulators aren't where your agents run. More and more agent work happens off your laptop: background agents in cloud sandboxes, QA agents in CI, and pipelines that go from bug report to fix. These agents need a simulator too, wherever they run. And the iOS Simulator only runs on a Mac, which not every team member has.
Mobile infrastructure built for agents
As agent workloads are moving increasingly to cloud sandboxes, or even locally across many worktrees simultaneously, you can't always assume that a simulator or emulator will be available due to the operating system, VM type, or memory/compute constraints.
Expo Simulators gives your agent a cloud iOS Simulator or Android Emulator on demand, from wherever the agent runs, with one command and no Mac to set up or maintain. Each session runs on its own virtual machine, so parallel agents never share a simulator or clobber each other's work. The agent installs your build, drives the app the same way it drives a local simulator, and brings back proof.
For the past few months, a group of design partners have been using Expo Simulators to help us understand all the real-world use cases and to smooth out the rough edges. As of today, Expo Simulators is available on all paid plans.
The building blocks of verification
An agent's work is only as good as your ability to check it. Expo Simulators gives you three building blocks for that: a simulator your agent can drive, evidence your team can review, and infrastructure you can trust.
Simulators: Let your agents verify their work
To use Expo Simulators your agent doesn't have to learn a new tool. It drives the remote simulator with the same agent-device, Argent, or Appium commands it uses on a local one, as if the simulator ran on your machine. Claude Code, Codex, Cursor, or any agent that can run CLI commands work with Simulators.
You can do manual validation too. Every session has a live view in the browser. Your agent drives the simulator, and you see the same screen at the same time. If something looks wrong, take over and tap through it yourself, with no Mac needed. If you only want to try a build yourself, there is an option to run a web preview-only session that gives you the live view without exposing controller that agent uses.
Proof: Evidence your reviewer can watch
When the session ends, you keep the evidence. Each session has a full screen recording, screenshots, and logs of everything your agent did. Your agent can read the logs and screenshots too, and attach them to the pull request.
This makes PR reviews fundamentally easier to reason with. Instead of 500 lines that just look about right, the reviewer gets a recording that shows the change works. Nobody has to pull the branch, build it, and open a simulator. Watch it run, then merge.
Product managers and designers don't need a development environment either. Send them the link to a running session. They open the new build in a desktop browser and tap around, with nothing to install.
An agent with “eyes” is able to capture and update things like accessibility compliance on the iPhone Duo. In this pull request, the agent ran the app at the largest text size, saw where labels overflowed and covered each other, fixed the layout, and attached before and after screenshots, so the reviewer can see the fix at that text size without ever running a build on their own device.
Stability & Security: infrastructure your team can trust
Running unreleased builds in the cloud means trusting another environment with work your team hasn't shipped yet. We designed Expo Simulators to keep those builds under your team's control. Every session runs in an isolated VM using the same trusted infrastructure and isolation layer as other Expo services such as Build, Submit, and Workflows, which already process millions of jobs for teams of every size.
Sessions also end on their own, without relying on an agent to clean up. No session runs longer than two hours, and you can set a shorter maximum duration and an idle timeout when you start one. A CI job that exits early can't leave a simulator running, or billing you, indefinitely. When a session stops, its simulator and control endpoints go away. The recording, screenshots, and logs stay on the session page for review.
How to get started with Expo Simulators
The easiest way to start is to give your coding agent the eas-simulator skill:
Then ask your agent to run your app on a cloud simulator. The skill teaches your agent to check access, start a session, drive the app, bring back proof, and stop the session when it's done. The documentation has more on every option.
How to manually start a cloud simulator session
You, your agent, or your CI job can also start a session with one command:
The session prints a link to the live view. Add options to choose how your agent drives the simulator and which app it starts with:
- --type agent-device (the default), --type argent, or --type appium picks the controller your agent uses to drive the session. All of the sessions expose live preview. --type web-preview-only starts a session with only the live preview only.
- --build-id <id> or --build-fingerprint <hash> installs a simulator build matching these conditions from EAS Build.
- --application-archive-url <url> installs a simulator build from any URL, so the build doesn't have to come from EAS.
- --expo-go installs the Expo Go version that matches your project's SDK.
- --open-url <url> opens an Expo or development build URL after the app launches. This is the main way to work with Metro: start Expo Go or your development build on the cloud simulator, point it at your local Metro server, and every change you save shows up with Fast Refresh, no rebuild needed.
A team can start sessions from CI, from the REST API and from Expo Workflows, GitHub Actions, any CI, or manually from our website as well. Your team sets a maximum duration and an idle timeout, and a forgotten session stops on its own.
How teams are using Expo Simulators
- Agentic CI. Find what breaks before your users do. On every pull request, an agent starts a cloud simulator, installs the build, and taps through the flows the pull request describes. It posts the result on the pull request with a link to the recording. When a check fails, the agent fixes it and verifies the fix on a simulator.
- End-to-end and UI tests. If you write tests with e2e, an open source testing framework, the @e2e-dev/eas integration starts one Expo Simulators session for each e2e worker and stops the sessions when the run ends. Maestro flows and Appium suites run on a session too, from any CI.
- Bug triage. A tester sends feedback in TestFlight. A background agent reproduces the bug on a simulator, writes a fix, checks it on the simulator, and opens a pull request with the before and after.
- Feature add. Hand your agent an idea from anywhere. It builds the feature and checks it on a simulator, and you see what it built from a preview link.
- Pull request review. Reviewers watch the recording instead of pulling the branch and building it. Watch it run, then merge.
- Many agents at once. Each agent gets its own session on its own virtual machine, so agents never share a simulator. Each session keeps its own recording, screenshots, and logs, so you can check every agent's change on its own.
[Video placeholder] QA swarm explainer. Upload in Studio as a Bunny.net video. Notion file: qa-swarm-explainer-16x9.mp4 (8.9 MB, 58.5 seconds, 1920x1080).
- iOS development without a Mac. Build with EAS Build and run the iOS Simulator on Expo, from Linux, from Windows through WSL, or from a cloud sandbox. Rami's post shows the whole setup.
- Apps outside React Native. Any app built for the iOS Simulator or Android Emulator runs in a session, whatever framework built it: Expo, Exact, SwiftUI, Jetpack Compose, Flutter, or Unity.
Local simulators are still the right tool for one agent on your own machine, but Expo Simulators allow this workflow to scale beyond just your machine.
Expo Simulators Pricing
Pricing is usage-based on simulator minutes, at $0.10 per minute for iOS and Android. The Starter, Production, and Enterprise plans include 60 minutes per month until 2027. Full details are on the pricing page.
Useful links
- Get started with Expo Simulators
- Expo Simulators documentation
- Expo skills, including the eas-simulator skill
- How to get started with Expo Simulators (video tutorial)
- You don't need a Mac to develop iOS apps
- What if your app could fix itself?
- Introduction to agentic workflows
- Set up a project for agentic workflows
Tell us what you think
Visit #expo-simulators channel in the Expo Discord if you have any questions, bug reports, or feature requests. We'd love to hear what you and your agent think!
If you're rolling Expo Simulators out to a team and want to talk through security, access, or volume, contact our team.












