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.


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

Session typeControllerUse it for
agent-deviceagent-device daemonAgent-driven control, app installation, screenshots, and recordings.
argentArgent tool serverArgent tools and its Model Context Protocol (MCP) server.
appiumAppium serverExisting Appium clients and test suites.
web-preview-onlyNoneA person who uses the browser preview without programmatic control.

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.

Session typeVariables in .env.eas-simulatorFields in remoteConfig
agent-deviceAGENT_DEVICE_DAEMON_BASE_URL, AGENT_DEVICE_DAEMON_AUTH_TOKENagentDeviceRemoteSessionUrl, agentDeviceRemoteSessionToken, optional webPreviewUrl and webPreviewToken
argentARGENT_TOOLS_URL and, when required, ARGENT_AUTH_TOKENtoolsUrl, optional toolsAuthToken, optional webPreviewUrl and webPreviewToken
appiumAPPIUM_URL, APPIUM_CAPS (JSON)appiumUrl, capabilities, optional webPreviewUrl and webPreviewToken
web-preview-onlyOnly EAS_SIMULATOR_SESSION_IDwebPreviewUrl, optional webPreviewToken

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

Behavioragent-deviceargentappiumweb-preview-only
Start flags install and launch the appYesYesYesYes
Controller activity resets the idle timerYesYesYesNo
Supports --max-idle-time-minutesYesYesYesNo
Activity appears in eas simulator:eventsYesYesYesNo

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-minutes to limit the session. See How long an Expo Simulators session runs.
  • A web-preview-only session does not report activity, so it does not support an idle timeout.

Choose a session type

  • Use agent-device for most work, and for coding agents. The Expo Simulators skill uses it.
  • Use argent when your agent already uses Argent tools or its MCP server.
  • Use appium when you already have Appium tests.
  • Use web-preview-only when 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.