This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.
Expo Simulators session types
Edit page
Compare the four Expo Simulators session types, what each one provisions, and how each one installs apps, reports activity, and connects to the remote device.
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 if you are interested in trying it.
The session type sets which controller Expo Simulators starts next to the remote device. There are four session types: agent-device, argent, appium, and web-preview-only. Set the type with --type in EAS CLI or type in the REST API. The default type is agent-device.
Compare the session types
Each session type includes a browser preview. Each session type also provisions only its own controller. For example, agent-device commands do not work in an argent session.
On iOS, eas simulator:control sends direct actions through the preview server. It works independently of the selected controller, including in a web-preview-only session.
Connection details
When a session is ready, Expo Simulators returns its connection details. EAS CLI writes them to .env.eas-simulator. The REST API returns them in remoteConfig.
The remoteConfig fields above are the REST API fields. In the REST API, webPreviewUrl is the address of the public preview. When webPreviewToken is present, it opens only with the token, and a URL with the token is a public link. See Open the browser preview. In --json output, the field is remoteConfig.webPreviewUrl, or remoteConfig.previewUrl for a web-preview-only session. By default, EAS CLI puts the private link in this field and leaves out the token. The private link requires an Expo login. For a session started with --public-link, EAS CLI puts the public link there, with the token.
The tokens in these values give access to the remote device. Keep them secret. See Expo Simulators security, permissions, and data retention.
Behavior by session type
Notes:
- The start flags are
--build-id,--build-fingerprint,--application-archive-url,--expo-go,--launch-arg, and--open-url. To connect an Appium client, see Run Appium tests on a remote Android Emulator or iOS Simulator. - Controller activity from agent-device, Argent, or Appium resets the idle timer. Browser preview activity does not. For sessions that a person controls in the browser preview, use
--max-duration-minutesto limit the session. See How long an Expo Simulators session runs. - A
web-preview-onlysession does not report activity, so it does not support an idle timeout.
Choose a session type
- Use
agent-devicefor most work, and for coding agents. The Expo Simulators skill uses it. - Use
argentwhen your agent already uses Argent tools or its MCP server. - Use
appiumwhen you already have Appium tests. - Use
web-preview-onlywhen a person only needs to see and use the simulator in a browser.
The Create new simulator dialog on expo.dev offers the Agent Device, Argent, and Appium controllers. Agent Device is the default.
The removed serve-sim type
The preview-only type is now web-preview-only. Its old name was serve-sim. Expo Simulators rejects new sessions with "type": "serve-sim". Update EAS CLI and use web-preview-only.
Sessions created before the rename still return "type": "serve-sim" from the REST API. In --json output, EAS CLI shows them as web-preview-only.
Common questions
Can I change the session type of a running session?
No. Expo Simulators sets the session type when the session starts. Start a new session with a different --type.
Do Android sessions include a browser preview?
Yes. Android sessions include a browser preview that streams the emulator. Select Open preview on the session page on expo.dev to open it in a new tab. Android support is still in development, so some features that work on iOS may not work on Android yet.
Which session type does a create session link use?
A create session link always starts a web-preview-only session. Links support Android and iOS. Android support is still in development, and Android application archives must be .apk files. See Share a live Expo Simulators session or start one from a link.