NAVIGATION SYS
首页折腾手记造点东西投资笔记做点音乐想点事情

NCC-1701-D // SYSTEM ONLINE

Deep Space Viewport
折腾手记

DeepSeek-Harness系列(三):dsh 安装与排错教程——从 0 到 1 配齐你的 Agent 工作站

舸扬
折腾手记
发布: 2026-10-15
更新: 2026-10-15
标签AI开源DeepSeek-Harness
DeepSeek-Harness系列(三):dsh 安装与排错教程——从 0 到 1 配齐你的 Agent 工作站
本文字数:6028预计阅读:16 分钟

TL;DR 全文速览

  • 从第 0 步到第 11 步照抄命令,20 分钟配出不输 Claude Code 的 dsh
  • 不想碰命令行:桌面版 v0.2 双击安装,Node/pnpm/Python 都打包进去了,还能登账号用余额跑任务;同一时期 0.2.0 内核加了插件兼容检查,装插件把机器装崩的事故会大幅减少
  • 插件只装一件:市场(dshmarket),其余想要的在面板里搜名字装;我自己在用的 15 件放在文末附录一,一条命令装完
  • 环境就两样:Node v22.19+ 或 v24+(v23 不算)+ pnpm(装插件底层走它,缺了它装插件会报错,还看不出原因)——缺什么按文末附录二补装,macOS / Linux / Windows 命令全套
  • 上服务器是另一个专题:界面默认只听本机,自用起步搭一条 SSH 隧道,文末有命令
  • 技能是可选项:~/.agents/skills/ 放目录即生效,Claude Code 共用;在 dsh 里作用没那么大,真正用出价值的玩法见月报那篇
  • 踩过的坑都写进去了:pnpm 10 拦构建脚本要 approve-builds、装崩三级急救(remove → 重启服务 → 回滚 ~/.dsh 备份)、modsearch 403
  • 升级降级各一行命令:npm i -g @deepseek-ai/dsh@latest / @<版本>;先备份再升级,会话已升到 V3 且不支持降级读取;@latest 未必是最新发布——先查 dist-tags 再装
  • 备份交给 dsh-backup:一条命令全量快照 ~/.dsh(sha256、默认留 7 份、升级自动快照、宿主起不来也有救援页面)

第 2 篇把底盘拆开看完了:零件长什么样、怎么挂上去、卸下来为什么不留痕。这一篇只做一件事:动手装配,从第 0 步到验收。照着敲,20 分钟后 dsh 就配齐了:工作台界面、有记忆、有账单,Claude Code 有的它也有。

现在开始。

没用过命令行的读者看这里:后文灰色块里的每一行都是一条命令。打开终端,把命令原样粘进去,按回车,等它跑完再粘下一条。

终端怎么开:macOS 按 Cmd+空格调出聚焦搜索,搜「终端」;Linux 桌面一般自带终端;Windows 10/11 在开始菜单搜 PowerShell(如果你懂 git 的话更推荐git bash),开蓝底那个,别用老的 cmd。粘贴时 macOS 按 Cmd+V,PowerShell 里直接点鼠标右键。

两个小知识:代码块上角标的 bash 只是标记,绝大多数命令在 PowerShell 里照样能跑,个别 macOS/Linux 专用的我都单独标了 Windows 版;路径里的 ~ 指你的用户主目录,PowerShell 也认,对应 C:\Users\你的用户名。

近道:桌面版

9 月底,官方桌面端预览版 v0.2 发布。安装包三百多 MB,Node.js、pnpm、Python 运行环境都打包在里面,双击安装就能用。第 0 步和附录二那套环境安装可以整段跳过,装 dsh 的门槛矮了一大截。

桌面版还补了两处新手最容易卡住的地方。一是可以直接登录 DeepSeek 账号,用账户余额跑任务,不用先去开放平台申请 API Key;二是新增了插件管理页面,输入 npm 包名就能装插件,停用、卸载也都在同一页面,全程不碰命令行。它和网页版读写同一个 ~/.dsh 目录,配置、会话、工作区互通,以后想换命令行路线,东西都还在。

这篇仍然走命令行:一来服务器、容器、无头这些场景桌面版覆盖不了;二来桌面版也只是那套内核的壳,知道它怎么跑,出了问题才知道往哪看。安装包去官网 deepseek.com/harness↗ 或 GitHub Releases 找。

第 0 步:环境检查

bash
node --version # 要 v22.19+ 或 v24+,v23 奇数试验版不算 pnpm --version # 装插件的 dsh plugin add 底层走 pnpm,缺了它报错还不指向根因

两条都打印出版本号,直接进第 1 步。打不出、或 Node 版本不够 → 文末《附录二:环境安装备查》按系统照抄命令(约 10 分钟),装完回来。版本不够别硬装 dsh:那串报错看起来像安装失败。

第 1 步:全局安装

bash
npm install -g @deepseek-ai/dsh

装完新开一个终端窗口(PATH 不会自动刷新),然后验证:

bash
dsh --help

能打印出命令说明就是成了。npx / pnpm dlx 那种临时跑法不会在机器上留下 dsh 命令,想随时敲就得全局装。

第 2 步:建练习场

bash
mkdir -p ~/projects/dsh-demo # Windows 去掉 -p cd ~/projects/dsh-demo git init # 不懂 git 可以跳过

专门开个空目录练手:Agent 有读写和执行权限,新手期别让它直接动主力项目。git init 这句实在不懂 git 的就跳过吧;Windows PowerShell 里 mkdir 去掉 -p 就行,它本来就自带建父目录。

第 3 步:写项目说明书

AGENTS.md 是放在项目根目录的说明书,dsh 每次任务都会自动读(Claude Code 的 CLAUDE.md 是同一套习惯,两边都认)。里面只写“Agent 不知道就会做错”的事,比如:只修改本目录内的文件、改动前先说明影响范围、禁止 rm -rf 和 sudo、不提交不显示密钥。

练习阶段空目录没什么可约束的,可以先跳过;等有真项目再照这个思路写一份,几百行以内。Windows 用记事本建同名文件、贴同样内容就行。

第 4 步:启动

bash
dsh web

浏览器会自动打开 http://127.0.0.1:3080(没自动开就手动输)。端口被占就改个端口:dsh web --port 8080。注意这个终端得一直开着,关了终端的话就是 dsh 也停了。

第 5 步:网页里的三个设置

  1. 打开 Settings → Models,在 DeepSeek 卡片填入 API Key(去官方平台创建,先充值——余额为零时 Key 有效但调不通)。默认模型选 deepseek-v41-flash。
  2. 主界面点 Choose workspace,选 ~/projects/dsh-demo;不选工作区,输入框是灰的。
  3. 模式选 Standard(别碰 Creator,那是插件开发者待的地方);权限先用 read-only,起步别全开。

第 6 步:首跑验证

新开会话,发送:

读一遍这个仓库,告诉我它是干什么的,然后列出三个安全的改进建议。

预期:它老实读文件、给摘要,不动你一个文件就能验证流程通不通。顺手点开 Trajectory 视图:每读一个文件、每调一次工具,都记在案。

第 7 步:装配插件

生态里一万多个包,推荐榜单一周一变,记清单没什么意义。这一步只装一件:市场。

bash
dsh plugin --profile web add dshmarket

重启 dsh web(启动dsh的终端上按 Ctrl+C 停掉 dsh 服务,再输入 dsh web 就是再次启动),设置面板里多出一个市场:浏览、搜索、一键安装更新。之后想要什么能力,就在里面搜名字装;想省事,翻到文末附录一,我自己那套一条命令全装上。

插曲:装插件把 dsh 装崩了(急救包)

装插件有概率把 dsh 装崩(我遇到过两次):dsh web 报错启动失败。这时候照三级急救处理,从轻到重:

一级,卸掉出事的插件。先看终端报错的最后几行,通常会点名是哪个插件加载失败;就算没点名,你也知道刚装的是谁。然后用命令行卸掉它(不需要 Web 界面活着):

bash
dsh plugin --profile web remove <包名>

它把插件从依赖里摘掉,重启 dsh web 就不再加载。命令走不通(比如报错锁死),再上手动版:编辑 ~/.dsh/profiles/web/cordis.patch.yml,把那个插件的配置行删掉,重启。两个注意事项:卸载只影响指定的 profile(web 烂了不影响 headless);但它不会自动删插件产生的数据,会话等残留要手动清理,多数时候留着也无害。

一级半,remove 成功了还报错就重启服务。插件树是服务启动时读进内存的,remove 只改磁盘不刷内存。卸载后要停掉 dsh web(Ctrl+C)重新启动,浏览器 Ctrl+Shift+R 硬刷新。判断:重启后还报同一个插件,是磁盘上真有残留,回一级搜配置;不报了,只是内存里的旧状态。

二级,验证内核。web profile 烂了就先别用 web——dsh --profile headless "hi" 用一次性模式验证内核还活着;能跑通,说明只是 web 那套插件树的问题,回一级慢慢排查。

三级,回滚整个配置。前提是你备份过(怎么做备份,第 10 步会讲):

bash
cp -r ~/.dsh.bak-xxxx ~/.dsh # Windows: 先删再拷 # Windows PowerShell 命令: Remove-Item -Recurse $HOME\.dsh; Copy-Item -Recurse $HOME\.dsh.bak-xxxx $HOME\.dsh

整套配置连同插件列表回到出事前。所以装新插件之前,先跑一遍备份。

预防三条:尝鲜或自研插件用 --patch 方式加载,出事删 patch 文件就行,不污染主配置;插件钉死版本号(或钉 commit,附录一命令里有两处真例子);以及装少一点,装得越少,出问题的机会越少。

杀不掉进程,先查守护进程。有些插件自带 supervisor 守护进程(自动拉起 dsh),杀一个复活一个。先用命令认出哪个是守护,先杀守护再杀服务,还杀不动就 UAC 提权:

powershell
Get-CimInstance Win32_Process -Filter "Name='node.exe'" | Select ProcessId,CommandLine

这套急救流程,往后用到的机会会越来越少:0.2.0 起的内核加了插件兼容性检查——插件在配置里声明自己兼容的 dsh 版本范围,加载器启动时逐个校验,不满足的直接拒绝加载,报错写明是版本冲突(机制见官方 Discussions #5876)。以前是“跑起来莫名崩”,现在是“启动时一句看得懂的错”。

但声明的范围是插件作者自己填的,填错填宽了照样崩——它查不出“声明兼容但代码其实不兼容”。所以还是记得要备份。

第 8 步:装配技能 skills

插件和技能是两层东西:插件工作在运行时层,换的是系统能力;技能工作在提示词层,教模型“怎么做”。一个技能就是一个带 SKILL.md 的文件夹,放进 ~/.agents/skills/ 目录,dsh 启动时自动扫描加载。这个目录 Claude Code 也认,装一次两边生效。

skills技能是什么、怎么用,我另外写了一篇《教 AI 写工作月报:从一次性投喂到节点化工作流,再到 Skills 模块化改造》,那篇文章写得非常清楚了,可以参考。

想装的话(Windows 路径:C:\Users\你的用户名\.agents\skills\):

bash
# ① Anthropic 官方技能库:文档/PPT/表格/PDF 等官方技能,取 skills/ 子目录 mkdir -p ~/.agents/skills # Windows PowerShell:去掉 -p,效果一样 git clone https://github.com/anthropics/skills.git ~/askills cp -r ~/askills/skills/* ~/.agents/skills/

skills 在 dsh 里很多是以插件形式出现的,我本机常用配置就没装第三方 skills。

第 9 步:放开权限

跑顺了,在对话框下方把权限从“仅可查看”换成“工作区内修改”(或在会话里 /permission 切换)——现在它可以改你工作区里的文件了。仍然慎选“完全权限”。

第 10 步:记得备份

先记住最土也最靠得住的一条,每次升级前都跑:

bash
cp -r ~/.dsh ~/.dsh.bak-$(date +%m%d) # Windows 命令:Copy-Item -Recurse $HOME\.dsh $HOME\.dsh.bak

为什么必须备份:rc.8 干过一次“升级后历史会话消失”;后来官方学乖了,V3 会话格式升级不再丢旧日志,但说明里明明白白写着“升级后的会话不支持降级读取”。所以备份没有商量余地:永远在升级前做。

备份这件事还有个插件能代劳:dsh-backup(官方 Discussions #4644↗)把整机快照做成了常规能力,在市场里装上(附录一的命令里也带着它)就能用。但它依赖界面,系统真崩了反而用不了——所以手动那条命令还是得记着。

还有一步千万别省:装完先做一次恢复演练——备份、再恢复一次。

(分工:整机快照交给 dsh-backup;换机、多机之间搬配置用 dsh-config-manager,见附录一。)

第 11 步:升级与降级

dsh 还在预览期,版本一天一个样:升级是常态,出问题必须能退回来。升级本身不可怕,没备份就升级才可怕。

先看自己在哪一版、有哪些版可选:

bash
dsh --version # 当前版本 npm view @deepseek-ai/dsh versions --json # 所有已发布版本(rc 与 alpha 交替) npm view @deepseek-ai/dsh dist-tags --json # latest 现在指向哪一版

版本后缀别搞混:alpha 是“功能还在加”的前线,rc(Release Candidate)是功能冻结、只修 bug 的转正候选——alpha 的号常常比 rc 更新(社区实测时 latest 指向 0.1.1-rc.2,更新的预览版却是 0.1.2-alpha.3)。所以:

你的诉求
装什么
稳一点、少踩坑@latest(一般落在 rc 线),或显式钉 rc
尝新功能、能忍破坏性变更显式装 alpha,例:@0.1.5-alpha.2
长期跑 / 团队用钉死精确版本,升级一律走本步的流程

还有一个坑:@latest 不一定等于最新发布——官方讨论区里有 latest 指向旧 rc、以及 dsh-agent/dsh-tools 等子包互相 peer 冲突(ERESOLVE)的反馈,社区的解法是“成套显式安装同一条版本线”。所以升级前先把上面两条命令跑一遍。

升级三步:

bash
cp -r ~/.dsh ~/.dsh.bak-$(date +%m%d) # ① 备份 npm install -g @deepseek-ai/dsh@latest # ② 升级(也可指定版本:@0.1.5-alpha.2) dsh web # ③ 重启,新终端 dsh --version 验证

升级前顺手看一眼 Releases 页↗里“其他变更/破坏性”那一段——最近几版就连续动过:插件 Agent API(移除了 ctx.agent)、插件面板 API(旧的 conversation Slot 迁移)、极简模式默认工具。内核一动,插件就可能跟着坏:“当插件跑得比内核还快、内核又预告了破坏性变更时,最先坏掉的一定是插件。”

降级(回滚)就一行:

bash
npm install -g @deepseek-ai/dsh@0.1.2-rc.1 # 退回上一个能用的版本

但降级有个隐藏门槛:会话格式升到 V3 之后不支持降级读取——降完版本,新版 dsh 写的会话可能就读不了了。所以正确顺序是:先恢复备份目录、再降版本,让配置和会话一起回到升级前的状态。

市场里的升级提醒、一键升级类插件,我最后都没留在机器上——预览期破坏性变更太密,一键升级不如自己先扫一眼 release notes。

一句话纪律:预览期里,钉版本 + 升级前备份 + 升完跑一遍验收清单。

插曲:网页里点了「重启」,终端没了——dsh 还在跑,怎么关掉它

升级类插件会在网页里放一个「重启」按钮。我在一款升级提醒插件(dsh-update-checker,后来卸了)上踩过这个坑:它在 Windows 上的做法是另起一个隐藏的 PowerShell 后台进程,先 taskkill 掉当前进程,再用 Start-Process -WindowStyle Hidden 把 dsh web 重新拉起来。

后果是这样的:重启之后那台 dsh 没有控制台窗口了。原来那个终端一关(或 SSH 断、Windows Terminal 的标签页被关掉),你就再没法用 Ctrl+C 停它——它还在 127.0.0.1:3080 上好好服务着,你却找不到它,任务管理器里只有一堆长得一样的 node.exe。

冷知识一条,能省半天排查:这类写操作路由(含那个「重启」按钮)只认回环来源——插件会校验来源是 127.0.0.1/::1,从域名打开时直接 403。所以这个坑只在“本机浏览器”和“ssh -L 隧道”这两种场景出现。

先确认它还在不在跑:浏览器打开 http://127.0.0.1:3080 能开就是还在。它刚才干了什么,看插件留下的日志(Windows 在 %USERPROFILE%\.dsh\,macOS/Linux 在 ~/.dsh/):dsh-update-checker-restart.log 记录每一步,其中 relaunched node: <路径> 那句就是它重启你时用的命令,下次要手动拉起直接抄。

关掉它,Windows 上按端口认人最省事:

powershell
Get-NetTCPConnection -LocalPort 3080 -State Listen | ForEach-Object { Stop-Process -Id $_.OwningProcess -Force }

cmd 里等价两条:

cmd
netstat -ano | findstr LISTENING | findstr ":3080 " taskkill /PID <上面那个 PID> /F

⚠️ 别用 taskkill /IM node.exe /F:那会把机器上所有 Node 进程一起杀掉(VS Code 的扩展宿主、别的服务也跟着遭殃)。端口不确定、或者想先看看是谁在跑:

powershell
Get-CimInstance Win32_Process -Filter "Name='node.exe'" | Where-Object { $_.CommandLine -match 'dsh' } | Select-Object ProcessId, CommandLine

macOS / Linux 就是一行:

bash
lsof -ti tcp:3080 | xargs kill # 没装 lsof:ss -tlnp | grep :3080 找到 pid 再 kill

下次别再被卡住:把按端口杀那句存成 dsh-stop.ps1,点完网页「重启」、终端又没了的时候敲一下它;或者用 NSSM / WinSW 把 dsh web 做成 Windows 服务,开机自启、崩溃自拉,从根上消掉“窗口丢了”的问题。

上服务器

dsh 能部署在服务器上,我个人觉得这是最最最大的杀器,实在是太好用了,所有设备都能直接用浏览器连同一个 agent 工作。不过 dsh web 默认只监听 127.0.0.1:3080,--host 0.0.0.0 官方直接拒绝。所以服务器上是另一套问题:怎么进门、TLS、systemd 常驻、Docker、无人值守,内容还插多的,这篇不展开,值得晚点再单独写一篇讨论。

验收

逐项过一遍,每一项的确认方法:

清单项
怎么确认
dsh 命令可用新终端敲 dsh --help 有输出
工作台界面侧边栏、文件树、终端、Git 面板都在
有记忆重开会话问“上次我们做了什么”
有账单状态栏显示当前会话费用
说明书生效(写了的话)Trajectory 视图里能看到 AGENTS.md 被注入
技能就位(装了的话)问它“你有哪些技能”,能列出 Superpowers 带来的 find-skills 等能力
会升级也会回滚备份 → npm i -g @deepseek-ai/dsh@latest → 重启验证版本 → 能钉版本降级回去

全过的话,常规 Agent 有的这台 dsh 都有了。

常用命令速查卡

bash
dsh web # 启动(cd 到项目目录再跑) dsh --version # 当前版本 dsh plugin --profile web add <包名/github:仓库/本地路径> # 装插件(或市场面板里点) dsh plugin --profile web remove <包名> # 卸插件(或删 profile 配置里的行) dsh --profile web --dump-config # 看当前完整插件树(只打印,不写东西) npm view @deepseek-ai/dsh dist-tags --json # 当前 dsh 最新版指向哪一版 npm view @deepseek-ai/dsh versions --json | tail -5 # 当前的 dsh 有哪些版本(PowerShell:tail -5 换成 Select-Object -Last 5) npm install -g @deepseek-ai/dsh@latest # 升级到最新(或 @0.1.5-alpha.2 钉版本) npm install -g @deepseek-ai/dsh@0.1.2-rc.1 # 降级/回滚到指定版本 git clone <仓库地址> ~/.agents/skills/<技能名> # 装 skill:放目录即生效,Claude Code 共用 cp -r ~/.dsh ~/.dsh.bak # 升级前手动备份 /backup # 全量快照 + 自动恢复(装 dsh-backup 后在会话里输入) /backup auto 12 # 每 12 小时自动备份一次 # 关掉 dsh web:终端还在 → Ctrl+C;终端没了(网页点了「重启」)→ 按端口杀,见上面“插曲”

东西都放在 ~/.dsh/:Key 在 .credentials.yaml,你装的插件记在 profiles/web/cordis.patch.yml,会话日志也在里面——关掉窗口不会丢,重开历史会话能接着聊(resume)。

问题速查

有些在文章没提到的常见问题,挑了一些在这里简单记录了,还有不明白的可以留言:

  • node --version 打不出 → 没装 Node,按文末附录二装(Windows 装过的话先重开终端再试)
  • Node 低于 22.19 或正好 v23 → 按文末附录二升 24
  • NodeSource 脚本报 only supported on Debian-based systems → 发行版不是 Debian 系(脚本只认有 /etc/debian_version 的),改走附录的 nvm 路线
  • Ubuntu 直接 apt install nodejs → 仓库版本太老,先跑 NodeSource 的加源脚本再装
  • npm install -g 报 EACCES 权限错误 → 官方安装包 / NodeSource 装的 Node 全局目录归管理员,命令前加 sudo,或改用 nvm / brew 这类装在用户目录的 Node
  • 升完 Node 后 dsh 命令消失 → 全局包按 Node 版本隔离,重跑 npm install -g @deepseek-ai/dsh 即回
  • 服务器/远程访问的坑(浏览器连不上、/api 403、UI 整页失灵、设置存不了)→ 界面默认只听本机,起步用 SSH 隧道(见文末「上服务器」一节)
  • dsh 找不到命令 → 没全局装,或 PATH 没刷新(新开终端)
  • MISSING_CREDENTIAL → Key 有空格 / 余额为零 / 环境变量填了 Key 值
  • 输入框灰色 → 没选工作区
  • 界面一堆配置项 → 进了 Creator 模式,回 Standard
  • 内核升级后 dsh 起不来、报 does not provide an export → 某插件没跟上新版内核:报错里点名谁就卸谁(remove + 清 package.json 里 dsh.profile.bundles 数组同名项),等插件发适配版再装回;0.2.0 起加载器会先做插件兼容校验,不兼容的启动时就拒绝加载并写明原因,这类崩溃会少很多
  • 自定义网关 401 → 模型 ID 没手动声明,加两行 compat
  • 装插件后 dsh 起不来/Web 卡死 → 按“急救包”处理(卸插件 → 重启 → headless 验证 → 回滚备份)
  • 升级后插件集体失效 → 先看 release notes 的破坏性变更(插件 Agent API、面板 API 都改过),插件按 commit 钉回旧版
  • 降级后新会话读不出来 → V3 会话不支持降级读取,先恢复 ~/.dsh 备份再降版本
  • dsh plugin add 报一堆看不出原因的错 → 本机没装 pnpm(add 底层转发 pnpm,报错不指向根因),npm i -g pnpm 可解
  • 报 ERR_PNPM_IGNORED_BUILDS(cloudflared/node-pty/ssh2/cpu-features)→ pnpm 10 默认禁依赖构建脚本,进 ~/.dsh/profiles/web 跑 pnpm approve-builds 勾选批准,否则终端等功能缺失
  • 下载包反复 UND_ERR_DESTROYED → 网络抖动,重试;持续如此换镜像 pnpm config set registry https://registry.npmmirror.com
  • 网页点了「重启」后终端也没了、dsh 还在后台跑却关不掉(Windows 高发)→ 那个按钮是“看门狗杀掉再以隐藏窗口拉起”(dsh-update-checker 的 restart-watchdog.ps1,用的是 Start-Process -WindowStyle Hidden),于是没法用 Ctrl+C 停它;按端口杀 Get-NetTCPConnection -LocalPort 3080 -State Listen | ForEach-Object { Stop-Process -Id $_.OwningProcess -Force }(别用 taskkill /IM node.exe /F);它刚干了什么看 %USERPROFILE%\.dsh\dsh-update-checker-restart.log。

附录一:我在用的插件全套

下面 15 件是我这台机器常年跑的插件,从 ~/.dsh/profiles/web/package.json 里原样抄出来的(官方基座 dsh-base / dsh-web-app 不计)。星数就不标了,变动太快。

插件
干什么
dshmarket插件市场:设置面板里浏览/搜索/一键装卸更新,装完 dsh 第一件该装的
dsh-better-sidebarIDE 风侧边栏:文件树、内嵌终端、Git diff 与历史、子代理页签
dsh-vscode-mode界面切成类 VSCode 布局:Monaco 编辑器、Agent 改动差异审查(Keep/Undo)、LSP 跳转
@liustack/modsearch联网搜索:免 Key 起步,可接 Firecrawl/Tavily 多引擎故障转移
dsh-mnemon记忆三层:轮次内偏好、项目文档、跨会话检索空间
dsh-cost-meter状态栏账单:会话/当日费用、预算百分比、官方余额
dsh-context上下文体检:system prompt、工具 Schema、会话历史各占多少 Token,一屏看清
dsh-at-file聊天里 @ 文件名精准投喂,只传路径不塞内容
dsh-univer-office办公全家桶:表格/文档/幻灯片/画布,Agent 产出直接落进文档(做 Univer 的那家出品)
dsh-model-pro模型提供商管理页:多网关的新建/启停/连通性测试/智能路由
dsh-maskPII 脱敏:手机号、邮箱、密钥进模型前换成占位符,明文不进会话日志
dsh-notify-me离开页面不漏动静:审批/完成时系统通知 + 提示音 + 标签页标题标记
dsh-session-recycle-bin会话回收站:侧栏删除先进回收站,删错能捞回,也能真删
dsh-config-manager配置迁移:换机、多机之间搬配置
dsh-web-startup-auth远程 Web 启动 + 登录认证:让 dsh web 安全暴露到局域网

想一口气全装(add 一次只认一个包,用 && 串起来):

bash
dsh plugin --profile web add dshmarket && \ dsh plugin --profile web add dsh-better-sidebar && \ dsh plugin --profile web add dsh-vscode-mode && \ dsh plugin --profile web add @liustack/modsearch && \ dsh plugin --profile web add dsh-mnemon && \ dsh plugin --profile web add dsh-cost-meter && \ dsh plugin --profile web add dsh-context && \ dsh plugin --profile web add github:omdsh-dev/dsh-at-file#da602d1a8f1b417b8a1d8d4059e0f4cb1c353524 && \ dsh plugin --profile web add dsh-univer-office && \ dsh plugin --profile web add dsh-model-pro && \ dsh plugin --profile web add dsh-mask && \ dsh plugin --profile web add dsh-notify-me && \ dsh plugin --profile web add dsh-session-recycle-bin && \ dsh plugin --profile web add dsh-config-manager && \ dsh plugin --profile web add github:GDWhisper/dsh-web-startup-auth#d00118aacd49603a32c0dd99859544a49fd3ce54

macOS/Linux 整段直接粘;Windows PowerShell 不认 && 和行尾的 \,一行一条分开跑。装完统一重启 dsh web 才生效。

你未必照单全收。自己在市场里挑的时候,记得这三条:

  • 看维护信号。最近提交是什么时候?issue 区是有没有人响应?我核实星数的时候就撞到过两个仓库已经 404 失效了的插件,而上个月它们还出现在各种推荐清单里。
  • 看权限边界。它要什么 Key?读什么数据?有没有往外网发东西的迹象?插件自己讲不清权限边界的,这个“讲不清”本身就是信号。
  • 先毒检。可以装之前用 dsh-poison-guard 这个插件扫一遍:AST 分析(动态导入、混淆、eval、外泄、危险 shell)、解混淆(base64/hex 藏的毒字符串)、安装脚本启发式,三层扫描;退出码 0 是干净,1 是有发现。团队可以直接挂进 CI 当门禁。

再记一个挑插件的口径:star 是声望,周下载是使用,评级是质量(dshfind 按 S 到 C 给评级)。三个榜长得完全不一样,交叉着看,别被单一榜单带偏。技能(skills)不归市场管,装法见第 8 步。

附录二:环境安装备查

dsh 要两样环境:Node v22.19+ 或 v24+(v23 奇数试验版不算)和 pnpm。第 0 步检查缺哪样,这里按系统照抄补上:

macOS 去 nodejs.org↗ 下 .pkg 安装包双击装;装过 Homebrew 的话一行也行:

bash
brew install node

(brew 默认装最新版 v26,满足要求;求稳选 24 LTS——26 上有过插件原生依赖编译失败的案例。)

Linux(Arch / Fedora / openSUSE 等)直接用 nvm,不挑系统、不需要 sudo:

bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.7/install.sh | bash # 重开终端(让 nvm 生效),然后: nvm install 24 nvm alias default 24

Windows 二选一:去 nodejs.org↗ 下 .msi 双击装,或者:

powershell
winget install OpenJS.NodeJS.LTS

装完重开终端,node --version 打出 v24+ 就过关。然后补 pnpm(装插件底层走它):

bash
npm install -g pnpm pnpm --version # 有版本号输出即过关

最后记两条:macOS 想管多版本也可以用 nvm↗(仅 Linux/macOS);每个 Node 版本的全局包相互独立——以后升完 Node 发现 dsh 命令不见了,重跑第 1 步的安装命令就回来,~/.dsh 里的配置不丢,pnpm 同理,换过 Node 版本记得重补。

收尾

这 20 分钟配出来的东西,功能上确实追上了 Claude Code;打磨度和稳定性还差得远,Developer Preview 阶段就是这样,升级要靠备份兜底这种事,Claude Code 用户从来不用想。但换来几样东西:海量的插件、模型随便换、每一笔请求的费用看得见、过程日志全程可查。

再看时间线:一个月前,装 dsh 要先过 Node 环境关,装插件还有概率把机器装崩;现在,桌面版双击就装,内核加载前先校验插件。当初劝退新手的几个点,正在一个个补上。但这不改变下一篇要算的账:插件装得越多、权限放得越大,风险就越大——

下一篇,就讲安全相关的。

// 发射信标 — BROADCAST
微博X
END OF LOG_
ID: DSH-SETU