DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Plugin Versions — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
P

dsh-plugin-versions

Plugin Versions

DeepSeek Harness 的已安装插件管理器:从“设置 -> 插件”中列出已安装插件的已发布版本、切换或回滚版本,以及卸载插件。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:DangDangDeng/dsh-plugin-versions#482368d707a904bc7a01f57a9bf60a8d4d94afbc
README兼容性版本

兼容性与来源证明

Plugin Versions 以 dsh-plugin-versions 发布,当前版本为 0.1.2。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/10/19

版本

0.1.2stable
2026/10/19

相关插件

正在加载相关插件…

最新版
0.1.2
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
周下载
0
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 developer-tools 分类下经过校验的插件。

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Sdk Minimal@deepseek-ai/dsh-sdk-minimal独立的最小 SDK 配置包:JSON-RPC、一个 DeepSeek 适配器、持久化 Shell 和 JSONL 会话Sdk App@deepseek-ai/dsh-sdk-appdsh SDK 配置包:基于 dsh-base 提供 stdio JSON-RPC 服务和进程生命周期管理Experimental Terminal Bundle@deepseek-ai/dsh-experimental-terminal-bundle在多次工具调用之间保持 shell 进程运行。

README

dsh-plugin-versions

Version browser for DeepSeek Harness plugins. It adds an Installed plugins page under Settings → Plugins where you can see every published version of an installed plugin, switch to one, roll back, or uninstall it — all through the host's own pluginManager service.

English | 中文

Why

The official plugin manager intentionally has no version picker: third-party plugins are upgraded by uninstalling and reinstalling, and only official on-demand bundles get an explicit Update button. Pinning a known-good version, or returning to one after a regression, means editing package.json by hand.

This plugin adds exactly that missing surface, without replacing the market or the installer.

Features

  • Lists the bundles the current profile installs, with version, source spec, and whether the bundle is removable
  • Expands a bundle into its full published version list from the registry (publish date, latest, deprecated flags)
  • Switches version through pluginManager.removeBundle → pluginManager.installBundle, saving an exact dependency
  • Automatic rollback: if the target version fails to install (peer gate, missing version, network), the previous version is installed back and the failure is reported
  • Uninstalls a profile bundle from the same tab
  • Works with the profile's configured registry (private registries included) and falls back to registry.npmjs.org

Install

The npm package is not published yet, so install straight from this repository:

dsh plugin --profile <name> add github:DangDangDeng/dsh-plugin-versions

or with an explicit Git URL:

dsh plugin --profile <name> add git+https://github.com/DangDangDeng/dsh-plugin-versions.git

In DSH Desktop the desktop profile is managed by the application, so use Plugins → Add plugin and enter github:DangDangDeng/dsh-plugin-versions instead of the CLI. Restart or refresh the page afterwards. Add #<tag> or #<commit> to pin a revision.

Once published to npm, dsh plugin add dsh-plugin-versions will work as well.

Use

  1. Open Settings → Plugins.
  2. Select the Installed plugins tab.
  3. Expand a plugin to see its versions. The current one is tagged, and the newest is tagged latest.
  4. Switch asks for confirmation, then removes and reinstalls the plugin at that version. A failure rolls back automatically.
  5. Uninstall removes the bundle; its configuration is kept.

Refresh the page after a switch so the browser loads the other version's client half.

How a switch works

pluginManager.listBundles()        find the installed bundle, remember its version
pluginManager.removeBundle(name)   unload + remove the dependency
pluginManager.installBundle(name@version, { saveExact: true, enabled: true })
   ├─ success → ChangeResult.application: applied | restart-required
   └─ failure → remove the half-installed package, install the previous version

installBundle refuses a package the profile already depends on (already-installed) in HMR profiles, which is why the removal is not optional. The host performs the same check before pnpm runs, so an incompatible peer range is reported without touching the profile.

HTTP surface

The client half talks to the host half over one loopback-only route:

POST /plugin-versions/api/{list|versions|switch|remove}

Requests must carry x-requested-with: XMLHttpRequest, must not be sec-fetch-site: cross-site, and must arrive on a loopback Host (127.0.0.1, localhost, ::1). Only bundles already installed in this profile can be switched or removed, so the route cannot be used as a general package installer.

Limitations

  • Loopback only: a page served with --trusted-host from another machine is refused.
  • No automatic update check; this is a version browser, not an updater.
  • Compatibility is not pre-checked per version — the host rejects an incompatible version and the switch rolls back.
  • A switch needs HMR to apply live; without it the host reports restart-required.
  • The page must be refreshed before the new version's client half runs.

Development

Plain ESM, no build step:

index.js          host half: HTTP route + pluginManager calls
client.js         browser bundle: registers the Versions tab into plugins.tab
cordis.patch.yml  inserts the bundle row
locale/*.json     bundle title and description

Point the installer at this directory (dsh plugin add <path>, or Add plugin with an absolute path). The directory is linked, so edits take effect after a restart.

License

MIT