🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI
广告☁️ 云服务器特惠阿里云首购 8 折 · 腾讯云合作特惠
DeepSeek Harness Hub
← 返回列表

一键更新器haotian-lu-prog/dsh-update-plugin

DeepSeek Harnessspec-screened扫描:中风险在 GitHub 查看 ↗
需源码安装

Topic: dsh-plugin

暂不能直接安装(需源码编译或环境不满足):仓库缺少 package.json,无法用 dsh 插件安装命令安装。 · 最近上游提交 2026/9/17 · 已提供中文文档

一条命令的 DSH 更新器:CLI、捆绑包以及所有配置文件插件——外加一个用于“设置 → 通用”的 dsh-plugin,支持备份和回滚。

综合分
29.6
GitHub 分
29.6
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add haotian-lu-prog/dsh-update-plugin
仓库缺少 package.json,无法用 dsh 插件安装命令安装,改用 GitHub 源安装
信任档位:已验证本站已于 1 天前真实安装成功
是什么
dsh 原生插件 · market
装得上吗
本站已真实安装成功(非静态推断)
安全吗
本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
还在维护吗
活跃:最近一次提交在 8 天前

档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →

🟢实装验证通过· 2026/9/25
由本站实装验证器在真实 dsh 环境安装成功,非静态推断。
数据截至 2026/9/22(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查需源码安装

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-update-all(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明

仓库缺少 package.json,无法用 dsh 插件安装命令安装

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/21 18:21:46

用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

由 DeepSeek 最新模型翻译生成
dsh-update-plugin

CI
npm
Topic: dsh-plugin
License: MIT

一条命令更新 DeepSeek Harness (DSH)、随包的 @deepseek-ai/dsh- 以及
所有 profile 插件。

English · 更新日志 · 贡献指南

已从 dsh-update-all 改名。 现在仓库、CLI 命令、Homebrew formula 和 npm
包统一使用 dsh-update-plugin。如果你在 v0.2.0 之前装过 CLI,需要重装一次才能
拿到改名后的命令;旧的仓库 URL 会被 GitHub 自动重定向。

本仓库用同一个名字提供两个东西:

| 产物 | 安装方式 | 作用 |
| --- | --- | --- |
| CLI(dsh-update-plugin) | brew install dsh-update-plugin 或 install.sh | 一条命令更新 DSH CLI、随包依赖和所有 profile 插件 |
| DSH Web 插件(npm dsh-update-plugin) | dsh plugin --profile web add dsh-update-plugin | 在设置页和右侧栏加入「检查更新」 |

为什么需要它

DSH 的更新通常分散在至少两个地方:

1. 全局 CLI 包 @deepseek-ai/dsh——它同时携带所有
@deepseek-ai/dsh- bundle;
2. ~/.dsh/profiles/ 下的每个 profile——社区插件本质上是每个
profile 的普通 pnpm 依赖。

手动更新意味着要记住 npm install -g @deepseek-ai/dsh@next,然后
dsh plugin --profile web update,还要对每个 profile 重复一遍。本工具会
全部处理:自动发现新 profile、新插件,并且知道 npm 的 latest dist-tag
对 DSH 来说并不一定是最新版本。

特性

- 一条命令:dsh-update-plugin。
- CLI + 插件:同时更新全局 CLI 和所有 profile 的插件。
- 真正最新:比较 npm 的所有 dist-tag(latest、next、alpha…),
不盲信 latest。
- 面向未来:从 $DSH_HOME/profiles//package.json 动态发现 profile,
以后新增 profile/插件无需改脚本。
- 识别安装方式:根据 dsh 的真实安装位置选择 npm 或 pnpm。
- 默认安全:每次实际更新前自动备份,支持 --rollback 一键回滚。
- 预览模式:--dry-run 只显示将要执行的操作。
- 可控通道:--channel stable|next|alpha|auto,以及用于 pnpm
minimumReleaseAge 的 --min-age 。
- 体积小:单个 Bash 脚本,兼容 macOS 自带的 Bash 3.2。

DSH Web 插件

dsh-update-plugin 会在 DSH Web 的 设置 → 通用设置 里加入一行
「检查更新」,和权限、语言、外观、字号大小同级。它还提供完整的
设置 → 检查更新 页面(频道、--min-age、profiles、备份、回滚)以及带更新
角标的右侧边栏原生 tab。更新逻辑内置,不依赖 Homebrew,也不需要单独安装
shell 脚本。

设置 → 通用设置里的「检查更新」
右侧栏更新提醒
设置 → 检查更新完整页面&测试更新提醒

从 npm 安装
dsh plugin --profile web add dsh-update-plugin

本地开发 / 从本仓库安装
dsh plugin --profile web add /path/to/dsh-update-plugin/plugin

安装、兼容性、兜底方案和开发说明见 plugin/;社区公告文案见
docs/announcement.md。如果 pnpm 的
minimumReleaseAge 策略阻止安装,在 dsh plugin add 命令后加
--config.minimum-release-age=0 即可。请务必用 dsh plugin add 挂载,
不要只用 pnpm add,否则不会写入 dsh.profile.bundles。

环境要求

- macOS 或 Linux(WSL 可用)
- bash 3.2 及以上
- node(DSH 本身就需要 Node.js)
- npm(查询 registry;当 DSH 由 npm 安装时也用于更新 DSH)
- pnpm 通过 dsh plugin 调用,DSH 安装中已有
- 已安装 DSH——没有也可以用它来引导安装

安装

一行安装

curl -fsSL https://github.com/haotian-lu-prog/dsh-update-plugin/releases/latest/download/install.sh | bash

安装器会从 refs/heads/main 拉取最新版 updater。若想直接用 main 分支上的安装器:

curl -fsSL https://raw.githubusercontent.com/haotian-lu-prog/dsh-update-plugin/refs/heads/main/install.sh | bash

Homebrew

brew tap haotian-lu-prog/dsh-update-plugin https://github.com/haotian-lu-prog/dsh-update-plugin
brew trust haotian-lu-prog/dsh-update-plugin
brew install dsh-update-plugin

Homebrew 6+ 默认不加载第三方 tap 的 formula,brew trust 是每个 tap 只需
执行一次的操作;较老版本没有 trust 命令的话跳过这行即可。

formula 就在本仓库里(Formula/dsh-update-plugin.rb),每次发版会自动更新
url 和 sha256,brew upgrade dsh-update-plugin 就能拿到最新版,不需要独立
的 tap 仓库。

手动安装

git clone https://github.com/haotian-lu-prog/dsh-update-plugin.git
cd dsh-update-plugin
./install.sh --local dsh-update-plugin.sh

本地直接运行(不安装)

bash ./dsh-update-plugin.sh --dry-run

如果 ~/.local/bin 不在 PATH 中,安装脚本会提示需要添加的配置。

使用

更新所有东西到最新(默认)
dsh-update-plugin

只预览,不做修改
dsh-update-plugin --dry-run

只跟随 stable(latest)通道
dsh-update-plugin --channel stable

保守模式:只接受发布满 24 小时的版本
dsh-update-plugin --min-age 1440

只更新一个 profile
dsh-update-plugin --profile web

只更新 CLI / 只更新插件
dsh-update-plugin --no-plugins
dsh-update-plugin --no-cli

跳过确认(脚本 / cron)
dsh-update-plugin --yes

查看备份并回滚
dsh-update-plugin --list-backups
dsh-update-plugin --rollback
dsh-update-plugin --rollback 20260911T211500

更新完成后请重启正在运行的 dsh web / DSH 会话。

选项

| 选项 | 说明 |
| --- | --- |
| --channel  | 跟随哪个 npm dist-tag。auto(默认)取所有 tag 中版本最高者;stable 即 latest。 |
| --min-age  | 只接受发布满 N 分钟的版本。0(默认)总是最新;1440 = 24 小时。 |
| --profile  | 只更新指定 profile,可重复。 |
| --no-cli | 不更新全局 dsh CLI。 |
| --no-plugins | 不更新 profile 插件。 |
| --no-backup | 跳过自动备份。 |
| -n、--dry-run、--check | 只打印计划,不做任何修改。 |
| -y、--yes | 跳过确认。 |
| --list-backups | 列出可用备份。 |
| --rollback [id] | 回滚到指定备份(默认最新)。 |
| --install | 把本脚本安装到 ~/.local/bin。 |
| --target-version | 只打印将要安装的最新版本后退出(适合脚本 / CI)。 |
| -h、--help | 查看帮助。 |
| -V、--version | 查看 updater 版本。 |

环境变量

| 变量 | 默认值 | 含义 |
| --- | --- | --- |
| DSH_HOME | ~/.dsh | DSH home 目录。 |
| DSH_UPDATE_CHANNEL | auto | 同 --channel。 |
| DSH_UPDATE_MIN_AGE | 0 | 同 --min-age。 |
| DSH_NPM_CACHE | ~/.cache/dsh-update/npm | 元数据与全局安装使用的 npm cache。 |
| DSH_UPDATE_BACKUP_DIR | $DSH_HOME/update-backups | 备份目录。 |
| DSH_UPDATE_INSTALL_DIR | ~/.local/bin | --install / install.sh 的安装目录。 |
| NO_COLOR | 未设置 | 设置后关闭彩色输出。 |

工作原理

1. 解析目标版本:向 npm 查询 @deepseek-ai/dsh 的 dist-tags,按
semver 规则比较。默认 --channel auto 取最高版本,因此能拿到比
latest 更新的 next 版本。
2. 识别安装方式:解析 dsh 背后的真实路径,选择 npm 或 pnpm 全局安装。
3. 备份:把每个选中 profile 的 package.json 与 pnpm-lock.yaml,以及
当前 CLI 版本,复制到 $DSH_HOME/update-backups// 并写入
manifest.json。
4. 更新 CLI 与 bundle:一次全局安装即可更新 @deepseek-ai/dsh 及其全部
@deepseek-ai/dsh- 依赖。
5. 更新 profile:对每个有依赖的 profile 执行
dsh plugin --profile  update --latest,必要时回退到 profile 目录里的
pnpm update --latest。
6. 收尾:打印新的 CLI 版本,并提醒重启 DSH。

安全与回滚

- 先预览:dsh-update-plugin --dry-run。
- 每次实际更新默认都会备份,位置在 ~/.dsh/update-backups/。
- 一键回滚(恢复 profile 清单、lockfile、依赖以及旧版 CLI):

dsh-update-plugin --rollback

- 默认会给 pnpm 传 --config.minimum-release-age=0,即不等待 24 小时供应链延迟。
如需更保守:dsh-update-plugin --min-age 1440(或
DSH_UPDATE_MIN_AGE=1440)。
- 本工具只写入你的 DSH home 以及全局 npm/pnpm 前缀,不会向任何其他服务器
发送数据;npm/pnpm 只会访问它们各自的 registry。

常见问题

Homebrew 提示 tap 不受信任怎么办?
Homebrew 6+ 默认不加载第三方 tap。执行一次
brew trust haotian-lu-prog/dsh-update-plugin(或
brew trust --formula haotian-lu-prog/dsh-update-plugin/dsh-update-plugin),
然后重新执行 brew install dsh-update-plugin 即可。

为什么 latest 不是最新版?
DSH 目前仍在发布预发布版,例如某段时间 latest 是 0.1.5-rc.1,而 next
已经是 0.1.5-rc.2。--channel auto 会比较所有 dist-tag,选取真正的最高版本。

会把插件更新到发布不足 24 小时的新版本吗?
默认 --min-age 0 会。需要延迟保护请加 --min-age 1440。

我是用 pnpm 安装的 DSH,能用吗?
可以。脚本会检测 dsh 可执行文件的真实路径,并用对应的包管理器更新。

会更新 DSH Desktop 吗?
不会。本项目更新 CLI 和 profile 插件;桌面端有自己的更新机制。

Windows 能用吗?
请在 WSL 或 Git Bash 中使用;原生 PowerShell 不支持。CI 覆盖 macOS 与 Linux。

没有 profile 怎么办?
没关系,插件步骤会自动跳过,CLI 及其 bundle 仍会更新。

发布与自动化

- 推送 v0.1.1 这样的 tag 会触发 Release workflow:校验 tag 与
UPDATER_VERSION 是否一致,自动创建 GitHub Release、生成 release notes,
并附带 dsh-update-plugin.sh 和 install.sh。
- make release VERSION=0.1.1 会一次性完成版本号更新、提交、打 tag、推送。
需要先在 CHANGELOG.md 里写好对应版本条目。
- 同一个 Release workflow 还会更新本仓库里的
Formula/dsh-update-plugin.rb,所以发布完成后 Homebrew 立刻指向新版本,
不需要额外 secret,也不需要第二个仓库。
- Upstream check workflow 每天解析 @deepseek-ai/dsh 的最新版本,一旦发现
比本仓库记录的版本更新,就自动开 issue 提醒维护者适配。

贡献

欢迎提 Issue 和 PR。本地开发与测试说明见 CONTRIBUTING.md。

许可证

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入社群

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

DPharness QQ 群二维码,QQ 扫码进群
QQ 扫码进群
DPharness 飞书群二维码,飞书扫码进群
飞书扫码进群