Clarklevis1995/dsh-mobile
—
安装Install
dsh plugin --profile web add github:Clarklevis1995/dsh-mobile
把 Clarklevis1995/dsh-mobile 加入你的 DSH 配置(web profile)即可启用。
READMEREADME

DeepSeek Harness Mobile
在 iPhone 上延续 DeepSeek Harness 的原生工作流。
一个使用 SwiftUI 构建的 DeepSeek Harness iOS 客户端,在移动端还原 WebUI 的对话、轨迹与工作区体验。
项目简介
DeepSeek Harness Mobile 是一个面向 DeepSeek Harness 的原生 iOS 客户端。它通过 dsh-plugin-mobile-gateway 与 Harness 建立 WebSocket 连接,将工作区、会话、实时回复和 Agent 执行轨迹带到 iPhone,同时延续 DeepSeek WebUI 克制、清晰的视觉语言。
界面提供浅色与深色模式,并在支持的系统上使用 Liquid Glass 导航与交互控件;深色首页则以深海蓝、水波纹、网格和点阵鲸鱼构成与 Harness 官网一致的视觉氛围。
项目海报
功能亮点
- 原生实时对话:接收 WebSocket 增量事件,逐步展示正文、思考过程、工具调用和工具结果。
- 历史与实时解耦:大量历史记录分页合并时,实时尾部仍可独立更新,避免阻塞生成和用户滚动。
- 智能吸底:停留在底部时跟随新内容;用户主动浏览历史后停止抢夺滚动位置。
- 完整轨迹视图:查看 Duration、Turns、Calls、Input、Model、Tools 时间线,并展开单条记录的参数、结果、Schema 与耗时。
- 工作区与会话管理:浏览目录、创建或切换工作区,搜索会话并创建新会话。
- 会话配置:切换当前会话的模型、思考等级与访问权限。
- 全局默认配置:设置新会话默认使用的 Agent 预设、权限、模型和思考等级,并与 WebUI 使用同一部署配置。
- 安全配对:支持扫描 WebUI 二维码或手动连接;长期凭据保存在系统安全存储中。
- 移动端交互:对话与轨迹页面常驻并支持左右滑动切换,保留各自的滚动位置和页面状态。
界面预览
核心体验
![]() |
![]() |
![]() |
| 工作区首页 Harness 视觉与最近会话 |
对话 Markdown、代码与工具结果 |
轨迹 时间概览与事件时间线 |
默认配置
![]() |
![]() |
![]() |
| 设置 部署默认值与网关状态 |
Agent 预设 工具、提示词与能力组合 |
默认模型 模型与思考等级 |
工作区操作与轨迹详情
![]() |
![]() |
![]() |
| 切换工作区 快速访问不同项目 |
目录选择 浏览并创建工作区 |
轨迹详情 摘要、Token 与内容预览 |
浅色、深色与设备配对
![]() |
![]() |
![]() |
| 浅色配对 手动输入配对信息 |
深色配对 完整深色模式适配 |
深色对话 阅读、代码与输入面板 |
功能详解
对话与轨迹
同一个 Session 内可以在“对话”和“轨迹”之间点击或横向滑动切换。两个页面保持独立生命周期,切换时不会重新加载已有内容。
- 对话页支持 Markdown、代码块、实时 reasoning、工具摘要和工具结果。
- 轨迹页以角色标签和时间轴组织 User、Assistant、Tool 等事件。
- 点击轨迹记录可从 Bottom Sheet 查看请求摘要、原始参数、结果、Token 用量与耗时。
Agent、模型与权限
应用既能调整当前会话,也能维护之后新建会话使用的部署级默认值:
| 配置 | 能力 |
|---|---|
| Agent 预设 | 读取可用预设并设为全局默认值 |
| 默认模型 | 选择 Provider、模型与默认思考等级 |
| 会话模型 | 在运行中的 Session 内切换模型和 reasoning effort |
| 权限 | 支持 read-only、workspace-write、danger-full-access |
配对与可信设备
移动端可扫描 WebUI 生成的一次性二维码完成配对。公网地址必须使用 wss://,配对码仅可使用一次并会在短时间后过期;已配对设备可在网关管理界面中查看和管理。
配对步骤
确认当前尚未配对。 第一次进入 DshMobile 时,应用可能提示“鉴权失败(HTTP 401)”。这表示当前设备还没有与 Mobile Gateway 完成配对,关闭提示后继续下面的操作即可。
打开配对页面。 点击 App 右上角的鉴权按钮,在弹出的“设备认证”页面中选择扫码,或准备手动输入 WebUI 生成的 Base64URL 配对 Token。
在 WebUI 中打开移动设备管理。 成功安装并启用
dsh-plugin-mobile-gateway后启动 DeepSeek Harness WebUI,左侧导航栏底部会出现“移动设备”入口,点击进入。
开启网关和设备鉴权。 WebUI 右侧会弹出“移动设备”面板,请同时开启“允许移动设备连接”和“设备鉴权”两个开关。
确认地址并生成二维码。 检查 WebSocket 地址是否为手机能够访问的 Mac 局域网 IP,然后填写设备名称并点击“生成配对二维码”。同一局域网可以使用
ws://;通过公网连接时必须使用wss://。
选择扫码或手动输入。 根据需要,使用 DshMobile 扫描 WebUI 中的二维码;也可以点击“复制配对 Token”,再将 Token 粘贴到 App 的设备认证页面。配对 Token 只能使用一次,并会在 5 分钟后过期。
确认连接成功。 配对完成后返回首页,最近会话区域右侧会显示绿色“已连接”状态,此时即可开始使用移动端。
技术实现
DeepSeek Harness
│
│ dsh-plugin-mobile-gateway
│ WebSocket / history / configuration
▼
URLSessionWebSocketTask
│
├── Workspaces & Sessions
├── Historical pages
├── Live event tail
└── Defaults & Presets
▼
SwiftUI + UIKit interoperability
- SwiftUI 原生界面,必要位置与 UIKit 协作以获得稳定的分页、滚动和增量渲染体验。
- 历史分页与实时事件尾部采用独立数据路径,再按事件身份安全合并。
- 已渲染消息保持稳定,流式传输时只更新正在生成的内容块。
- iOS 26 及以上使用系统 Liquid Glass 能力,较早系统使用视觉一致的材质回退。
运行项目
环境要求
- macOS 与可构建 iOS 17.0+ 的 Xcode
- iOS 17.0+ 模拟器或真机
- 已启用
dsh-plugin-mobile-gateway的 DeepSeek Harness
启动步骤
- 启动 DeepSeek Harness,并确认
dsh-plugin-mobile-gateway已加载。 - 使用 Xcode 打开
DeepSeekHarnessMobile.xcodeproj。 - 选择
DeepSeekHarnessMobileScheme 和目标设备后运行。 - 在应用中扫描 WebUI 配对二维码,或手动填写网关地址。
本机调试时常用的连接地址:
| 场景 | 地址 |
|---|---|
| iOS Simulator | ws://127.0.0.1:3080/ws/mobile |
| 同一局域网内的 iPhone | ws://<Mac-LAN-IP>:3080/ws/mobile |
| 公网部署 | wss://<your-domain>/ws/mobile |
[!NOTE] 真机不能使用
127.0.0.1访问 Mac,请改用 Mac 的局域网 IP;公网部署应在网关前配置 TLS 反向代理。
项目文档
当前状态
项目仍处于开发阶段,协议与界面会随 DeepSeek Harness 持续演进。它是面向 Harness 的社区原生客户端,不代表 DeepSeek 官方发布。











ruvnet/ruflo
amruthpillai/reactive-resume
volcengine/OpenViking
Molunerfinn/PicGo
titanwings/colleague-skill
nocobase/nocobase