Skip to main content

SimDrive — reproduce and validate iOS bugs in 60 seconds with Claude. MCP-native iOS automation; 32 vision-first tools; record once, replay free in CI. 14-day trial, then $29/mo Pro.

Project description

simdrive

Reproduce and validate iOS bugs in 60 seconds with Claude.

SimDrive is the MCP-native iOS automation toolkit your AI agent already knows how to drive. Hand it a Linear ticket, watch it walk the steps in the simulator (or a paired real device), and get back a deterministic recording that replays free in CI forever.

60-second bug repro

You (in Cursor / Claude Code):
  "Use simdrive to reproduce Linear ENG-1247 — sign-in fails on iPhone 17 /
   iOS 26.3 with test@example.com."

Claude:
  → session_start({device: "iPhone 17", os_version: "26.3", bundle_id: "com.acme.app"})
  → observe()                              # screenshot + annotated marks
  → tap({text: "Email"})
  → type_text({text: "test@example.com"})
  → tap({text: "Password"})
  → type_text({text: "pw123"})
  → tap({text: "Sign In"})
  → observe()                              # captures error toast
  → record_stop({name: "ENG-1247-repro"})  # YAML+PNG attached to PR

After you ship the fix, the same recording replays free in CI — no AI cost on every run.

What you get

  • Bug reproduction + validation (hero) — agent reads the ticket, drives the simulator, captures the failure, saves a deterministic recording.
  • Record → replay — recordings are YAML + PNG bundles that re-run identically on every CI build. Zero AI cost on replay.
  • Autonomous test suitesrun_journey reads a YAML journey with goals and success criteria; SimDrive drives the agent loop and reports pass/fail with evidence.
  • Real iOS device support — WebDriverAgent-backed; one-command simdrive bootstrap-device <udid> bring-up.
  • Visual regression detection — SSIM-based pre/post comparison with configurable drift handling.
  • Performance baselines + regression comparison — capture CPU / RSS / thread baselines and diff future runs.

Install + activate

pip install simdrive
simdrive trial start --email you@example.com
# 14 days full access, then:
simdrive auth <your-license-key>

The trial license is Ed25519-signed and machine-locked — it works offline, in CI sandboxes, and on developer laptops without network. After 14 days, paid licenses (simdrive auth …) unlock the full tool surface.

Requires: macOS, Xcode 15+, Python 3.10+.

Wire SimDrive into your MCP client

Add to .claude/mcp.json (Claude Code), claude_desktop_config.json (Claude Desktop), or your Cursor MCP config:

{
  "mcpServers": {
    "simdrive": { "command": "simdrive" }
  }
}

Restart the client. Your agent now has 32 SimDrive tools available.

Pricing

Plan Price What you get
Trial Free, 14 days All Pro features, machine-locked
Pro $29 / mo One seat, all tools, unlimited CI replays
Team $99 / seat / mo Multi-seat, shared recording cloud
Enterprise Contact Self-hosted licensing, SLA, integrations

Pricing + ROI calculator: https://simdrive.dev/pricing

Minimum-viable session

session_start(bundle_id="com.example.app")
observe()                                  # see initial screen
tap(label="Sign In")                       # tap a labelled control
observe()                                  # verify state
record_stop(session_id="...", name="signin-smoke")   # save replay
session_end(session_id="...")              # clean up

Maestro-compatible YAML

Migrating from Maestro? SimDrive parses the shorthand natively:

replay:
  bundle_id: com.example.app
  steps:
    - tapOn: "Sign In"
    - inputText: "user@example.com"
    - assertVisible: "Dashboard"
    - assertNotVisible: "Loading"
    - waitFor: "Feed"

Tool surface (32 MCP tools)

Group Tools
Lifecycle (3) session_start, session_end, session_status
Observe (1) observe
Act (5) tap, swipe, type_text, press_key, clear_field
Record/Replay (5) record_start, record_stop, replay, list_replays, validate_replay
Logs (1) logs
Performance (4) perf, perf_baseline, perf_compare, memory
Diagnostics (5) doctor, app_state, apps, crashes, list_devices
Robustness (4) dismiss_first_launch_alerts, pre_grant_permissions, set_appearance, dismiss_sheet
Recordings (2) lint_recordings, migrate_recording
Journeys (1) load_journey
Version (1) version

Canonical machine-readable list: simdrive/src/simdrive/server.py::_TOOLS.

Real-device support

Drive a paired iPhone or iPad in addition to the simulator:

export SIMDRIVE_ALLOW_PHYSICAL_DEVICE=1
simdrive bootstrap-device <device-udid>
session_start(bundle_id="com.example.app", udid="<device-udid>", target="device")

WDA bootstrap on iOS 26.x has some rough edges; the simulator (target="simulator", default) is the fully supported path.

Known limitations

See docs/LIMITATIONS.md for: type_text first-character drop workaround, SSIM-vs-structural-check semantics, SwiftUI half-sheet dismissal, appearance-respring caveats, real-device input scope.

License

Elastic License 2.0 — see LICENSE. Free for internal use; prohibits offering SimDrive as a competing managed service.

Built by SyncTek.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

simdrive-1.0.0b3.tar.gz (462.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

simdrive-1.0.0b3-py3-none-any.whl (242.6 kB view details)

Uploaded Python 3

File details

Details for the file simdrive-1.0.0b3.tar.gz.

File metadata

  • Download URL: simdrive-1.0.0b3.tar.gz
  • Upload date:
  • Size: 462.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for simdrive-1.0.0b3.tar.gz
Algorithm Hash digest
SHA256 e85d37d7d4bbff78d779cd2c8c19bcde6e6e36659c09ea45d3e279cc391d6aac
MD5 4c655f41e7e23d09f3fdcd3d7d63e5b7
BLAKE2b-256 ffd3880c36d336ee377c910213acf9c631c147494f2e56ffc970653ead216892

See more details on using hashes here.

Provenance

The following attestation bundles were made for simdrive-1.0.0b3.tar.gz:

Publisher: specterqa-ios-publish.yml on SyncTek-LLC/simdrive

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file simdrive-1.0.0b3-py3-none-any.whl.

File metadata

  • Download URL: simdrive-1.0.0b3-py3-none-any.whl
  • Upload date:
  • Size: 242.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for simdrive-1.0.0b3-py3-none-any.whl
Algorithm Hash digest
SHA256 e31f5eea21458d0eee830f178df475489e33129ce54b96adaee6a623c5ea88dc
MD5 990b8b8b77789658ca78ebccbb8d6f6c
BLAKE2b-256 cc3112e240980e6305f9c7df8087c03e0cb8e51d8949b0b935adb9de500f4a03

See more details on using hashes here.

Provenance

The following attestation bundles were made for simdrive-1.0.0b3-py3-none-any.whl:

Publisher: specterqa-ios-publish.yml on SyncTek-LLC/simdrive

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page