github Python analyzed 013a4f0

SyncTek-LLC/simdrive

github

Reproduce and validate iOS bugs in 60 seconds with Claude. MCP-native iOS Simulator + real-device automation. 32 vision-first tools. Elastic-2.0.

maintainer
SyncTek-LLC
license
NOASSERTION
first seen
2026-06-22
last seen
2026-07-22
releases · 30d
0
short id

Drift inferred · capture-to-capture

  1. HIGH code analysis flagged dynamic code execution ×3 in SyncTek-LLC/simdrive
capabilities 0 tools
transport stdio · http counts 0 tools · 0 res · 0 prompts permission surface via code analysis

No tools enumerated yet for this server.

skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 013a4f0 · analyzer v28 · 1d ago

skills & prompt files 1

danger signals3

code evidence vv1.0.0a9 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 417

filesystem 54

  • fs SyncTek-LLC-simdrive-013a4f0/simdrive/setup.py :16 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/cloud/app.py :22 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/cloud/storage/r2.py :28 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/cloud/storage/r2_stub.py :16 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/device.py :11 import shutil
  • fs SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/diagnostics.py :9 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/hid_inject.py :12 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/journey/ci.py :28 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/journey/claude_client.py :129 with open(screenshot_path, "rb") as fh:
  • fs SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/journey/loader.py :8 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/journey/mcp_sampling_client.py :19 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/journey/persona.py :15 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/journey/result.py :10 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/journey/runner.py :19 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/journey/schema.py :11 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/license/cli.py :19 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/license/entitlement.py :11 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/license/telemetry.py :44 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/license/trial.py :11 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/license/trial_history.py :26 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/observability/crash_sink.py :45 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/observe.py :19 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/perf.py :9 import shutil
  • fs SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/recorder.py :101 import shutil
  • fs SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/robustness.py :5 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/server.py :71 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/session.py :12 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/sim.py :5 import shutil
  • fs SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/som.py :12 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/update/check.py :35 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/wda/bootstrap.py :37 import shutil
  • fs SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/wda/errors.py :165 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/wda/registry.py :10 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/wda/som_device.py :63 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/backends/ax_backend.py :1373 with open(tmp, "rb") as fh:
  • fs SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/backends/retry_policy.py :154 """Return True when the circuit is open (consecutive failures exceeded threshold)."""
  • fs SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/cli/commands.py :32 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/cli/license_cmd.py :18 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/cli/setup.py :20 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/config.py :24 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/drivers/simulator/capture.py :17 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/drivers/simulator/crash.py :15 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/drivers/simulator/driver.py :183 with Image.open(tmp_path) as img:
  • fs SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/drivers/simulator/perf.py :15 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/drivers/simulator/state.py :11 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/mcp/server.py :59 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/project_injector.py :17 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/replay.py :28 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/runner_process.py :16 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/session_manager.py :23 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/sim_driver.py :345 img = Image.open(screenshot_path)
  • fs SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/som_annotator.py :564 img = Image.open(io.BytesIO(img_data)).convert("RGBA")
  • fs SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/som_runner.py :31 from pathlib import Path
  • fs SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/wda_driver.py :470 img = Image.open(path)

shell / exec 32

  • shell SyncTek-LLC-simdrive-013a4f0/simdrive/setup.py :14 import subprocess
  • shell SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/act.py :14 import subprocess
  • shell SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/ax.py :24 import subprocess
  • shell SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/device.py :12 import subprocess
  • shell SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/diagnostics.py :7 import subprocess
  • shell SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/hid_inject.py :11 import subprocess
  • shell SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/perf.py :10 import subprocess
  • shell SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/robustness.py :4 import subprocess
  • shell SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/server.py :67 import subprocess
  • shell SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/sim.py :6 import subprocess
  • shell SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/wda/bootstrap.py :38 import subprocess
  • shell SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/window.py :8 import subprocess
  • shell SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/backends/ax_backend.py :22 import subprocess
  • shell SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/backends/browserstack.py :15 import subprocess
  • shell SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/backends/indigo_hid.py :66 import subprocess
  • shell SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/cli/commands.py :28 import subprocess
  • shell SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/cli/setup.py :19 import subprocess
  • shell SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/config.py :23 import subprocess
  • shell SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/drivers/simulator/capture.py :14 import subprocess
  • shell SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/drivers/simulator/console.py :16 import subprocess
  • shell SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/drivers/simulator/crash.py :13 import subprocess
  • shell SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/drivers/simulator/driver.py :23 import subprocess
  • shell SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/drivers/simulator/interaction.py :30 import subprocess
  • shell SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/drivers/simulator/network.py :24 import subprocess
  • shell SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/drivers/simulator/perf.py :11 import subprocess
  • shell SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/drivers/simulator/state.py :10 import subprocess
  • shell SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/mcp/server.py :51 import subprocess
  • shell SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/project_injector.py :16 import subprocess
  • shell SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/runner_process.py :12 import subprocess
  • shell SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/session_manager.py :19 import subprocess
  • shell SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/sim_driver.py :22 import subprocess
  • shell SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/wda_driver.py :35 import subprocess

network 18

  • net SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/diagnostics.py :11 from urllib.parse import unquote, urlparse
  • net SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/license/cli.py :22 import requests
  • net SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/license/telemetry.py :47 import requests
  • net SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/server.py :720 # which is fine for screenshot_any() but wastes a new httpx.Client object (F-005).
  • net SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/update/check.py :38 import requests
  • net SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/wda/bootstrap.py :44 import httpx
  • net SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/wda/client.py :32 Transient transport errors (httpx.TransportError — connect/read timeouts,
  • net SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/backends/browserstack.py :16 import urllib.request
  • net SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/backends/xctest_client.py :18 import socket
  • net SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/cli/commands.py :1712 import urllib.request
  • net SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/cli/license_cmd.py :127 import httpx
  • net SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/drivers/simulator/network.py :277 from urllib.parse import urlparse
  • net SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/license/stripe_webhook.py :172 import httpx
  • net SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/license/validator.py :384 import httpx
  • net SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/runner_process.py :340 import urllib.request
  • net SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/session_manager.py :262 import socket
  • net SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/som_annotator.py :26 import urllib.request
  • net SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/wda_driver.py :38 import urllib.error

secrets 14

  • secrets SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/cloud/app.py :88 or os.environ.get("SIMDRIVE_LICENSE_PRIVATE_KEY")
  • secrets SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/cloud/config.py :29 default_factory=lambda: os.environ.get("SIMDRIVE_LICENSE_PRIVATE_KEY")
  • secrets SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/cloud/storage/r2.py :178 secret_access_key = os.environ.get("R2_SECRET_ACCESS_KEY")
  • secrets SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/journey/claude_client.py :98 api_key=api_key or os.environ.get("ANTHROPIC_API_KEY"),
  • secrets SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/backends/browserstack.py :41 self.access_key = access_key or os.environ.get("BROWSERSTACK_ACCESS_KEY", "")
  • secrets SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/cli/commands.py :350 api_key = os.environ.get("ANTHROPIC_API_KEY", "")
  • secrets SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/cli/license_cmd.py :265 if not os.environ.get("ANTHROPIC_API_KEY"):
  • secrets SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/cli/setup.py :267 api_key_set = bool(os.environ.get("ANTHROPIC_API_KEY"))
  • secrets SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/license/stripe_webhook.py :132 token = os.environ.get("SPECTERQA_KEYGEN_API_TOKEN", "")
  • secrets SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/license/validator.py :138 if not os.environ.get("ANTHROPIC_API_KEY", "").strip():
  • secrets SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/license/webhook_server.py :55 secret_configured = bool(os.environ.get("STRIPE_WEBHOOK_SECRET"))
  • secrets SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/mcp/server.py :849 license_key = arguments.get("license_key", os.environ.get("SPECTERQA_LICENSE_KEY", ""))
  • secrets SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/mcp/tier_gate.py :203 license_key = os.environ.get("SPECTERQA_LICENSE_KEY", "").strip()
  • secrets SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/som_runner.py :96 self.api_key = api_key or os.environ.get("ANTHROPIC_API_KEY", "")

database 4

  • db SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/cloud/app.py :156 from sqlalchemy import text
  • db SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/cloud/db/models.py :17 from sqlalchemy import (
  • db SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/cloud/db/usage.py :32 from sqlalchemy import Column, DateTime, Integer, String, UniqueConstraint
  • db SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/cloud/routes/trials.py :13 from sqlalchemy.orm import Session

install hooks 1

  • setup.py SyncTek-LLC-simdrive-013a4f0/simdrive/setup.py :64 setup(cmdclass={"build_py": BuildPyWithNative})

declared dependencies 18

  • mcp@>=1.0
  • Pillow@>=10.0
  • boto3@>=1.20
  • email-validator@>=2.0
  • httpx@<1.0
  • prometheus-client@>=0.19
  • pyobjc-framework-Quartz@>=10.0
  • pyobjc-framework-Vision@>=10.0
  • pydantic@>=2.0
  • pynacl@>=1.6.2
  • pyyaml@>=6.0
  • requests@>=2.28
  • scikit-image@>=0.22
  • anthropic@>=0.30
  • fastapi@>=0.115
  • hypothesis@>=6
  • uvicorn@>=0.20
  • sqlalchemy@>=2.0

clipboard 4

  • clipboard shell call SyncTek-LLC-simdrive-013a4f0/simdrive/src/simdrive/sim.py :174 ["xcrun", "simctl", "pbcopy", udid],
  • clipboard shell call SyncTek-LLC-simdrive-013a4f0/simdrive/tests/test_sim_module.py :264 with patch("simdrive.sim.subprocess.run", return_value=_fail("pbcopy fail")):
  • clipboard shell call SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/drivers/simulator/interaction.py :529 ["xcrun", "simctl", "io", self.device_id, "pbcopy"],
  • clipboard shell call SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/sim_driver.py :481 ["xcrun", "simctl", "pbcopy", self.udid],

transport_posture 1

  • network-listening, binds all interfaces, no auth detected SyncTek-LLC-simdrive-013a4f0/src/specterqa/ios/license/webhook_server.py :149 uvicorn.run(app, host="0.0.0.0", port=port)