DeepSeek 的新外壳,真值得装吗?
三天拿下 119517 个 star,却连终端界面都没有;真正有价值的,是它允许你把 DeepSeek 换掉。
▍🎯 十一万星背后,藏着一个名称陷阱
DeepSeek Harness 刚公开三天,GitHub 仓库已经拿到 119517 个 star、11760 个 fork 和 488 个 watch。
这组数字确实扎眼,但它最容易让人误判的地方,不是热度,而是形态。npm 包把自己叫作 dsh CLI,启动入口也是一条命令,很多人自然会把它理解成 Claude Code 或 Codex CLI 那样的终端助手。

实际运行 `npx @deepseek-ai/dsh web`,打开的是本机 3080 端口上的浏览器应用。仓库里的正式组合只有 web 和 headless:前者提供完整界面,后者接收一次任务、打印结果并退出。
CLI 帮助虽然出现过 `--profile tui`,代码仓库却没有对应 bundle。至少当前版本,它不是终端 TUI。
这并不等于它名不副实。命令行只是启动器,真正的产品是一套可组合的 Agent 运行环境。它用 TypeScript 编写,采用 MIT 许可证,默认分支仍叫 master。
公开页面和仓库入口都已经具备,但 GitHub Release 和 git tag 仍然是 0,稳定产品该有的交付轨迹还没形成。
$ 上手地址:DeepSeek Harness GitHub 仓库
https://github.com/deepseek-ai/deepseek-harness;官方主页:deepseek.com/harness
https://deepseek.com/harness// 十一万星证明了注意力,不等于证明了成熟度。
▍🧩 万物皆插件,不是一句漂亮口号
dsh 的底座是 [Cordis](https://github.com/cordiverse/cordis),核心主张是“万物皆插件”。
模型适配器、工具注册表、会话日志,甚至决定 Agent 如何思考和调用工具的循环,都可以从配置中替换。它没有一个等着所有扩展去修改的“特权内核”,能力通过插件挂在旁边,再由配置把它们拼起来。
我把真实启动树导出来数了一遍:web 形态组合出 129 个插件行,headless 形态有 81 个,模型能够看到的工具一共 16 个。两者的差异并非简单少一个界面,headless 会砍掉浏览器客户端、存储和 UI 相关模块,再换入专门的运行与退出组件。
| 层级 | 承担的角色 | 替换后会发生什么 |
|---|---|---|
| profile | 命名后的运行组合 | 决定使用 web 或 headless 等形态 |
| bundle | 预先打包的插件集合 | 决定基础能力与分发方式 |
| cordis.patch.yml | 用户补丁层 | 覆盖模型、服务提供方和插件配置 |
| 能力接缝 | 连接服务、提供方与消费方 | 替换一处即可整体搬走相关能力 |
※ 配置按 bundle、profile patch、home patch 和命令行 patch 的顺序叠加。
这张结构表真正重要的不是层级多,而是替换发生在配置边界,而非源码内部。例如把文件系统和子进程服务指向远程沙箱,Bash、PTY、LSP 等相关能力也能一起迁移。对普通使用者而言,这意味着换模型、换执行环境、换权限策略时,不必先把整个项目叉出去大改。
会话记录也遵守同一种思路:日志是一条只追加的事件流,模型上下文再从日志中投影出来。它还设了一条很硬的约束——模型能够看见的内容,必须已经被记录,运行时断言负责守住边界。这对调试工具调用、复盘错误和审计权限都很关键。插件化最值钱的地方,是让替换成本低于迁移成本。
▍⚡ 真正的反差:不用 DeepSeek 密钥也能跑

默认配置使用 `deepseek-official` 提供方和 `deepseek-v4-flash` 模型,首次打开界面也会引导填写 DeepSeek API Key。但这个步骤可以跳过。
自定义提供方支持 `openai-completions`、`openai-responses` 和 `anthropic-messages` 3 种协议,任何兼容端点都有接入空间。
我没有配置任何 DeepSeek API Key,而是把它接到了本机 `mlx_lm.server` 上的 Qwen3.6-27B-8bit。
服务开在 8891 端口,dsh 成功请求 `/v1/models`,再通过 `cordis.patch.yml` 覆盖默认模型。最终配置已经用 `--dump-config` 验证生效。
纯对话任务耗时 47.68 秒,模型能够正确说明自己正在运行的身份。更关键的是文件任务:我让它读取磁盘上的 `data.txt`,回答行数和最后一行,结果是 3 行和 gamma,总耗时 51.62 秒。这一步把“能接本地端点”推进到了“能完成真实任务”。
工具调用并非模型猜答案。MLX 服务端留下了 5 次 `/v1/chat/completions` 往返,会话事件中出现参数包含真实路径的 `tool/call`,名称为 read,紧接着还有配对的 `tool/result`。
本地模型、Agent 循环和磁盘工具已经形成闭环,这才是整个项目含金量最高的事实。
// DeepSeek 最有意思的动作,是允许你把 DeepSeek 换掉。
▍💰 开源壳的生意,是把模型变成可替换零件
表面看,dsh 是又一个 Agent 工作台;往深一层看,它争夺的是模型与用户之间的控制层。谁掌握会话、工具、权限和插件入口,谁就更接近真正的操作系统位置。模型提供方反而可能被压到下面,变成一个随时可换的推理零件。
这条路线在科技史上并不陌生。当年 Netscape 开放浏览器代码,后来延续出 Firefox,争夺的就不只是一个应用,而是开放网络的入口。相同之处在于,当单一产品守不住平台优势时,开放扩展层可以把竞争变成生态问题;不同之处是,dsh 眼下还没有成熟插件生态。

安卓免费开放、逐渐替代塞班的行业故事,也说明了同一个商业规律:把互补品做成白菜价,往往是在抬高另一层的价值。dsh 采用 MIT 许可证,不急着靠外壳收费,可能让更多模型、工具和执行环境围绕它适配。真正受益的未必只是 DeepSeek,也包括本地模型和第三方插件提供者。

但开放并不会自动长出商业模式。Docker 的行业经历已经提醒过一次:技术成为基础设施,不代表价值一定由技术发明者完整收走。dsh 如果真成为通用外壳,模型厂商、云端沙箱、插件作者和企业部署服务都能从中获益,平台自己却仍要回答一个俗气但致命的问题——谁来持续付维护账单。

- 起点:模型、工具和 Agent 循环都可以替换
- ├ 直接后果:用户更容易切换模型提供方
- ├ 二阶效应:本地模型和远程沙箱获得统一入口
- ├ 再下一阶:模型品牌被削弱,插件与工作流开始沉淀
- └ 潜在风险:维护成本上升,而稳定收入仍没有答案
这条传导链也解释了谁会沉默。成熟的封闭助手不会急着赞美一个可随时替换模型的外壳,因为它削弱了订阅绑定和迁移壁垒。本地模型使用者会更兴奋,插件开发者则要等接口稳定。开放架构重新分配的不是功能,而是谁有资格掌握用户。当模型可以随便换,真正的护城河就转移到了工作流。
▍🧨 预览版的账单:两分钟冷装,九百多个包
热度之外,当前版本的代价相当具体。冷装需要拉取 963 个包,加上执行帮助命令共耗时 120.75 秒;热启动查看版本只需 1.08 秒。npx 缓存占用 343 MB,真正的 `DSH_HOME` 只有 36 KB,因为依赖都留在 npx 存储中。
当前 npm 版本是 0.1.0-rc.6,共有 6 个版本,首次发布于 2026-08-10。界面会直接弹出内测声明,明确核心插件和基础 API 可能快速变化。仓库在 2026-08-13 创建并完成最后一次 push,距离核查日只有 3 天,样本短到不足以判断长期维护强度。
仓库开放时,PR 编号已经到了 #2519、#2520 和 #2521,提交信息还包含公开 dsh 家族的动作。这更像内部长期开发后一次性打开大门,而不是从零开始公开迭代。它解释了代码规模和完成度,却不能替代稳定性记录。历史包袱和工程积累,有时长得一模一样。
权限设计倒是比很多早期 Agent 克制。沙箱有 read-only、workspace-write 和 danger-full-access 三档,默认使用 workspace-write;没有进入最高权限时,审批策略一律 ask。
遥测插件默认关闭,必须显式设置 `DSH_TELEMETRY_MODE` 才会启用,会话则按工作区保存为经过 zstd 压缩的 JSONL。预览版可以拿来验证路线,不能拿来寄托生产环境。
把两种形态各跑一遍,数字更能说明它现在处在什么阶段。纯对话任务——问它「你现在运行在什么模型上」——耗时 47.68 秒;带工具的任务,让它读磁盘上的文件并回答行数和最后一行,答对了(3 行 / gamma),耗时 51.62 秒,中间走了 5 次往返。
启动开销的落差更大:冷装 120.75 秒,因为 npx 要拉 963 个包;装完之后 `--version` 只要 1.08 秒。换句话说,慢的不是它本身,是第一次把它请进来的那趟。缓存占 343 MB,删掉对应目录就能全部收回。
▍🔍 值不值得装,取决于你想拿它干什么
如果你只是想找一个装完就稳定干活的主力助手,现在不适合迁移。没有 Release、没有 tag、接口仍可能发生破坏性变化,插件生态也刚起步。更何况默认模型的真实表现、与 Claude Code 或 Codex CLI 的同题差距,都还没有经过可比条件下的验证。
如果你手上已经有 MLX 或其他 OpenAI 兼容服务,情况就不同了。dsh 给了本地模型一套现成的界面、工具系统、会话记录和权限边界,不需要你重新搭一遍 Agent 外壳。数据能否完全留在本机仍取决于所启用的模型和插件,但遥测默认关闭,至少基础控制权是清楚的。
最稳妥的试法,是单独建立目录后运行 web 形态,先用 read-only 或默认 workspace-write 权限。需要快速验证自动任务时,再使用 headless。
测试结束后删除对应的 npx 缓存目录即可回收 343 MB;不要一上来开放 danger-full-access,更别把早期配置当作长期资产。
$ 最小尝试命令:`npx @deepseek-ai/dsh web`。默认入口为 `http://127.0.0.1:3080`。首次出现 API Key 引导时可以选择稍后配置,再添加自定义提供方;提供方至少要填写一个模型,否则无法创建。想继续搭本地多模态工作流,还可以使用 [LocalBrain](https://github.com/HackerChi-Hub/localbrain-releases/releases)。
它提供本地模型可调用的 TTS、Whisper 和相关 MCP 能力,与 dsh 这种可替换工具层的思路能够自然衔接。一个负责组织 Agent,一个负责补齐本地能力。先把它当实验台,别急着把工作交给它托管。
$ 🎬 这个话题我做过视频
· AI说我帮你查一下,其实是调用了工具|Tool Calling 工具调用
https://youtu.be/s54ud_71WN0
· [[热点速递] OpenAI工具一年烧掉640TB!你的固态硬盘正在被吃掉](https://youtu.be/XOa2OYo3ucw)$ 关于我
黑粉科技 · 只做三件事:本地部署、免费白嫖、自制软件。
官网 https://hyphentech.top
我自己做的东西
· ScreenLex 光影词库——看美剧顺手把生词背了,Mac/Windows 双平台,免费
https://github.com/HackerChi-Hub/screenlex-download/releases
· 方寸智匣 LocalBrain——本地模型的多模态 MCP 工具箱:TTS / Whisper / 视频生成一站接入
https://github.com/HackerChi-Hub/localbrain-releases/releases