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 EAS 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.
Connection details
When a session is ready, EAS 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. When webPreviewToken is present, the browser preview URL works only with the token. See Open the browser preview for how to add it. In --json output, EAS CLI adds the token to the URL for you. There, the field is remoteConfig.webPreviewUrl, or remoteConfig.previewUrl for a web-preview-only session.
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
EAS CLI 23.0.0 renamed the preview-only type from serve-sim to web-preview-only. EAS now rejects new sessions with "type": "serve-sim". Upgrade to EAS CLI 23.2.0 or later and use web-preview-only.
Sessions created before the change 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. EAS 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.