爱意满满的作品展示区。
leoli2024

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

  •  
  •   leoli2024 · 1h 0m ago · 42 views

    最近一直在折腾一个开源项目: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
    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1344 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 17:23 · PVG 01:23 · LAX 10:23 · JFK 13:23
    ♥ Do have faith in what you're doing.