This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.
Capture screenshots, recordings, and logs from a remote simulator
Edit page
Take screenshots, record video, read session activity, and download session artifacts from an Expo Simulators session to prove that a change works.
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.
Evidence shows what the app did on the remote device. Use a screenshot for a still state and a recording for motion. Use session activity for the list of actions that a person or an agent did. EAS also keeps session artifacts, such as recordings and screenshots, that you can download from EAS CLI or from the session page on expo.dev.
Choose the evidence
Take a screenshot
Open the app first. agent-device needs an open app session before it can take a screenshot:
The screenshot downloads to the computer that runs the command. Take the screenshot only after the correct build is on screen. A release build shows the code from build time. See Which build to install on Expo Simulators. To confirm that a screenshot came from the remote device, see Confirm that the agent controls the remote device.
Control the screenshot size
On an iOS Simulator, agent-device screenshots use 1x logical points by default, such as 402 x 874 on iPhone 17. For a full-resolution image, pass --pixel-density 3 (1206 x 2622 on iPhone 17). A full-resolution image uses more tokens when an agent reads it. From agent-device 0.20.6, pass --scale with a value from 0.01 to 1 to make the image smaller:
Use the full resolution for an image that you compare pixel by pixel with another image.
Record the screen
agent-device writes the recording to the path that you pass to record start, with a .gesture-telemetry.json file next to it. EAS also uploads the recording as a session artifact. If record stop times out while the remote device still exports the recording, run record stop again. If agent-device reports that it cannot find the recording, add --platform ios.
Recordings may not capture every frame, so they cannot prove or disprove a short frame drop.
With Argent, use the screen-recording-start and screen-recording-stop tools. Argent removes frames that do not change by default, so turn off that option when you measure timing. Argent recordings on Expo Simulators include an Argent watermark.
Recover a recording that did not download
If the controller does not download a recording, get it from the session artifacts. EAS uploads the agent-device recording as an artifact, and it can appear while the session is still running. EAS also records the full session screen and uploads that recording as an artifact after the session stops. Get the session with its ID, and find the recording in the artifacts array:
Download the file from its downloadUrl:
The downloadUrl does not change. Each request to it redirects to a new signed URL that is valid for one hour. If a signed URL expires, request the same downloadUrl again. You can get artifacts after the session stops.
Read session activity
Sessions that use agent-device, Argent, or Appium record each controller action. Show the activity so far:
Follow new activity in another terminal while you or an agent use the device:
Use --json to get the raw event records for a script or an agent. You cannot use --json together with --follow. Session activity shows controller actions. It does not show the logs of your app.
Read app logs
agent-device has a logs command that collects the logs of the app that it opened. Logging is off by default. Open a log window for one reproduction instead of collecting all logs. Read the version-matched help for the syntax:
Find artifacts on expo.dev
The session page on expo.dev shows the evidence that EAS stores for the session:
Android sessions also produce a session screen recording artifact. 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.
Job logs on the session page are available for 30 days after the session is created. EAS keeps session artifacts, such as screenshots and recordings, until you delete the session. You can delete a finished session from its expo.dev page with the Developer role or higher. Download the files that you want to keep. See Expo Simulators security, permissions, and data retention.