~/octoblog / harness

DeepSeek 没给 Harness 做 App,我做了一个

[series:Harness 深水区] [date:2026-08-14] [read:8min] [words:3.9k] #Agent#Harness#DeepSeek#开源工具

DeepSeek Harness Desktop:给这副马具加一个坐垫

只想直接试,不想听我啰嗦的: 下载页:dshd.octoooo.com macOS · Apple Silicon:dshd-0.1.0-arm64.dmg Windows · x64:dshd_0.1.0_x64-setup.exe(暂无签名,SmartScreen 会拦一次,点”更多信息→仍要运行”) 源码:github.com/Octo-o-o-o/deepseek-harness-desktop 首次使用需在设置里填入你自己的 DeepSeek API 密钥——模型走你自己的 key,对话不经过我、也不经过任何第三方 非官方项目 · 应用数据都存在你自己的电脑上 · 内核为官方测试版(rc),先别存重要数据

DeepSeek Harness 开源三天了。上一篇我说它是一台为模型而造的机器。这一篇说件具体的事。

先给没听说过的人补几句。DeepSeek Harness 是 DeepSeek 官方开源的一套”让模型干活”的工作台。平时你在聊天框里问一句、它答一句;有了它,你可以让 DeepSeek 在你自己的电脑上真的动手——读写文件、执行命令、一步步把一件事做完,每一步做了什么都记账给你看。软件本身免费开源,模型调用走你自己的 DeepSeek API 密钥:第一次打开时在「设置 → 模型」里填一次——之后你的对话,是从你自己的电脑直接发给你自己的模型账号,不经过我,也不经过任何第三方服务器。

harness 这个词的本义,是马具。这里,马是模型,马具是 DeepSeek 给它造的整套装备——为马而造,做到了极致。我做的事很小:给这副马具的鞍子,加了一个坐垫。坐垫不改变马,也不改变马具的任何功能,它只干一件事:让人坐得上去,坐得舒服。

官方的门槛是一行命令

想试试 dsh,官方的方式是打开终端,输入:

npx @deepseek-ai/dsh web

对开发者,这不算什么。但我知道有一大批人——产品经理、写作者、研究者、单纯好奇的人——就被这一行字挡在了外面。不是能力问题,是没有理由为一次”看看它是什么”去装 Node、学命令行。

马没变,马具没变,多了个坐垫:官方入口是一行命令,坐垫是双击入座

为什么官方自己还没做?

先摆一个事实:做一个能用的壳,不难——这个 Desktop 第一个能跑的版本,我总共提了六个问题(下一节细说)。比我强得多的 DeepSeek 团队没出桌面版,缺的显然不是能力。

以下是我推断的原因,我不替官方发言。它现在是 0.1.0-rc.5,README 里明明白白写着”会有破坏兼容性的变更”——而安装包是对普通用户的承诺:兼容、稳定、有人管。它正处在最需要迭代自由的阶段,背不起这个承诺。翻它的设计档案还能看到:官方架构里其实已经给将来的桌面应用留好了座位,只是标注着”尚无此形态”——不是不做,是还没排到。

所以我特意没去坐那个座位:官方留的是 Electron 的正座,我用 Tauri 在旁边放了个坐垫,包住它今天已经发布的形态。等官方的桌面版来了,坐垫光荣退役——在那之前,总得有人先把它垫上。

那我为什么现在做?

因为我的判断是:哪怕是半成品的 harness,也值得被更多人提前摸到——“一台为模型而造的机器”到底是什么意思,读十篇文章不如亲手点开看五分钟。等它 1.0 的那天你才第一次碰它,你对它的理解也才刚 0.1。

官方还没做是对的,我现在做也是对的。两件事不矛盾——这就是双侧分工:它顾马,我顾坐上去的人。

两个目标函数,各自都对:官方站模型侧,我站人侧

这个 Desktop 是怎么做出来的

用它自己。

第一个能跑的版本——壳、打包、Windows 适配——由 dsh 里的 DeepSeek V4 Pro 做调度和 review,一共六个提问:一个调研选型,一个实施,一个测试,一个打包发布,两个做 Windows 适配。动手写码的部分,V4 Pro 派给了我订阅的 grok CLI——调度和验收在 dsh,施工外包给更便宜的订阅制模型。Windows 真机打包后来又多吃了几个提问;再之后的签名和发布链打磨,另有帮手——git log 里都看得见,我不揽功。

还值得交代一句:我平时的调度位,坐的是 Claude Code 里的 Fable 5——这次特意把这把最重要的椅子换给了 dsh 里的 V4 Pro,算一次同座位对比。我的分工观一直是:调度和验收才需要旗舰,施工可以交给次旗舰。首版六问跑完,这把椅子 V4 Pro 坐住了;换座的完整体验,值得以后单独写一篇。

所以严格说,这个坐垫的第一针,是那匹马自己缝的。我是提问题的人。

DeepSeek Harness Desktop 是什么

一句话:把官方 dsh 封装成双击即用的桌面应用(壳用 Tauri)。

  • 双击即用:不需要装 Node.js,不需要碰终端;macOS 包已签名并通过 Apple 公证,不会弹”无法验证开发者”
  • 自动管理服务:本地 Harness 服务的启动、停止、驻留,壳来负责;系统托盘常驻
  • 能力与插件体系一概不动:内核是官方仓库的代码(MIT),只为壳做了两处必要接线(启动令牌与桌面品牌行)
  • 数据存在本地:应用数据和会话记录都在你自己的电脑上;对话内容发给你自己配置的模型服务

打开之后是什么样?就是官方那个 Web 界面,跑在你自己的电脑上。填完 API 密钥就能开聊:你可以派它在本机干活——读写文件、跑命令、装技能——它每一步做了什么、花了多少 token,全都记在一本可回放的账里。第一件可以玩的事:让它读你桌面上的一个文件夹、整理一份清单,然后翻它的账,看它是怎么一步步干的。

DeepSeek Harness Desktop 主界面

壳是我的,内核原样是官方的

支持 macOS(Apple Silicon)与 Windows x64。

不确定自己的 Mac 该下哪个:Apple 菜单 →「关于本机」,芯片一栏显示 Apple M 系列即为 Apple Silicon。

我只加了一个键

除了壳必须干的活,我几乎没有添加任何功能。

说”几乎”,是因为有一样东西小到不好意思叫功能:在输入框最开头按 ,可以从新到旧翻出你这次会话发过的提问;按 ↓ 往回走,越过最新一条,它会把你刚才写了一半的草稿还给你。这是我自己的手指习惯,从终端里带出来的。有点讽刺:我把终端从你面前拿走了,却留下了终端里我最离不开的那一个键。

它也是我给自己划的那条线的实践:坐垫可以让人坐得更舒服,但不能替马做决定。翻历史不改变机器的任何行为,它只服务你的手。就连这一个键也写了合同——菜单打开时箭头归菜单,翻到最旧一条就停住不回绕,一动草稿或一发送就结束——全写在包文档里。

不是没想过加别的。审批时的系统通知、手机连接桌面、快速截图、剪贴板监听、技能导入导出——每一个对我都是很小的工作量,每一个看起来都”很方便”。但我一个都没做。上一篇写过,这台机器最罕见的品质是取舍纪律——每一个功能都服从同一个目标。给这样的项目做壳,克制是最基本的礼貌:坐垫就该只是坐垫,往马鞍上焊工具箱,是对马具设计者的冒犯。

下一版我只打算再加一个:机器需要你批准的时候,给你一条系统通知。只允许这一个例外——因为”人的批准”,恰好是人侧唯一不可替代的时刻。

诚实的预期管理

三件事说在前面:

一,这是非官方项目,与 DeepSeek 无关联。内核是官方开源代码,壳是我做的。出了问题先来我的仓库提——能用官方 npx 方式复现的,我再帮你转成最小复现报给官方;别让壳的问题淹了官方的讨论区(官方仓库没开 issue,只有 Discussions)。

二,内核处在官方测试版(rc)阶段,官方明说会有破坏性变更——别把贵重数据放进去,你聊的记录过阵子可能就打不开了。

三,上一篇的建议依然成立:爱好者值得装一个玩玩,正经干活现在先别用它。这个桌面版改变的是”装一个玩玩”的门槛,不改变它的成熟度。

最后

上一篇的结尾我写过:模型侧的账本已经有人做到头了,人侧的账本还空着。这个 Desktop 是人侧最小的一块砖——它不给马添一分力气,只决定多少人愿意坐上来。

鞍上现在有坐垫了。上去坐坐,看看这匹马往哪儿跑。


本项目为非官方社区项目,与 DeepSeek 无关联;DeepSeek Harness 原仓库代码与文档版权归 DeepSeek AI(MIT)。