
我给 DeepSeek Harness 造了个铸造台
大家好,我是 CyberFD
今天来介绍一下我最近在搞的开源项目:DSH Forge。 它做的事可以概括成一句话:把 DeepSeek Harness 打包成桌面应用。 构建期组合插件、锁依赖、做安装包,再带一个能验证来源的流程,基本都在这了。
为什么会有这个项目
我自己是 DSH 的用户,但平时都在Web里跑,用久了总觉得差点意思。社区里能用的 DSH 插件其实不少,可把它们凑成一个"下载就能装的桌面应用",一直没人认真做。
那就我来吧。
不过我不想只是打个包了事。把插件塞进一个 Electron 壳子很容易,问题在三个月之后:依赖升级了怎么办?插件里混了个奇怪的脚本怎么办?所以 DSH Forge 从第一天起就把重心放在构建期:
-
组合在构建期定义 :
distribution.yml、profile、bundle 和 catalog 决定了最终装出来是什么样 -
宿主和插件分开 :
apps/desktop只负责 Electron 和平台相关的事,公开接口和内部实现隔离,DSH 本身不用动 -
结果可复核:依赖在构建期解析并锁定,lockfile、SBOM、打包检查都会留下来当证据
说白了,你装到的每个包,我都能说清楚它从哪来、装了什么、有没有被动过。
和其他 DSH 桌面端有什么不一样

现在社区里也有别的 DSH 桌面端了,装完就能用,把 Harness 从终端搬进窗口,这点它们做得不错。但细看思路基本是同一个:把 Harness 原样套一层壳,配好界面和插件市场,你装到什么就是什么,想换组合只能等官方更新。
DSH Forge 不是这个思路。它是一个铸造框架,Harness 还是那个 Harness,"桌面端长什么样"由你来定。
最直观的差别在插件上:别的桌面端是运行期在壳里装插件;
Forge 在构建期就把插件组合进发行版,profile、catalog 把组合白纸黑字定下来,打出来的应用本身就带着你要的东西,
Fork 一份就能换掉任意组件。
依赖在构建期就被锁定,所以每次打包都可复现、有据可查,这种透明度是套壳式成品很难给的。
平台覆盖上,官方版 Windows、macOS、Ubuntu 都有安装包,其他桌面端大多还顾不上 Linux。
说到底:别人交付的是一个固定的 Harness 桌面应用,我交付的是能造这种应用的框架。
仓库中官方版只是框架产出的一个发行版,按我的偏好配好;
想要自己专属的,Fork 一份自己造。
两种用法,看你是哪种人
-
只想用:直接去 Releases 下载安装包,挑你系统的那个,装完就能跑。这个官方版我已经维护起来了,现在带:
-
自带皮肤,换肤不用翻配置
-
侧边卡片栏,常用功能点一下就开
-
内置 OTA 升级,出新版本在设置页点一下就能更新
-
-
想自己改:Fork 仓库,替换或者加上你自己的插件,打一个自己的桌面端。单实例锁、窗口安全、sandbox、context isolation、升级、失败回退这些坑,我都替你踩过了,你只需要挑插件,剩下的交给 Forge。

一个我自己挺喜欢的功能
仓库里带了一个可分发的 skill。
在 Fork 的目录下跑一句 npx skills add ptonlix/dsh-forge --skill dsh-forge-add-plugin
之后直接跟 agent 说"把 dsh-better-sidebar@0.18.0-alpha.0 引入 developer",它会自己去审核来源、更新依赖、改配置,然后真的执行打包和冒烟测试。第三方脚本要跑的时候,它也会先问你要不要执行。
进度和打算
Electron 宿主、安全窗口、Profile 管理、生命周期(带 last-known-good 回退)、受管 pnpm、三平台安装包和 OTA,这些核心链路都通了。官方桌面版的皮肤、侧边卡片栏、升级功能已经能用,我自己日常也在用。文档中英双语,alpha 阶段的坑我都写在里面。
页面端插件市场、运行时切换 profile,这些还在做。
地址在这里:github.com/ptonlix/dsh...
如果你也在用 DSH,或者想做一个自己的 AI 桌面端,欢迎来提 issue、提 PR。
这项目叫 Forge,本来就是拿来给人敲打的。