夜雨聆风学习资料网

ARTICLE · 1126089

dsh 把命令和插件管理搬进桌面菜单栏,插件从哪来更要紧

dsh 把命令和插件管理搬进桌面菜单栏,插件从哪来更要紧

DeepSeek Harness(命令名 dsh)从 8 月中旬开源以来,主流用法是“先装 Node,再 npx”。桌面端安装包此前已经在迭代——9 月 27 日的 v0.1.7-rc.2 发布说明里还有“修复部分桌面安装包启动失败的问题”。真正把它推进一步的是 9 月 29 日的 v0.2.0-rc.2:发布说明写明,这一版把 dsh 命令和插件管理收进 macOS、Windows 桌面端的菜单栏,管理和安装命令、管理插件都不用另装 Node 或 pnpm。四天后的 v0.2.1-alpha.1,又在插件管理页加了「让 Agent 创建插件」入口。

项目 README 把自己的架构称作“一切皆插件”(everything-is-a-plugin),底座是 Cordis。同一份 README 也写着它处于开发者预览阶段,会有破坏性变更。而在 SAFETY 文档里,维护者的表述更直接:这是实验性的开发者预览软件,尚未接受安全审计,不得视为安全或可用于生产环境的软件。

一边是把门槛降到“下个安装包就能用”,一边是“还没审计过”。团队要判断的,正好是这两句话之间的落差。

菜单栏里多了什么

走 npm 的话,前置条件是装好 Node.js,再执行 npx @deepseek-ai/dsh web。桌面端的说明文档写着,应用自带独立的 Python、Node.js 和 pnpm 发行版;插件管理和“创造模式”都用应用自带的 pnpm,不要求 pnpm 出现在 PATH 里。也就是说,插件工具链不再依赖用户本机的开发环境。

第二个变化是菜单栏里的 Manage dsh Command…,它可以安装、修复、移除一条 dsh 命令。装好后新开终端执行 dsh --version 就能用,桌面应用关着也能用。这条命令是可选的:卸载桌面端不会顺带删掉它,得先在菜单里选 Remove。macOS 上它写入 /usr/local/bin/dsh,必要时请求管理员授权;Windows 上把命令注册进当前用户的 PATH。命令所用的运行时版本跟随已安装的桌面版。

还有一个容易忽略的边界:桌面端独占 profiles/desktop 这个 profile,普通 CLI 启动不了它,npm 装的 dsh 也改不动它。想用命令行为桌面端加插件,得先启动一次桌面端初始化 profile,完全退出,再执行 dsh plugin --profile desktop add <包名>,然后重开应用。桌面端和 dsh 运行时、pnpm 打包成一个签名更新单元。

插件从哪来

“一切皆插件”的意思是,这个工具能做什么,取决于它装了哪些插件。桌面端把“装插件”变成应用里的一个动作,alpha.1 又把“写插件”也变成应用里的一个动作:「让 Agent 创建插件」会进入创造模式、保留草稿,等你把需求发出去才开始执行。

这把插件的生产者从“包作者”扩大到了“你应用里的 Agent”。SAFETY 文档对这两者给的是同一条警告:本项目可以执行模型生成的代码与命令、加载第三方插件,并访问向其开放的网络、进程、凭据和文件。文档同时写明,沙箱、审批提示与权限控制可以降低风险,但不保证隔离,也不能保证防止损害。界面层确实收紧了一部分——按桌面端文档,渲染进程拿不到文件系统访问、原始 IPC、shell,也不接受任意 pnpm 参数。但这挡的是界面越权。同一份文档也写明,宿主和插件运行在同一个 Electron Node 模式进程里;界面层收得再紧,也不会把插件隔到这个进程之外。

alpha.1 还加了一层实验性的 Claude Code Mods 兼容层,这一条最容易被读过头。发布说明的原话是,现阶段的主要目的是验证 Claude Code Mods 的 API 功能大致是 dsh 插件能力的一个子集,而不是提供完整的实际兼容性。把一个 Claude Code mod 直接搬过来,不能默认它能等价工作。

“开发者预览”的具体含义

README 用大写写了会有破坏性变更。一周内的三个版本给出了例子。rc.2 把第三方模型目录升到 pi-ai 0.87.1,移除部分旧模型 ID,已保存的选择可能需要重新选。alpha.1 移除运行时 invariant 插件和各包对 ./invariant 的导出,依赖这些诊断入口的扩展和自定义 profile 要跟着改。自动化任务这个功能本身也挪了两次:rc.1 把它交给可选插件包,alpha.1 又改成 Web 内置能力,并在极简模式和子代理下不可用。

关于计划任务,有一处常见误读值得说明。桌面端文档写的是,桌面端默认不开启计划任务;退出对话框的文案是“应用关闭期间计划任务不会运行”;提醒只在已加载的会话里触发,未加载的会话既不计入,也不会被唤醒。它不是一个替你常驻跑定时任务的执行器——关闭窗口只是隐藏,页面和 Host 会继续运行,任务也会继续;只有退出应用才会停。

什么时候用它,什么时候别把它当生产工具

值得试的场景比较清楚:想评估“一切皆插件”这套模型、手上有一台可以随手丢弃的机器、并且愿意锁住版本。安装包降低的是搭建成本,插件能力才是它真正的产品面。

不该当生产工具用的条件同样明确,而且不是外部猜测,是维护者写在文档里的:软件尚未接受安全审计,发布节奏以周计且带破坏性变更。SAFETY 文档给的做法是把它放进一次性虚拟机、容器或专用环境,只授予所需的最小权限和访问范围,备份它能碰到的文件,不暴露敏感凭据,并在允许运行前检查插件、配置和拟执行的命令。

安装包里那几个按钮解决的只是“能不能装上”,回答不了“装上的是什么”。插件是谁写的、能不能换掉、以什么权限运行,仍要自己回答。

相关学习资料