Reproduce your first bug
Install
Requirements
Section titled “Requirements”- macOS (Apple silicon or Intel)
- Xcode 15 or later, with command-line tools installed (
xcode-select --install) - Python 3.10+
SimDrive drives the iOS Simulator via simctl and (optionally) paired
physical devices via WebDriverAgent. Linux and Windows are not supported —
the underlying tools are macOS-only.
Install
Section titled “Install”pip install simdriveVerify:
simdrive versionsimdrive doctor # walks every dependency, prints a green/red tabledoctor is your first stop whenever something looks off — it surfaces missing
Xcode, broken simulator runtimes, stale simctl caches, and WDA bootstrap
issues without spinning up a real session.
Start a trial
Section titled “Start a trial”simdrive trial start --email you@example.comThe trial is 14 days, all Pro features, fully offline. The license is Ed25519-signed and machine-locked — it works in CI sandboxes, on flights, and on developer laptops that can’t reach the network. There is no phone-home check after activation.
After 14 days, paid licenses unlock the full surface:
simdrive auth <your-license-key>See Licensing — Paid for what to do if your key is lost or you move to a new machine.
Wire SimDrive into your MCP client
Section titled “Wire SimDrive into your MCP client”SimDrive runs as an MCP server. Add it once, your agent gets all 32 tools.
Add to .claude/mcp.json (project-scoped) or ~/.claude/mcp.json (global):
{ "mcpServers": { "simdrive": { "command": "simdrive" } }}Or use the CLI:
claude code mcp add simdrive simdriveRestart Claude Code. Type /mcp to confirm simdrive is listed and
connected.
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{ "mcpServers": { "simdrive": { "command": "simdrive" } }}Quit and relaunch Claude Desktop.
Edit ~/.cursor/mcp.json:
{ "mcpServers": { "simdrive": { "command": "simdrive" } }}Restart Cursor.
Smoke test
Section titled “Smoke test”In your MCP client, ask:
Use simdrive to start a session against the default simulator, observe the home screen, and stop the session.
You should see your agent call session_start, observe, and session_end
in that order. If it does — you’re wired in.
Understand the MCP model