给 DeepSeek Harness 做了个桌面版:能调 Codex 干活,也能用微信远程派任务
最近一直在折腾一个开源项目:Open DeepSeek Harness Desktop 。
先把项目地址放在前面:
GitHub:[https://github.com/flaqai/open-deepseek-harness-desktop](https://github.com/flaqai/open-deepseek-harness-desktop)
官网:[https://opendshdesktop.com/](https://opendshdesktop.com/)
它不是 DeepSeek 官方产品,是我基于 DeepSeek Harness 做的一个社区桌面发行版,MIT 开源。目前还在开发者预览阶段,所以这篇主要是自荐,也想听听大家对这种工作方式的意见。
## 为什么做这个项目
我平时会同时使用 DeepSeek、Codex、Claude Code 以及一些 Skill 和 MCP 工具。
真正让我觉得麻烦的,不是模型不够多,而是这些东西分散在不同终端、配置文件和会话里。每次换项目,都要重新确认工作目录、模型配置、工具权限和任务进度。
另外一个很实际的问题是:人不在电脑旁边时,怎么给本机的编码 Agent 分配任务?
我想要的东西比较像 WorkBuddy:
- 有一个可视化工作区;
- 能管理本地项目和持久会话;
- 能看到 Agent 调用了什么工具;
- 可以把具体编码任务交给 Codex;
- 离开电脑后,还能通过微信继续派任务和查看结果;
- 模型、插件和工具不被写死,后面可以继续扩展。
没有找到完全符合自己习惯的开源方案,于是就在 DeepSeek Harness 的基础上做了这个桌面版。
## 目前已经可以做什么
现在比较核心的一条链路已经能跑通:
1. 在桌面客户端中打开一个本地项目;
2. 创建 Harness 会话;
3. 让当前 Agent 分析和拆解任务;
4. 需要实际改代码时,把任务委派给 Codex;
5. Codex 使用当前项目的工作目录,以及本机已有的登录、模型、MCP 和 Skill 配置执行任务;
6. 不在电脑旁边时,通过微信机器人给 Harness 继续分配任务。
所以从我自己的使用场景来说,它已经可以作为一个开源的 WorkBuddy 替代品来用了。当然,这里说的是工作方式上的替代,不是声称已经把成熟商业产品的所有细节都做到了。
微信接入来自预装的 `dsh-im` 插件。除了微信,也支持飞书、钉钉、企业微信、QQ、Slack、Telegram、Discord 和 WhatsApp。机器人可以绑定指定工作区和已有会话,消息最终还是交给本机运行的 Harness 处理。
## Codex 是怎么接进来的
这部分没有通过 Shell 去猜用户有没有安装 `codex` 命令。
桌面安装包会预装 DeepSeek Harness 官方的 Codex Provider、固定版本的 Codex wrapper,以及与当前系统和 CPU 对应的原生载荷。用户在“设置 → 外部工具”里连接后,完整模式的会话会在下一轮获得 `subagent_codex` 工具。
我把连接状态和 Agent 预设拆开了。也就是说,不需要为了使用 Codex 新建一种专门的会话,已经存在的会话在连接成功后,也能从下一轮开始把任务交给 Codex。
为了避免工具集合在任务执行到一半时突然变化,连接和断开会在回合边界生效。精简模式则不会自动获得这些外部工具。
目前每次 Codex 委派都是一个独立的临时任务。它会继承工作目录和本机 Codex 配置,但不会直接继承 Harness 的完整聊天记录,也不会把 Codex 的中间推理、原始日志和所有工作区差异全部复制回来。父会话只接收最终结果,或者经过处理的错误信息。
这个边界是我有意保留的:先把“能稳定委派任务”做好,再考虑长期 Codex thread、进度同步和中断恢复。
## 它不只是套了一层 Electron
桌面端会负责启动和监管本机 Harness 进程,包括:
- 启动失败诊断和重试;
- 关闭到托盘;
- 完整退出时清理子进程;
- 系统通知;
- macOS 开机启动;
- 日志入口和版本检查。
渲染进程没有通用 Shell 和文件系统权限,只能访问一组明确限制过的桌面接口。Node 集成默认关闭,同时启用了上下文隔离和 Chromium 沙箱。
Harness 自己仍然是会话、模型、凭据、插件和 Skill 的唯一数据来源,Electron 层没有另外复制一套状态。
另外还做了一层插件依赖检查。第三方插件真正执行之前,会先检查共享依赖、版本范围和完整引用链;遇到无法安全处理的冲突时,优先隔离有问题的插件,而不是让整个客户端一起启动失败。
## 现在还不成熟的地方
项目目前仍然是开发者预览版,这一点必须提前说清楚:
- 功能、配置格式和本地数据结构仍可能变化;
- macOS Apple Silicon 已经完成本地打包验证,但目前没有 Apple 公证;
- Windows、Linux 和 macOS Intel 的构建矩阵已经配置,真实平台上的安装验证还在继续;
- Codex 目前是一次性委派任务,还不是可以长期恢复的持久子会话;
- 微信等 IM 入口后续还需要继续加强身份映射、授权、审计、限流和撤销能力;
- 现在更适合愿意看日志、提 Issue、甚至直接改源码的开发者,不太适合只想下载安装后完全不管配置的普通用户。
如果想从源码运行,目前需要 Node.js `^22.19.0 || >=24.0.0` 和 pnpm `11.7.0`:
```bash
git clone https://github.com/flaqai/open-deepseek-harness-desktop.git
cd open-deepseek-harness-desktop
pnpm install
pnpm run build
pnpm run dev:desktop
```
---
原文链接:[点击查看](https://www.v2ex.com/t/1236317)
先把项目地址放在前面:
GitHub:[https://github.com/flaqai/open-deepseek-harness-desktop](https://github.com/flaqai/open-deepseek-harness-desktop)
官网:[https://opendshdesktop.com/](https://opendshdesktop.com/)
它不是 DeepSeek 官方产品,是我基于 DeepSeek Harness 做的一个社区桌面发行版,MIT 开源。目前还在开发者预览阶段,所以这篇主要是自荐,也想听听大家对这种工作方式的意见。
## 为什么做这个项目
我平时会同时使用 DeepSeek、Codex、Claude Code 以及一些 Skill 和 MCP 工具。
真正让我觉得麻烦的,不是模型不够多,而是这些东西分散在不同终端、配置文件和会话里。每次换项目,都要重新确认工作目录、模型配置、工具权限和任务进度。
另外一个很实际的问题是:人不在电脑旁边时,怎么给本机的编码 Agent 分配任务?
我想要的东西比较像 WorkBuddy:
- 有一个可视化工作区;
- 能管理本地项目和持久会话;
- 能看到 Agent 调用了什么工具;
- 可以把具体编码任务交给 Codex;
- 离开电脑后,还能通过微信继续派任务和查看结果;
- 模型、插件和工具不被写死,后面可以继续扩展。
没有找到完全符合自己习惯的开源方案,于是就在 DeepSeek Harness 的基础上做了这个桌面版。
## 目前已经可以做什么
现在比较核心的一条链路已经能跑通:
1. 在桌面客户端中打开一个本地项目;
2. 创建 Harness 会话;
3. 让当前 Agent 分析和拆解任务;
4. 需要实际改代码时,把任务委派给 Codex;
5. Codex 使用当前项目的工作目录,以及本机已有的登录、模型、MCP 和 Skill 配置执行任务;
6. 不在电脑旁边时,通过微信机器人给 Harness 继续分配任务。
所以从我自己的使用场景来说,它已经可以作为一个开源的 WorkBuddy 替代品来用了。当然,这里说的是工作方式上的替代,不是声称已经把成熟商业产品的所有细节都做到了。
微信接入来自预装的 `dsh-im` 插件。除了微信,也支持飞书、钉钉、企业微信、QQ、Slack、Telegram、Discord 和 WhatsApp。机器人可以绑定指定工作区和已有会话,消息最终还是交给本机运行的 Harness 处理。
## Codex 是怎么接进来的
这部分没有通过 Shell 去猜用户有没有安装 `codex` 命令。
桌面安装包会预装 DeepSeek Harness 官方的 Codex Provider、固定版本的 Codex wrapper,以及与当前系统和 CPU 对应的原生载荷。用户在“设置 → 外部工具”里连接后,完整模式的会话会在下一轮获得 `subagent_codex` 工具。
我把连接状态和 Agent 预设拆开了。也就是说,不需要为了使用 Codex 新建一种专门的会话,已经存在的会话在连接成功后,也能从下一轮开始把任务交给 Codex。
为了避免工具集合在任务执行到一半时突然变化,连接和断开会在回合边界生效。精简模式则不会自动获得这些外部工具。
目前每次 Codex 委派都是一个独立的临时任务。它会继承工作目录和本机 Codex 配置,但不会直接继承 Harness 的完整聊天记录,也不会把 Codex 的中间推理、原始日志和所有工作区差异全部复制回来。父会话只接收最终结果,或者经过处理的错误信息。
这个边界是我有意保留的:先把“能稳定委派任务”做好,再考虑长期 Codex thread、进度同步和中断恢复。
## 它不只是套了一层 Electron
桌面端会负责启动和监管本机 Harness 进程,包括:
- 启动失败诊断和重试;
- 关闭到托盘;
- 完整退出时清理子进程;
- 系统通知;
- macOS 开机启动;
- 日志入口和版本检查。
渲染进程没有通用 Shell 和文件系统权限,只能访问一组明确限制过的桌面接口。Node 集成默认关闭,同时启用了上下文隔离和 Chromium 沙箱。
Harness 自己仍然是会话、模型、凭据、插件和 Skill 的唯一数据来源,Electron 层没有另外复制一套状态。
另外还做了一层插件依赖检查。第三方插件真正执行之前,会先检查共享依赖、版本范围和完整引用链;遇到无法安全处理的冲突时,优先隔离有问题的插件,而不是让整个客户端一起启动失败。
## 现在还不成熟的地方
项目目前仍然是开发者预览版,这一点必须提前说清楚:
- 功能、配置格式和本地数据结构仍可能变化;
- macOS Apple Silicon 已经完成本地打包验证,但目前没有 Apple 公证;
- Windows、Linux 和 macOS Intel 的构建矩阵已经配置,真实平台上的安装验证还在继续;
- Codex 目前是一次性委派任务,还不是可以长期恢复的持久子会话;
- 微信等 IM 入口后续还需要继续加强身份映射、授权、审计、限流和撤销能力;
- 现在更适合愿意看日志、提 Issue、甚至直接改源码的开发者,不太适合只想下载安装后完全不管配置的普通用户。
如果想从源码运行,目前需要 Node.js `^22.19.0 || >=24.0.0` 和 pnpm `11.7.0`:
```bash
git clone https://github.com/flaqai/open-deepseek-harness-desktop.git
cd open-deepseek-harness-desktop
pnpm install
pnpm run build
pnpm run dev:desktop
```
---
原文链接:[点击查看](https://www.v2ex.com/t/1236317)
评论
暂无评论。