Skip to main content
simdrive

v0.1 alpha · macOS only · Elastic-2.0

The iOS simulator
your AI agent can
actually drive.

Three primitives. ios_observe, ios_act, ios_record. Exposed as Python functions and MCP tools. Replays run free, forever, with no API tokens.

Terminal window
pip install simdrive
[ 30s demo placeholder — W2 ]

Used by agentic teams shipping iOS

[ design partner 1 ] [ design partner 2 ] [ design partner 3 ] [ design partner 4 ]

PRIMITIVES

Three functions. That's the whole API.

No DSL. No YAML. No selectors. Your agent reads the simulator state and acts on it the same way a human tester does — only deterministically.

01

ios_observe()

Screenshot + accessibility tree, returned as a typed state object.

from simdrive import ios_observe
# Capture the current simulator state — screenshot + accessibility tree.
state = ios_observe()
print(state.elements) # list of (role, label, frame) tuples

02

ios_act()

Tap, type, swipe, scroll. Validated against the last observed state.

from simdrive import ios_act
# Drive the simulator. Coordinates are validated against the
# observed state — no blind taps.
ios_act("tap", target="Sign In")
ios_act("type", text="hello@example.com")

03

ios_record()

Capture a deterministic replay. Run it free in CI — no AI tokens.

from simdrive import ios_record
# Capture a deterministic replay file as the agent works.
with ios_record("smoke.replay.json"):
ios_act("tap", target="Sign In")
ios_act("type", text="hello@example.com")
# Replay it free, forever, in CI.

HOW IT WORKS

Observe → Act → Record. Then replay.

[ architecture diagram placeholder — W2 ]

COMPARISON

Why not Maestro or Appium?

Both are excellent for human-authored tests. SimDrive optimizes for a different caller: an LLM agent that needs structured state in and structured actions out.

SimDrive Maestro Appium
Primary caller LLM agent Human via YAML Human via WebDriver
Observation screenshot + a11y tree hierarchy dump XML page source
Action validation against last observation selector-based selector-based
Replay cost free, deterministic free free
MCP server built-in n/a n/a

MCP INSTALL

Plug into your agent in one config block.

SimDrive ships an MCP server. Add it to your client config — nothing else to install.

# .mcp.json — Claude Code
{
"mcpServers": {
"simdrive": {
"command": "uvx",
"args": ["simdrive", "mcp"]
}
}
}

PRICING

Free to run. Pay to scale.

Replays are always free. Pricing covers parallel CI, team seats, and priority support.

See pricing →

QUOTES

What developers are saying

[ design partner quote — W3 ]

[ design partner quote — W3 ]