DeepSeek Harness Hub
← 返回列表

liulingfei-1/deepseek-harness-ios

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
需源码安装

把 DeepSeek Harness 的 Agent 工作流带到 iPhone:推理走你自己的模型…

暂不能直接安装(需源码编译或环境不满足):仓库缺少 package.json,无法用 dsh 插件安装命令安装。 · 最近上游提交 2026/9/13 · 已提供中文文档

原生 iOS DeepSeek Harness 移植:BYOK 推理、端侧 Agent 工具、iSH 沙盒、Cordis 插件与轨迹。

综合分
34.7
GitHub 分
34.7
用户评分
★ Stars
7
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add liulingfei-1/deepseek-harness-ios
仓库缺少 package.json,无法用 dsh 插件安装命令安装,改用 GitHub 源安装
数据截至 2026/9/15(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查需源码安装

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

npm 包deepseek-harness-ios(未发布到 npm,仅可源码安装)
Node 引擎未声明 engines.node
dsh CLI 依赖未声明 dsh 版本约束
入口文件缺少入口声明

仓库缺少 package.json,无法用 dsh 插件安装命令安装

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/18 05:20:13

用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

Harness Mobile

把 DeepSeek Harness 的 Agent 工作流带到 iPhone:推理走你自己的模型 API,工具、插件与命令默认在设备本机执行。

Platform
Swift
UI
Execution
DeepSeek Harness
License

iOS · SwiftUI · DeepSeek · OpenAI-compatible · Anthropic · Cordis · iSH · OpenMinis · Agent

[!WARNING]
这是面向个人 Xcode 侧载与开发调试的实验性项目,不是 App Store 发行版。请使用独立、限额、可撤销的模型 API Key;不要把密钥、私密日志或工作区内容提交到 Issue。

Harness Mobile 不是网页壳,也不会把命令悄悄转发到服务器。它是一个原生 SwiftUI Agent 客户端:模型推理由用户配置的 HTTPS API 完成;Agent loop、文件工作区、会话、轨迹、iOS 工具、Cordis Host-half 插件和 Linux 命令默认都在 iPhone 上运行。D-011 定义的 e2b、webhook、ACP 远程后端必须显式配置并显示状态,当前仍按能力目录保留 TODO/VERIFY。

项目优先首页 · 项目归档/恢复 · 聚焦附件的聊天输入(iOS 27.0 Simulator)

Agent 轨迹 · 原生插件编译诊断 · GitHub 仓库安装边界(iOS 27.0 Simulator)

为什么做它

桌面 Harness 的核心体验并不只是一个聊天窗口,而是模型、工具、上下文、轨迹、工作区与插件共同组成的可观察 Agent loop。Harness Mobile 选择把这条 loop 保留在手机上,并按 iOS 的能力边界重新实现。

- BYOK 模型层:DeepSeek、OpenAI-compatible 与 Anthropic 请求适配;模型与 API Key 可按会话选择。
- 本机行动层:文件、照片 OCR、位置、通知、联系人、日历等由原生工具处理;Linux 命令在内嵌 iSH ARM64 Alpine guest 里执行。
- 可演进 Harness:支持 Cordis Host-half JavaScript 包、原生 Client Sidecar、动态 Tool / Prompt 贡献、生命周期、设置与可追溯轨迹。
- iPhone 工作流:长对话虚拟化、会话/子 Agent、实时活动、持续处理和失败后的本地诊断导出。

快速开始

1. 前置条件

- macOS + Xcode Beta
- iOS 18+ 设备或 arm64 iOS Simulator
- 一个兼容的模型 API(DeepSeek、OpenAI-compatible 或 Anthropic)

2. 打开与运行

git clone https://github.com/liulingfei-1/deepseek-harness-ios.git
cd deepseek-harness-ios
open HarnessMobile.xcodeproj

在 Xcode 中选择已连接的 iPhone 或 arm64 Simulator,然后运行 HarnessMobile。首次启动按引导填写:

1. Provider / API Base URL;
2. API Key(仅存入本机 Keychain);
3. 模型名称;
4. 思考模式或服务默认模式。

3. 命令行构建与测试

项目固定使用 Xcode Beta。SwiftPM 构建缓存必须放在 /tmp,不要在仓库根目录创建 .build 或 DerivedData。

DEVELOPER_DIR=/Applications/Xcode-beta.app/Contents/Developer \
swift test --build-path /tmp/hm-build

DEVELOPER_DIR=/Applications/Xcode-beta.app/Contents/Developer \
xcodebuild -project HarnessMobile.xcodeproj \
-scheme HarnessMobile \
-sdk iphonesimulator \
-destination 'generic/platform=iOS Simulator' \
ARCHS=arm64 ONLY_ACTIVE_ARCH=YES build

./Scripts/audit-no-remote-execution.sh
./Scripts/check-upstream-parity.sh

HarnessISH.xcframework 没有 x86_64 slice,因此 Xcode 构建必须指定 ARCHS=arm64 ONLY_ACTIVE_ARCH=YES。

能力一览

| 模块 | 当前能力 |
| --- | --- |
| 模型与流式 | DeepSeek thinking / reasoning replay、OpenAI-compatible SSE、Anthropic Messages、自动模型发现、图片输入与 provider 级重试 |
| Agent loop | 多轮工具调用、取消/恢复、任务状态、计划、todo、上下文注入、会话与受限本地子 Agent |
| 工作区 | App-private 文件工作区、读写编辑搜索、导入文件/图片、会话文件引用与轨迹关联 |
| 设备工具 | 相机/照片 OCR、位置、运动、通知、认证、通讯录、日历、提醒事项、语音、蓝牙及更多 iOS capability provider |
| 命令沙箱 | 内嵌 OpenMinis/iSH ARM64 Alpine,shell_execute、stdout/stderr、超时、取消与 guest 网络开关 |
| 插件 | Cordis Host-half、市场/GitHub/ZIP 安装、iSH 内 Node Host、动态 Tool/Prompt、设置热更新、启停/替换/回滚 |
| 可观测性 | append-only trajectory、run/turn/step、工具耗时、诊断导出、脱敏日志与插件代次 |
| iOS 工作流 | SwiftUI 原生聊天、长会话窗口化、Live Activity、Continued Processing、完成通知、App Intents |

完整工具、权限与平台限制见 移动能力矩阵。桌面/Web 对照和每一个剩余差距见 桌面兼容清单。

界面与工作流

Projects      项目优先首页、搜索、新建、归档、恢复、重命名与分叉
Chat          对话、附件、@文件/@会话引用、模型与权限、计划/Agent 模式
Tools         工作区、iSH 终端、任务/轨迹、插件与设置入口
Workspace     私有文件浏览、导入、编辑与 Agent 文件工具
Console       目标/计划/todo、Job、Trajectory 与诊断
Settings      Provider、后台、手机权限、插件市场与插件设置

当前没有独立 Project 持久化模型:首页以会话标题作为项目名称,避免同时维护两套数据真源;打开项目后进入对应对话,工具和诊断保留在二级入口。

工具卡片有专用的紧凑呈现,长对话与流式输出走窗口化/增量渲染,避免把全部历史视图同时重算。对于每次模型或工具调用,轨迹中保留输入输出摘要、耗时、轮次、缓存/使用量信息与插件处理链;凭据形态的字段和内容会在持久化前脱敏。

架构

SwiftUI
└─ AppModel (@MainActor)
└─ AgentRuntime (actor)
├─ Provider adapters ── HTTPS ──> your model API
├─ LocalToolRegistry ────────────> native iOS tools
├─ HarnessISH ───────────────────> on-device iSH Alpine
│                                  └─ Node.js / Cordis Host
├─ Workspace + Session + Trace ──> app-private storage
└─ ActivityKit / notifications ──> iOS task projection

更多设计取舍见 架构与执行边界。

本机执行边界

Harness Mobile 的明确承诺是:没有远程命令执行回退。

| 可以做 | 不会做 |
| --- | --- |
| 使用你配置的模型 API 推理 | 将 shell / plugin 命令转发到项目服务器 |
| 在设备进程中运行 Swift Agent、原生工具和持久化 | 启动桌面宿主子进程或服务器 Executor |
| 在内嵌 iSH guest 中运行 Linux 命令和 Host-half JS 插件 | 下载后动态链接 Swift framework、native addon 或机器码 |
| 将 OCR/文件等获批文本结果交给当前模型 | 让 API Key 进入 iSH、插件、会话快照或诊断日志 |

模型 API Key 放在 iOS Keychain;插件 Host 和 iSH 都拿不到它。iOS 系统权限(照片、定位、NFC 等)仍由系统控制,Harness 的永久授权不能绕过系统弹窗或前台交互要求。

插件与扩展

社区插件安装遵循 native-first → iSH Host-half → 明确降级 的路径:

1. 市场、GitHub 仓库/子目录或本地 ZIP 提供源码;
2. 能映射为原生 Tool / Prompt / Native Client Sidecar 的部分优先接入 Swift Runtime;
3. 其余可运行的 Cordis Host-half JavaScript 包在手机 iSH Node Host 中运行;
4. Browser Client-half、React slot、原生 .node addon 或下载的 Swift/机器码没有等价运行时,会显示原因而不是伪装安装成功。

插件可声明原生 inspector、设置链接和 slash command;更新采用 generation、dispose 与 rollback,避免失败替换把现有插件一起带崩。协议与清单示例见 Native Client Plugins,iSH Host 细节见 Plugin Host。

与桌面 Harness 的关系

本项目不是官方 DeepSeek Harness 客户端,也不宣称 1:1 复制桌面 Web UI。它复用、对照并持续追踪上游的 Agent 语义,同时为 iOS 做了原生替代。

- 已覆盖核心路径:Provider、会话、工具循环、工作区、轨迹、计划、图片输入、插件 Host-half、Jobs/受限子 Agent 与本机 shell。
- 仍在补齐:完整桌面信息架构、更多 workflow/worker 合约、桌面级 Skill registry、LSP 与持续交互式 PTY。
- 默认不做:Remote Executor、服务器工具回退、任意 Web/HTTP 工具和下载原生代码执行;e2b/webhook/ACP 只按 D-011 作为显式配置能力推进,未配置时不存在。

升级上游时请先跑 ./Scripts/check-upstream-parity.sh,再按 升级说明 和 修补清单 逐项更新;不要仅因 package 版本变化而声称兼容。

项目结构

HarnessMobile/
App/                 AppModel、启动、生命周期、Agent 入口
Core/Agent/          Agent loop、上下文、压缩、子 Agent
Core/Network/        Provider wire、SSE、模型发现与重试
Core/Plugins/        Cordis、Native Agent、iSH Host bridge
Core/Tools/          文件、工作区、iOS capability、iSH 命令
Core/Storage/        会话、工作区、诊断、轨迹
Features/            SwiftUI Chat / Files / Plugins / Trajectory
Resources/PluginHost iSH 内 Node/Cordis Host 与市场安装管线
HarnessMobileTests/    XCTest、wire fixture、Node smoke 测试
Docs/                  架构、能力、兼容、升级与证据
Vendor/                固定的上游/兼容实现与补丁

project.yml 是 XcodeGen 的工程真源;生成后的 HarnessMobile.xcodeproj 同样提交,因此仅用 Xcode 也能直接打开。

路线图

- [x] BYOK provider、多协议流式、模型发现与 Keychain 隔离
- [x] iSH 本机命令沙箱与 Cordis Host-half
- [x] 工作区、文件上下文、图片输入、轨迹与诊断导出
- [x] 社区插件市场、原生 Sidecar、安装/更新/回滚基础设施
- [x] Live Activity、持续处理、长会话渲染与任务恢复
- [ ] 完成桌面 Web 的剩余工作区/Jobs/Inspect 信息架构对齐
- [ ] 扩展 workflow/worker、Skill registry 与更多插件协议适配
- [ ] 以 iPhone 16 Pro 持续验证真实 API、插件、后台、热与内存压力场景

路线图状态以 桌面兼容清单 和 修补日志 为准。

贡献与反馈

欢迎提交 bug、兼容性证据、插件适配与 UI 改进。开始前请阅读:

- CONTRIBUTING.md:构建、测试、提交和验收规则;
- SECURITY.md:敏感问题与凭据报告边界;
- AI Engineering Playbook:AI 协作下的大型代码库工作方式;
- Third-Party Notices:上游来源、许可证与分发义务。

提交 Issue 时请附上已脱敏的 Harness-Diagnostics-*.log、复现步骤、设备/系统版本、选用 provider 以及是否在前后台切换后发生;绝不要附 API Key、Authorization header、私人文件内容或未脱敏会话导出。

许可证与致谢

本项目整体采用 GNU General Public License v3.0。项目整合并修改了 GPLv3 的 on-device iSH 与 OpenMinis 组件;iSH 的附加分发条款保存在 LICENSES/ISH-LICENSE.IOS,完整上游声明见 LICENSES/ISH-LICENSE.md。分发源代码或构建产物前,请同时阅读 Third-Party Notices,并履行对应的源码提供与通知义务。

特别感谢 DeepSeek Harness、OpenMinis 与 iSH ARM64 的开源工作。

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群