DeepSeek Harness plugin

dsh-publish-plugin

Publish a DeepSeek Harness plugin to npm and GitHub in one flow: /publish-dsh-plugin command + publish_plugin tool. 一键把 DSH 插件发布到 npm 与 GitHub(双平台必发)。

Jump to install

Source facts

Repository
liulei237136/dsh-publish-plugin
Latest update
Aug 17, 2026
Category
Tools & Capabilities
GitHub stars
0
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-20

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/liulei237136/dsh-publish-plugin
Plugin: dsh-publish-plugin
Author: liulei237136

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer3 files
README.mdSource · read only
README language

dsh-publish-plugin

English | 简体中文

Publish a DeepSeek Harness plugin bundle to npm + GitHub (always both platforms) in one flow — the /publish-dsh-plugin command (human-driven in the Web GUI / TUI) and the publish_plugin tool (model-driven). Both share one publish domain and are fail-closed: nothing executes without explicit confirmation.

Installation

# from npm (recommended — the published package)
dsh plugin --profile web add dsh-publish-plugin
# or from git
dsh plugin --profile web add github:liulei237136/dsh-publish-plugin

After installation both /publish-dsh-plugin and publish_plugin are available (the command registers only when a command registry is composed; the tool only when a tool registry is).

Command usage

① /publish-dsh-plugin                  → discover candidates in the session directory (and ancestors / direct subdirectories)
② /publish-dsh-plugin <plugin>         → validate manifest + conflict checks + action summary
③ /publish-dsh-plugin <plugin> yes     → execute (npm publish + GitHub repo creation/push + tag + topic)
  • Without yes it only summarizes, never executes (fail-closed);
  • A taken version (already published) errors with a bump-the-version prompt; an existing package name / repo is a normal upgrade (new version, existing repo);
  • Conflicts are re-checked right before execution.

Tool usage

Just ask the model to "publish this plugin". The model calls publish_plugin (plugin_path optional; defaults to the session directory), the tool validates, shows the action summary, and routes the final confirmation through ctx.approval — only allowed-once proceeds. The result returns to the model, which can verify the install, write a CHANGELOG, or handle failures.

Prerequisites

  • Node.js + npm on the publishing machine
  • gh CLI installed and logged in (gh auth login; if gh was installed after the host started, restart the host — PATH is snapshotted at startup)
  • npm publishing auth — npm now requires 2FA or a bypass token (exact commands in Troubleshooting below):

- either enable 2FA on the npm account (auth-only mode is enough), or - create a Granular Access Token with Bypass 2FA enabled and set it as the auth token

Troubleshooting

SymptomCause & fix
npm error 403 Forbidden - PUT ... - Two-factor authentication or granular access token with bypass 2fa enabled is required to publish packagesnpm requires 2FA to publish. Enable 2FA on the account (npm profile enable-2fa auth-only — publishing then needs no OTP) or create a Granular Access Token with Bypass 2FA on https://www.npmjs.com/settings/<you>/tokens and run npm config set //registry.npmjs.org/:_authToken=<token>
npm error ENEEDAUTH: need auth ... You need to authorize this machine using npm adduserNot logged in: run npm login, or set NPM_TOKEN (env var; a new env var requires restarting the host)
GitHub 仓库:gh 未登录 (check failed)Run gh auth login; if gh was installed after the host started, restart the host (PATH is snapshotted at startup)
Command/tool not visible, or changes have no effectBundle layers are not hot-reloaded (only the user cordis.patch.yml is). Restart the web profile after installing or changing a bundle
pnpm blocks prepare on git installspnpm ≥10 requires allowlisting build scripts in the profile's pnpm-workspace.yaml (pnpm prints the key; dsh plugin hints too)

Notes

  • Publishing waits synchronously on subprocesses (npm publish / gh can be slow); the UI waits, and cancellation interrupts. On Windows, cancellation terminates only the cmd wrapper of npm/gh — child processes may linger; clean up manually if needed;
  • Partial failures report exactly which steps completed; finish the rest manually (e.g. npm published but GitHub failed);
  • Git preflight (dirty worktree / mismatched remote) rejects before any side effect — the plugin never rewrites a remote and never auto-commits;
  • The tool face refuses to execute without a composed ctx.approval (fail-closed);
  • The install command shown after publishing uses --profile web because dsh plugin requires a profile; substitute your own (e.g. tui).

---

For maintainers: local development, the test suite and the self-hosted release flow live in CONTRIBUTING.md; fixed decisions and implementation notes in docs/design.md.