给 DeepSeek Harness 做了个桌面版:能调 Codex 干活,也能用微信远程派任务

leoli2024 2026-08-22 00:23 1

最近一直在折腾一个开源项目:Open DeepSeek Harness Desktop 。


先把项目地址放在前面:


GitHub:
https://github.com/flaqai/open-deepseek-harness-desktop


官网:
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


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
最新回复 (4)
  • aero99 08-22 08:54
    1
    能把微信换成 tg 不
  • imruiming 08-22 13:17
    2
    个人感觉重复做客户端不特别好,现在是 web 端直接 tunnels 就可以任意设备用浏览器访问了。正所谓多个香炉多个鬼
  • leoli2024 楼主 08-23 00:29
    3
    @aero99 感谢建议,这个会尽快支持进来
  • leoli2024 楼主 08-23 00:30
    4
    @imruiming 这块后面我们也会探索更多有意思的功能进来,第一版确认还是以提供便捷引导为主
* 帖子来源V2EX
返回