DSH Plugins · Community project

dsh-ios

Display an iOS Simulator or USB-connected iPhone beside a DeepSeek Harness conversation, with device control, Xcode builds, UI inspection, logs and SwiftUI previews.

277 StarsMITTypeScriptUpdated 3 days ago
01

Project overview

dsh-ios brings a live device view into a DeepSeek Harness conversation. An agent can discover devices, build an Xcode project, inspect UI elements and perform actions while you watch or interact with the sidebar. Simulators use simctl and serve-sim; USB iPhones use WebDriverAgent. It is neither an iOS emulator for Windows nor a standalone remote-control service: the actual work depends on a Mac with Xcode.

dsh-ios displays a USB iPhone and WebDriverAgent tool results beside a DSH conversation
Physical-device demonstration from the author's README; not an AgentMatter test.View repository image
02

Core capabilities

01

Live display and interaction

The persistent sidebar supports taps, drags, rotation, screenshots and zoom. Tool-result cards can reopen the panel.

02

Identity-based UI actions

Accessibility tools locate labels and identifiers; Vision OCR can find text when the tree is unhelpful. Row tools identify list items and can verify counter changes.

03

Build and debug

Build, install and launch Xcode projects or Swift packages, then inspect unified logs, processes and app metadata. Backtrace and leak inspection are simulator-only.

04

SwiftUI previews

A temporary host outside the package loads preview code as a dynamic library and watches source changes for hot replacement.

03

Installation and usage

Verify a simulator first, then add a physical phone if needed. The npm package includes serve-sim, but does not prepare Xcode or WebDriverAgent signing.

AI AGENT INSTALL

Let an AI Agent install it

Send this prompt to Codex, Claude Code, or another AI agent that can work with your local environment.

Install dsh-ios from https://github.com/ZSeven-W/dsh-ios . Read README, package.json and LICENSE. Check macOS, full Xcode, a simulator runtime, Node.js ≥24.11.0 and DSH Web. Run `dsh plugin --profile web add @zseven-w/dsh-ios@latest`, then start or restart `dsh web`. Use an actual identifier returned by ios_sim_devices to boot a simulator and verify the live display and UI tree. Only if I request a physical phone, check USB, developer mode, WDA sources and signing. Ask before credentials, additional permissions, tool downloads, overwriting files or real-account actions. Do not automatically enable administrator privileges, like posts, send messages or make purchases. Report commands, changes and observed verification results.
01Before you start
  • macOS with full Xcode and at least one iOS Simulator runtime
  • Node.js ≥24.11.0 and a working DSH Web installation
  • README baseline DSH ≥0.1.0-rc.6; author-tested version 0.1.1-rc.1
02Copy the install command or configuration
dsh plugin --profile web add @zseven-w/dsh-ios@latest
dsh web
03Complete the setup steps
  1. 1
    Check the Mac toolchain

    Confirm full Xcode, an installed simulator runtime, Node.js ≥24.11.0 and a working `dsh web`. Command Line Tools alone are insufficient.

  2. 2
    Install and start Web

    Run the documented commands: ```sh dsh plugin --profile web add @zseven-w/dsh-ios@latest dsh web ``` Restart an existing Web process at an appropriate time.

  3. 3
    Boot a discovered simulator

    Ask the agent to list simulators with ios_sim_devices. Choose a returned name or UDID, call ios_sim_boot and check the live sidebar.

  4. 4
    Read the UI before adding a phone

    Open simulator Settings and call ios_sim_ui_tree, installing AXe if prompted. For the optional physical-phone path, prepare WDA sources, signing and developer mode, unlock the USB iPhone and pass its realDevices UDID to ios_real_start_wda.

How to verify the setup

Call ios_sim_devices and pass a returned simulator name or UDID to ios_sim_boot. Confirm that the sidebar updates continuously, then open Settings and read ios_sim_ui_tree. Actual UI nodes confirm that the inspection path works.

Before using it
  • UI-tree tools require AXe: `brew install cameroncooke/axe/axe` is documented, as is a pinned first-use download.
  • For a physical phone, prepare a WebDriverAgent checkout at `~/Library/Caches/dsh-ios/wda/src`, then call ios_real_start_wda.
  • Do not use real-account likes, messages or payments as a smoke test.
04

Use cases

SCENARIO 01

Inspect your app's interactions

Build an app, observe it in the sidebar and use element identities to inspect buttons, lists and state changes.

SCENARIO 02

Iterate on SwiftUI components

Start previews for a supported Swift package and inspect hot-reloaded source changes.

05

Assessment

This assessment is based on the README, manifest, license and commit history. Combining build, observation, actions and logs is useful for developers who already have Xcode. Signing and toolchain setup remain significant prerequisites; one npm command is not a complete physical-iPhone setup. We did not install or test it.

Why it may be useful

  • Live pixels and structured tools provide complementary feedback
  • Similar interaction interfaces for simulators and USB iPhones

What to know first

  • Non-macOS hosts can register the tools but cannot perform iOS device operations
  • WebDriverAgent sources must be prepared separately; the plugin does not clone them
  • Free-team signing lasts 7 days; physical devices do not support simulator-only backtrace or leaks
06

README

dsh-ios


Overview

Display an iOS Simulator or USB-connected iPhone beside a DeepSeek Harness conversation, with device control, Xcode builds, UI inspection, logs and SwiftUI previews. Display an iOS Simulator or USB-connected iPhone beside a DeepSeek Harness conversation, with device control, Xcode builds, UI inspection, logs and SwiftUI previews.

Getting started

  • Verify a simulator first, then add a physical phone if needed. The npm package includes serve-sim, but does not prepare Xcode or WebDriverAgent signing.
  • Device frames travel through signed same-origin DSH routes rather than direct browser access to serve-sim or WDA ports.
  • The 22 documented tools cover devices, builds, UI trees, OCR, logs, previews and debugging; simulator and physical-device coverage differs.
  • Call ios_sim_devices and pass a returned simulator name or UDID to ios_sim_boot. Confirm that the sidebar updates continuously, then open Settings and read ios_sim_ui_tree. Actual UI nodes confirm that the inspection path works.

Configuration

dsh plugin --profile web add @zseven-w/dsh-ios@latest
dsh web
Read the complete README on GitHub