DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

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

@deepforce/dsh-plugin-reloader

Plugin Reloader

无需重启 dsh web 即可热加载已安装的 DeepSeek Harness 插件:监视插件包,在原位重新加载发生变化的插件,并在依赖项发生变化时重启

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

npx -y @deepseek-ai/dsh plugin --profile web add @deepforce/dsh-plugin-reloader@0.3.0
README兼容性版本

兼容性与来源证明

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

DSH 兼容范围
*
运行环境
any
发布来源
npm
Registry 更新时间
2026/10/8

版本

0.3.0stable
2026/10/8

相关插件

正在加载相关插件…

最新版
0.3.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
69.2 kB
文件数
10
Surface
any
许可证
MIT
发布源
npm
GitHub
★ 1
周下载
0
最近提交
2026/10/8
查看源码 ↗
README Badge

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

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

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

认领这个 Plugin →
报告问题

相关插件

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

Client Ui Git Graph@linxin666/dsh-client-ui-git-graph外部 dsh Web GUI 插件:空会话 Git 分支选择器和 Git 图,包含实际的主机端 Git 操作与防护,作为 dsh 配置文件包Ssh@linxin666/dsh-sshdsh Web GUI 的远程 SSH 操作:主机配置存储(~/.dsh/dsh-ssh.json,可从 ~/.ssh/config 导入)、支持跳板主机的持久化 ssh2 连接池、exec / PTY Web 终端 / SFTP 传输 / 本地端口转发隧道 / 集群执行Update@linxin666/dsh-update用于 dsh Web GUI 的自更新插件:探测 npm 上是否有更新的系列版本,并在原地运行所属配置的 pnpm 更新;可通过设置图标旁侧边栏中的触发器启动,并显示发布说明面板Tui@deepseek-harness-tui/dsh-tui用于 DeepSeek Harness 智能体、会话和工具的交互式终端界面。

README

dsh-plugin-reloader

English | 中文

Hot-reload installed DeepSeek Harness plugins without restarting dsh web. After you upgrade a plugin (e.g. dsh plugin add github:...), the new code takes effect in place; only a dependency-tree change restarts the process (through an external supervisor script).

It reuses the same reload pipeline dsh's built-in HMR uses for user code — clear the module caches, re-import the plugin entry, dispose the old fibers, mount fresh ones, roll back on failure — minus the node_modules exclusion that keeps the built-in HMR away from installed plugins. The loader's internal module cache is reachable through dsh's vendored loader without any special flag.

Features

  • Auto hot-reload — polls the installed plugins' entry and package.json files (every pollIntervalMs, default 2s) and hot-reloads a plugin in place when its code changes. Polling (stat mtime+size) is used instead of a file-watcher library: chokidar's fs-watch never reached ready inside the long-lived dsh web process on Windows, and polling is immune to pnpm's whole-directory replacements (the stat simply sees the new files on the next tick). Plugin upgrades are low-frequency, so a 2-second stat of a handful of files is negligible.
  • /reload <plugin> command — manually hot-reload one installed plugin; with no argument it lists the loaded plugins, marking non-reloadable ones ([official], [service], [self]).
  • /watch-status command — prints live watch diagnostics: watched scopes, event count, the last observed change, reload count, skipped reloads, and any startup error. Read it after upgrading a plugin to confirm the auto-reload fired (events and reloads incremented).
  • Dependency-change restart — if a plugin's package.json changes its dependencies/peerDependencies, the process exits with code 42 (configurable) so a supervisor relaunches it.
  • Reloadability guard — official @deepseek-ai plugins and plugins that provide services other plugins depend on are not hot-reloaded by default: the attempt is skipped, logged, and counted in /watch-status. Reloading a service provider would cascade restarts through every plugin that injects its services, and reloading an official plugin is equivalent to patching dsh itself mid-session. Override per category with allowOfficial / allowServiceProviders.
  • Rollback on failure — a failed re-import or mount restores the module caches and the previous plugin; the session keeps running.

Install

dsh plugin --profile web add github:deepforce/dsh-plugin-reloader

Restart dsh web once so the plugin loads. For the dependency-change restart to be useful, start dsh through the supervisor instead of directly:

# Windows (cmd)
scripts\dsh-restart.cmd web

# Windows (PowerShell)
powershell -File scripts\dsh-restart.ps1 web

Usage

After upgrading an installed plugin:

dsh plugin --profile web add github:deepforce/dsh-balance   # upgrade

The watcher notices the changed lib/ files and hot-reloads it — no restart. To force it manually, type /reload @deepforce/dsh-balance in a session, or /reload with no argument to list candidates.

If the upgrade also changed the plugin's dependency tree, the process exits 42 and the supervisor relaunches dsh web automatically (a supervisor is required — a plain dsh web just exits).

Configuration

FieldDefaultMeaning
watchEnabledtruePoll installed plugins and hot-reload on code changes
watchRoots["@deepseek-ai", "@deepforce"]Scoped directories under the profile's node_modules to consider
debounceMs400Change coalescing window before a reload fires
pollIntervalMs2000Polling interval for change detection
restartExitCode42Exit code used when a dependency tree changed (supervisor restarts on it)
allowOfficialfalseAlso hot-reload official @deepseek-ai plugins (not recommended)
allowServiceProvidersfalseAlso hot-reload plugins that provide services other plugins depend on (not recommended)

Example overlay:

# reloader.cordis.yml
- patch:
    - id: plugin-reloader
      config:
        debounceMs: 600
        restartExitCode: 50

Compatibility

Tested against DeepSeek Harness 0.2.0-rc.2 (web profile, Windows 11, Node 24) and earlier 0.1.0-rc.x builds. It depends on the loader's internal module cache (loader.internal), which the vendored loader exposes by default; if a future dsh removes that surface, the plugin degrades to /reload reporting "loader internal is unavailable". Version 0.3.0 requires dsh 0.2.x: 0.2.0 and earlier pin dsh-commands to ^0.0.1-rc.1, which — caret on a 0.0.x version being an exact-version constraint — matches no later build, so dsh's plugin compatibility gate skipped the plugin entirely.

Security

  • The watcher only reads files; it never executes anything itself.
  • A reload failure rolls back instead of leaving a half-mounted plugin.
  • The dependency-change exit is intentional and announced in the log before exiting.

Building locally

pnpm install        # uses pnpm-workspace.yaml overrides for upstream npm gaps
pnpm run build      # tsc emits lib/index.js

License

MIT