simulator-use

The iOS Simulator for coding agents.

Claude Code, Codex, Cursor or any MCP client builds your app, reads the screen as text and taps by label. Free and open source.

$ claude mcp add simulator-use -- npx -y simulator-use mcp
View on GitHub
what the agent readsMCP

    
0.28 sto read a whole screen
70 tokensfor that screen
<1 msto send a tap
846npm downloads last week

One engine per Simulator.

It keeps the input, the accessibility session and the screen buffer open. A tool that starts a helper for every call pays for them every time.

Read the screenui_look
0.28 s
1.45 s per helper
Read it with a screenshotui_look screenshot
0.35 s
1.62 s per helper
Tap, wait, read what changedui_act tap "Settings"
1.58 s
5.97 s per helper
Send a tapthe input alone
<1 ms
2.6 s per helper

The same tools with the engine on and off (off: AXe 1.8.0, one process per call). Apple M6 Mac mini, iOS 27.0, October 21, 2026. Scripts in native/engine/bench.

A whole agent run: 67 seconds, 808 tokens.

Twelve tasks on the demo app, from a fresh phone to a failing sign-in. Rerun it with scripts/golden-cloud.mjs.

TaskSecondsTokens
A cloud phone, ready2.710
The project from git5.3419
Build, install and launch15.1889
Read the screen0.6171
Sign in and wait for "Welcome"6.7529
Toggle a switch2.7514
Open an item4.3249
Back and scroll5.59138
The app's print output0.46122
Find a crash as file:line2.10142
Run 3 XCTests9.4912
A wrong password fails loudly11.96123
12 of 12 passed67.3808

On a NoMac cloud phone, October 24, 2026. Tokens are what the agent reads back.

Tools

One list for MCP and the CLI. Every step is checked: typed text is read back, and a tap that changes nothing says so.

app_run

Build, install and launch. Errors as file:line.

ui_look

The screen as text. A screenshot, or a full-size PNG.

ui_act

Tap, fill, scroll, swipe, wait. Answers with what changed.

tests_run

XCTest and XCUITest, case by case.

app_control

Install, deep links, permissions, location, push, locale.

app_logs

Print output, system logs and crashes.

screen_record

A video of the screen.

devices, device_use

Pick and boot a Simulator.

job_status, job_cancel

Follow or stop a long build.

cloud

Run every tool on a cloud iPhone instead.

Install

Needs a Mac with Xcode and Node 20. Nothing leaves your Mac unless you turn on cloud.

Add to CursorAdd to VS Code

claude mcp add simulator-use -- npx -y simulator-use mcp
codex mcp add simulator-use -- npx -y simulator-use mcp
{
  "mcpServers": {
    "simulator-use": { "command": "npx", "args": ["-y", "simulator-use", "mcp"] }
  }
}
npx simulator-use look
npx simulator-use act 'fill #email gary@example.com' 'tap #signIn'

No Mac? Use a cloud iPhone.

The same tools from Linux, Windows or CI, on an iPhone Simulator run by NoMac.

npx simulator-use cloud start
npx simulator-use run      # send, build, launch
npx simulator-use look
npx simulator-use cloud stop

# CI in one line
npx simulator-use cloud run . --tests
  • $0.80 an hour, by the minute. No subscription.
  • Only changed files are sent; builds stay incremental.
  • A live link to watch the phone, and a replay for 7 days.
  • A GitHub Action that tests each pull request.
nomac.app/simulator