Preface

Readers familiar with iOS development likely know the routine: compile in Xcode, switch to the Simulator, manually tap through the interface, and then paste screenshots or logs back into a chat window for AI analysis. DeepSeek Harness (DSH) makes “models, tools, and interfaces” a plug-and-play architecture, and the community has spawned numerous plugins for specific scenarios. Today, we introduce dsh-ios, open-sourced by maintainer ZSeven-W—it brings the iOS Simulator and USB-connected real iPhones directly into DSH conversations. The Agent can launch devices, compile and run Xcode projects, drive the interface via accessibility identifiers or OCR text, and you can even tap and drag directly on the real-time feed in the sidebar.

This plugin is categorized as a “client” in the SkillHub Plugin Directory, with about 217 GitHub stars and 22 forks (data synced from SkillHub’s directory). Note that SkillHub is a community-maintained DSH plugin directory, not officially affiliated with DeepSeek or High-Flyer; it’s recommended to review the source code and MIT license before installation.

What Is This

dsh-ios is a client-type plugin for DeepSeek Harness, with the npm package name @zseven-w/dsh-ios. In short: it provides an interactive real-time iOS Simulator feed within DSH conversations and supports controlling real iPhones via USB.

Its core pain point is bridging the gap between mobile development and Agent collaboration. Previously, Agents could only guess the interface state based on your descriptions or pasted screenshots. With dsh-ios installed, the device feed appears as an MJPEG stream in the DSH Web sidebar, and 22 Agent tools cover the entire chain—from launching the simulator and building/running projects, to semantic tapping, log reading, and process/leak analysis—enabling human-machine collaboration on the same “screen.”

Core Features and Highlights

Real-Time Simulator and USB Real Device

The plugin uses serve-sim to stream the simulator feed locally, proxied through DSH Web’s signed route /_dsh/dsh-ios/* to the “iOS Simulator” sidebar panel. Browsers don’t directly access the serve-sim port; visual data is only transmitted via HMAC-signed, 10-minute-expiring capability URLs.

The same set of tools applies to USB-connected real devices: calling ios_real_start_wda builds and launches WebDriverAgent on the phone, tunnels the control port and MJPEG feed to the local loopback address, and feeds it into the same sidebar panel. Real device operations have additional safety gates—e.g., no blind clicks on unidentified controls.

22 Agent Tools

The README categorizes the tools as follows (all available on macOS with Xcode):

Category Representative Tools Function
Core Simulator ios_sim_devices, ios_sim_boot, ios_sim_shutdown List devices, start/shutdown simulator
Feed & Interaction ios_sim_screenshot, ios_sim_interact Screenshots, taps, inputs, gestures, hardware keys
Build & Run ios_sim_build_run, ios_sim_launch_app Compile .xcodeproj / .xcworkspace / Swift Package and install/launch
Real Device WDA ios_real_start_wda Launch WebDriverAgent on USB iPhone
Accessibility Tree ios_sim_ui_tree, ios_sim_tap_element Tap by identifier/label via AXe (simulator) or WDA (real device)
List/Feed ios_sim_ui_rows, ios_sim_tap_row Parse list row labels and counters, tap with relative coordinates in rows
OCR ios_sim_find_text, ios_sim_tap_text, ios_sim_wait_for Vision framework to recognize Chinese/English text and tap
Logs ios_sim_logs Read simulator unified logs (snapshot or time-limited follow)
SwiftUI Preview ios_sim_preview Hot-reload SwiftUI Preview, refreshes in about 2–5 seconds after edits
Debugging ios_sim_processes, ios_sim_backtrace, ios_sim_leaks, ios_sim_app_info Process list, backtrace, leak analysis, app info

On non-macOS hosts, the plugin still loads and registers all tools, but calls return descriptive errors; in headless profiles without a web interface, tools work as usual, just without the real-time feed panel.

Interactive Sidebar Panel

The panel is fixed to the right of the conversation (can be a centered overlay on narrow screens) and supports:

  • Direct tap and drag gestures on the live feed;
  • Toolbar buttons for Home, screenshot, rotation, refresh, etc.;
  • Adaptive / 50%–125% / S·M·L sizes and frameless, bordered, or real-device frame styles;
  • Draggable width adjustment (max 960px, double-click to reset);
  • Auto-widening in landscape.

Tool results appear as compact cards in the conversation; clicking opens the sidebar. When the stream is live, a green status capsule “· Live” appears above the input field.

Installation and Setup

The current plugin version is 0.1.0-rc.3, and the README notes it’s tested on DSH ≥ 0.1.1-rc.1 (Web bundle). Official installation commands:

dsh plugin --profile web add @zseven-w/dsh-ios@latest
dsh web

To pin a version, replace @latest with a specific tag, e.g., @zseven-w/dsh-ios@0.1.0-rc.3.

You can also view the plugin entry in the SkillHub Directory Page; community directory and GitHub repository installation instructions should align with the README as the source of truth.

Typical Usage Examples

The official Quick Start describes a common conversation path that can be directly handed to the Agent:

  1. Discover Devices — “List available simulators.” → Call ios_sim_devices.
  2. Launch Simulator — “Start iPhone 17 Pro.” → ios_sim_boot; the sidebar automatically opens the live feed.
  3. Drive Interface — You can manually tap on the panel, or let the Agent use ios_sim_interact; for semantic operations, combine ios_sim_ui_tree + ios_sim_tap_element, or ios_sim_find_text + ios_sim_tap_text; for feed-style apps, use ios_sim_ui_rows + ios_sim_tap_row.
  4. Build & Run — “Build and run /path/to/MyApp.xcodeproj.” → ios_sim_build_run (full builds typically take several minutes).
  5. SwiftUI Preview Hot Reload — “Show SwiftUI preview for /path/to/MyPackage.” → ios_sim_preview’s start action.
  6. Real Device Debugging — After USB-connecting and unlocking an iPhone, “Launch WebDriverAgent on the phone.” → ios_real_start_wda; then use tools with the udid from realDevices to operate the real device.

Example: After listing devices and launching the simulator, the Agent might sequentially call ios_sim_devices, ios_sim_boot, and you’ll see the startup process in the sidebar without manually switching Xcode windows.

Environment Requirements and Notes

Hard Requirements

  • macOS with full Xcode (not just Command Line Tools), with at least one iOS Simulator Runtime installed.
  • DSH Web side for the sidebar live feed; headless mode only provides tool capabilities.
  • Optional dependencies:
  • AXe (brew install cameroncooke/axe/axe): For accessibility tree tools; or the plugin can auto-download and verify the binary.
  • Vision OCR: On first use of tools like ios_sim_find_text, the plugin compiles the built-in ocr.swift to ~/Library/Caches/dsh-ios/bin/ocr using swiftc.
  • Real Device Additional Requirements: USB cable, device unlocked, Developer Mode enabled, WebDriverAgent source code placed in ~/Library/Caches/dsh-ios/wda/src (the plugin won’t auto-clone); first build requires trusting the signing certificate on the phone; free developer account signatures are valid for about 7 days, after which ios_real_start_wda needs to be re-run.

Security and Permissions

DSH plugins run with the current dsh process’s permissions. dsh-ios calls system tools like xcodebuild, simctl, LLDB, and leaks, and in real device scenarios can execute actual taps and installations—please review the source code before installation to confirm you trust the maintainer and license terms.

For network transmission, the plugin restricts serve-sim and WDA ports to the loopback address, with browsers only communicating with the DSH Web origin; screenshot routes only serve files within the plugin’s cache directory. Even so, this plugin should not be equated with an “official security endorsement.”

Target Audience

  • macOS users using Agents in DSH to assist iOS / SwiftUI development;
  • Teams needing AI to “see and operate” simulator or test device interfaces;
  • Harness users looking to chain builds, UI automation, logs, and debugging into a single conversation flow.

Not suitable for: pure Linux/Windows environments, machines without Xcode installed, or scenarios where you don’t want Agents to access real-device production accounts.

The current version is still pre-release (0.1.0-rc.x), and the README lists known limitations like potential degradation of the leaks tool on iOS 26.2 Simulator; validate on test devices before production use.

Conclusion

If you’re already using DeepSeek Harness for iOS-related development, dsh-ios consolidates “watching the screen, tapping the interface, building the project, reading logs” into the conversation and sidebar, significantly reducing context switching between Xcode, terminal, and chat windows. Maintainer ZSeven-W also has companion plugins like dsh-android, which you might also follow for cross-platform Agent workflows.

  • SkillHub Directory Page: https://www.skillhub.cn/plugins/ZSeven-W/dsh-ios
  • GitHub Repository: https://github.com/ZSeven-W/dsh-ios
  • Installation Command: dsh plugin --profile web add @zseven-w/dsh-ios@latest