DSH iOS Simulator plugin
A DeepSeek Harness plugin: iOS Simulator and a USB iPhone inside the chat, with 22 tools to drive them
- 351 ★ on the repository
- Last commit
- MIT
Broad access
Why this level
- The agent taps and types on the simulator and on a real iPhone, including real accounts
- The plugin builds and launches WebDriverAgent on the phone and compiles helper code on your Mac
- The screen stream is served by a local web server
Install
Manual install
dsh plugin --profile web add @zseven-w/dsh-ios@latestAfter adding the plugin run dsh web. For UI tree tools install AXe with brew install cameroncooke/axe/axe.
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- The agent taps and types on the simulator and on a real iPhone, including real accounts
- The plugin builds and launches WebDriverAgent on the phone and compiles helper code on your Mac
- The screen stream is served by a local web server
This is third-party code. Review the repository files before installing.
What it does
DSH iOS Simulator shows a live iOS Simulator in the sidebar of a DeepSeek Harness conversation, and the agent drives it. The agent boots a device and builds and runs an Xcode project or a Swift package. For debugging it reads unified logs and inspects processes, backtraces and leaks. Meanwhile you see the video stream and can tap and drag right on the picture, rotate the screen and press Home. The agent navigates the interface three ways: by accessibility identity (ios_sim_ui_tree and ios_sim_tap_element), by text through Vision recognition (ios_sim_find_text and ios_sim_tap_text) and by list rows with counter verification (ios_sim_ui_rows and ios_sim_tap_row). For SwiftUI there is hot reload of previews: a source edit shows up in the simulator in 2–5 seconds. The same commands work on a real iPhone over USB. The ios_real_start_wda tool builds and launches WebDriverAgent on the phone, tunnels its ports over loopback and puts the screen into the same panel. The picture flows only through signed links that live no longer than ten minutes.
Who it is for. For iOS developers on a Mac who work in DeepSeek Harness and want the agent to build the app and walk through its screens itself.
Good fit when
- An agent has to build an Xcode project, run it in the simulator and check the screens
- You want to watch the device and step in with a tap right in the conversation
- You need to check the app on a real iPhone connected over USB
- You need to scroll a feed or list and verify that a like counter changed by one
- You need hot reload of SwiftUI previews as you edit source
Not a fit when
- You do not have a Mac with Xcode: the plugin builds projects and runs the simulator with Apple tools
- You work in Claude Code or Cursor: the plugin is made for DeepSeek Harness
- You need to drive Android: the tools target iOS
- The phone cannot be unlocked and connected with a data cable
Example request
Boot the iPhone 17 Pro, build /path/to/MyApp.xcodeproj, open Settings and tap GeneralLimitations
You need a Mac, Xcode and DeepSeek Harness. The tools with the UI tree need the AXe utility: `brew install cameroncooke/axe/axe` installs it, or the plugin downloads it itself on first use. For text recognition the first call compiles ocr.swift with swiftc. For backtraces and leak checks to work, enable developer mode with `sudo DevToolsSecurity -enable`.
If a call on a real iPhone fails, the reason comes as a code: device-locked, cert-untrusted, profile-expired, tunnel-failed or device-unplugged. Every tap on a real account goes through the «identify first, then tap» rules.
How to disable. Remove the plugin from the DeepSeek Harness profile with the `dsh plugin` command and restart `dsh web`. Stop WebDriverAgent on the phone by unplugging the cable.
FAQ
How do I install DSH iOS Simulator?
Run `dsh plugin --profile web add @zseven-w/dsh-ios@latest`, then `dsh web`. The plugin is published on npm as @zseven-w/dsh-ios.
What if ios_sim_ui_tree does not work?
The AXe utility is probably not installed. Install it through Homebrew or let the plugin download a release on the first call.
How do I control a real iPhone?
Connect the phone with a data cable, unlock it and ask the agent to start WebDriverAgent. The call is ios_real_start_wda, after which every tool accepts the device udid.
How do I verify that a tap in a list worked?
The ios_sim_tap_row tool taps inside a row at relative coordinates and checks that the counter changed by the expected one. It is the only reliable confirmation for feed apps.
Who can see the screen stream?
The stream goes through DSH web server routes that accept requests from a local address only, and the links are signed and expire within ten minutes.
Discussion
No questions or reviews yet.
Related
PluginsThe npx serve-sim command streams an iOS Simulator to the browser and lets an agent tap, swipe, type and replace the camera feed
A skill with scripts for building iOS apps and driving the simulator through the accessibility tree, with compact output for agents
An MCP server for the iOS Simulator: taps, swipes, text input, accessibility tree, screenshots, video and app control
Lets Claude Code and Codex drive a real iPhone: read the screen, tap, type and scroll in any app
An MCP server that takes plain-language commands and drives the iOS Simulator through idb: apps, taps, logs
A skill that teaches an agent to drive iOS Simulators, Android Emulators and USB phones through the simvyn command line tool
Comparison with similar tools
Entries that share the main search query, and how they differ.
| Entry | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| DSH iOS Simulator (this entry) | no | 351 | ||
| iOS Simulator MCP Server | no | not required | 2,201 | an MCP server for taps, swipes and input in the simulator with no live panel |
| XcodeBuildMCP (now MobileBuildMCP) | yes | not required | 6,513 | Sentry's MCP server and CLI for building, running and testing Xcode |
| serve-sim | no | 2,905 | the npx serve-sim command streams the simulator to the browser |
README in short
The quick start fits into six steps, from installing the plugin to the first tap in the simulator. A separate section covers common iPhone connection errors and their codes.