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.0b5.tar.gz (518.5 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.0b5-py3-none-any.whl (259.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: simdrive-1.0.0b5.tar.gz
  • Upload date:
  • Size: 518.5 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.0b5.tar.gz
Algorithm Hash digest
SHA256 61effe5e310f930b7f37ee67c8fac9db8c218d4a31963299575ab81321d7e1b9
MD5 b1c5f131387eb3221f84568de8696bcc
BLAKE2b-256 a0200bd0b93e81489a085813d0f22dedfde3159790f7aba08abd2d5d119a0c05

See more details on using hashes here.

Provenance

The following attestation bundles were made for simdrive-1.0.0b5.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.0b5-py3-none-any.whl.

File metadata

  • Download URL: simdrive-1.0.0b5-py3-none-any.whl
  • Upload date:
  • Size: 259.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.0b5-py3-none-any.whl
Algorithm Hash digest
SHA256 bcd6eab122c5637d3a7fbd48eef66af52141dfe7a63a10b013c0a61892209f5b
MD5 13e66dd052d5d1dde4052236e742a21d
BLAKE2b-256 39a8dc430539b2fbc96ccd302091d45332fc449217e64b4aee9126cfdadf0475

See more details on using hashes here.

Provenance

The following attestation bundles were made for simdrive-1.0.0b5-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