在对话里直接操控 iOS 模拟器与真机:DSH 插件 dsh-ios 介绍

前言

做 iOS 开发的读者大概都熟悉这套流程:在 Xcode 里编译、切到 Simulator、手动点几下界面,再把截图或日志贴回聊天窗口,让 AI 帮忙分析。DeepSeek Harness(简称 DSH)把「模型、工具、界面」都做成可插拔架构,社区里也出现了不少面向具体场景的插件。今天要介绍的是维护者 ZSeven-W 开源的 dsh-ios——它把 iOS 模拟器,以及通过 USB 连接的真机 iPhone,直接搬进 DSH 对话里:Agent 可以启动设备、编译运行 Xcode 工程、按无障碍标识或 OCR 文本驱动界面,你还能在侧边栏的实时画面上直接点按、拖拽。

该插件在 SkillHub 插件库 归类为「客户端」,GitHub 仓库约 217 星、22 个 fork(数据来自 SkillHub 目录同步)。需要说明的是,SkillHub 是社区维护的 DSH 插件目录,与 DeepSeek / 幻方并无官方从属关系;安装前仍建议自行阅读源码与 MIT 许可证。

这是什么

dsh-ios 是 DeepSeek Harness 的客户端类插件,npm 包名为 @zseven-w/dsh-ios。一句话概括:在 DSH 对话中提供可交互的 iOS 模拟器实时画面,并支持通过 USB 控制真实 iPhone。

它解决的核心痛点是「移动端开发与 Agent 协作之间的断层」。以往 Agent 只能根据你口述或粘贴的截图猜测界面状态;装上 dsh-ios 后,设备画面以 MJPEG 流形式出现在 DSH Web 侧边栏,22 个 Agent 工具覆盖启动模拟器、构建运行、语义化点击、日志读取、进程与泄漏分析等完整链路,人机可以在同一块「屏幕」上协同。

核心功能与亮点

实时模拟器与 USB 真机

插件通过 serve-sim 在本地启动模拟器画面流,经 DSH Web 服务端的签名路由 /_dsh/dsh-ios/* 代理到侧边栏面板「iOS 模拟器」。浏览器不直接访问 serve-sim 端口,视觉数据只通过带 HMAC 签名、10 分钟内过期的 capability URL 传输。

同一套工具也适用于 USB 连接的真机:调用 ios_real_start_wda 会在手机上构建并启动 WebDriverAgent,将控制端口与 MJPEG 画面隧道到本机回环地址,再流入同一个侧边栏面板。真机操作有额外安全门控——例如未识别控件前不会盲目点击。

22 个 Agent 工具

README 将工具分为以下几类(均在 macOS + Xcode 环境下可用):

类别 代表工具 作用
核心模拟器 ios_sim_devicesios_sim_bootios_sim_shutdown 列举设备、启动/关闭模拟器
画面与交互 ios_sim_screenshotios_sim_interact 截图、点击、输入、手势、硬件键
构建运行 ios_sim_build_runios_sim_launch_app 编译 .xcodeproj / .xcworkspace / Swift Package 并安装启动
真机 WDA ios_real_start_wda 在 USB iPhone 上启动 WebDriverAgent
无障碍树 ios_sim_ui_treeios_sim_tap_element 基于 AXe(模拟器)或 WDA(真机)按标识/标签点击
列表/信息流 ios_sim_ui_rowsios_sim_tap_row 解析列表行标签与计数器,在行内相对坐标点击
OCR ios_sim_find_textios_sim_tap_textios_sim_wait_for Vision 框架识别中英文文本并点击
日志 ios_sim_logs 读取模拟器统一日志(快照或限时跟随)
SwiftUI 预览 ios_sim_preview 热重载 SwiftUI Preview,编辑后约 2–5 秒刷新
调试 ios_sim_processesios_sim_backtraceios_sim_leaksios_sim_app_info 进程列表、回溯、泄漏分析、应用信息

非 macOS 主机上插件仍会加载并注册全部工具,但调用会返回说明性错误;无 Web 界面的 headless profile 下工具照常工作,只是没有实时画面面板。

可交互侧边栏面板

面板固定在对话右侧(窄屏下可居中浮层),支持:

  • 在实时视频上直接点击、拖拽手势;
  • Home、截图、旋转、刷新等工具栏按钮;
  • 适应 / 50%–125% / S·M·L 尺寸与无框、边框、真机框样式;
  • 拖拽调整宽度(最大 960 px,双击复位);
  • 横屏时自动加宽。

工具结果在对话中以紧凑卡片呈现,点击可打开侧边栏;流在线时输入框上方还会出现绿色状态胶囊「· 实时」。

安装与启用

当前插件版本为 0.1.0-rc.3,README 注明已在 DSH ≥ 0.1.1-rc.1(Web bundle)上测试。官方安装命令如下:

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

若需固定版本,可将 @latest 换成具体 tag,例如 @zseven-w/dsh-ios@0.1.0-rc.3

也可在 SkillHub 目录页 查看该插件条目;社区目录与 GitHub 仓库的安装说明应保持一致,以 README 原文为准。

典型用法示例

官方 Quick Start 描述了一条常见对话路径,可直接交给 Agent 执行:

  1. 发现设备 — 「列出可用的模拟器。」→ 调用 ios_sim_devices
  2. 启动模拟器 — 「启动 iPhone 17 Pro。」→ ios_sim_boot,侧边栏自动打开实时画面。
  3. 驱动界面 — 你可在面板上手动点按,或让 Agent 使用 ios_sim_interact;需要语义化操作时,可组合 ios_sim_ui_tree + ios_sim_tap_element,或 ios_sim_find_text + ios_sim_tap_text;信息流类 App 可用 ios_sim_ui_rows + ios_sim_tap_row
  4. 编译运行 — 「构建并运行 /path/to/MyApp.xcodeproj。」→ ios_sim_build_run(完整构建通常需要数分钟)。
  5. SwiftUI 预览热重载 — 「展示 /path/to/MyPackage 的 SwiftUI 预览。」→ ios_sim_previewstart 动作。
  6. 真机调试 — USB 连接 iPhone 并解锁后,「在手机上启动 WebDriverAgent。」→ ios_real_start_wda;之后各工具传入 realDevices 中的 udid 即可操作真机。

示例:列出设备并启动模拟器后,Agent 可能依次调用 ios_sim_devicesios_sim_boot,你在侧边栏即可看到启动过程,无需再手动切换 Xcode 窗口。

环境要求与注意事项

硬性环境

  • macOS + 完整 Xcode(不能只有 Command Line Tools),需安装至少一个 iOS Simulator Runtime。
  • DSH Web 端 用于侧边栏实时画面;headless 模式仅有工具能力。
  • 可选依赖:
  • AXebrew install cameroncooke/axe/axe):无障碍树相关工具;也可由插件自动下载校验后的二进制。
  • Vision OCR:首次使用 ios_sim_find_text 等工具时,插件会用 swiftc 编译内置 ocr.swift~/Library/Caches/dsh-ios/bin/ocr
  • 真机额外要求:USB 数据线、设备已解锁、开启 Developer Mode、在 ~/Library/Caches/dsh-ios/wda/src 放置 WebDriverAgent 源码(插件不会自动克隆),首次构建需在手机上信任签名证书;免费开发者账号签名约 7 天有效,过期后需重新执行 ios_real_start_wda

安全与权限

DSH 插件以当前 dsh 进程的权限运行。dsh-ios 会调用 xcodebuildsimctl、LLDB、leaks 等系统工具,真机场景还能执行真实点击与安装操作——安装前请阅读源码,确认你信任维护者与许可证条款

网络传输方面,插件将 serve-sim 与 WDA 端口限制在回环地址,浏览器只与 DSH Web 源通信;截图路由仅服务插件缓存目录内的文件。即便如此,也不应把该插件等同于「官方安全背书」。

适用人群

  • 在 DSH 中用 Agent 辅助 iOS / SwiftUI 开发的 macOS 用户;
  • 需要让 AI「看见并操作」模拟器或测试机界面的团队;
  • 希望把构建、UI 自动化、日志与调试串进同一条对话链路的 Harness 用户。

不适合:纯 Linux/Windows 环境、未安装 Xcode 的机器,或不愿让 Agent 接触真机生产账号的场景。

当前版本仍为预发布(0.1.0-rc.x),README 也列出了 iOS 26.2 模拟器上 leaks 工具可能降级等已知限制,生产环境使用前建议先在测试设备上验证。

结尾

如果你已经在用 DeepSeek Harness 做 iOS 相关开发,dsh-ios 把「看屏幕、点界面、编工程、读日志」收敛进对话与侧边栏,能明显减少在 Xcode、终端和聊天窗口之间来回切换的成本。维护者 ZSeven-W 同期还有 dsh-android 等配套插件,跨端 Agent 工作流可以一并关注。

  • SkillHub 目录页:https://www.skillhub.cn/plugins/ZSeven-W/dsh-ios
  • GitHub 仓库:https://github.com/ZSeven-W/dsh-ios
  • 安装命令:dsh plugin --profile web add @zseven-w/dsh-ios@latest
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜