Preface¶
The DSH plugin system allows features to be integrated as plugins; the community directory is an independent site and is not equivalent to the official app store. For developers already running DSH via dsh web, npx @deepseek-ai/dsh web, or from the source repository, the common question during updates is not just “is there a new version”, but rather “which channel should the currently running process be updated from”.
dsh-updater-ui places the check and update entry point in the DSH “Settings → DSH Update” page. It selects the channel based on how the currently running process was installed: source repository uses git, npm global or npx uses the npm registry.
What This Is¶
dsh-updater-ui is maintained by xingyingyuzhui and is licensed under the MIT License. It is a Web plugin used to check for and update the official DSH.
The plugin identifies the current installation method: source repository, npm global, or npx. The key factor here is the “currently running DSH process”. If the current process comes from npx or npm global, the plugin uses the npm channel; if the current process comes from the official source repository, the plugin uses the source repository channel.
Core Features¶
- Identifies installation method: source repository / npm global / npx
- One-click check: executes
git fetchfor source; queries the official npm registry for npm, falling back to npmmirror on failure - Version comparison: compares the local and official
package.jsonversion numbers - Update notes: for source installs, can optionally list official new commits, including short hashes and titles, up to the most recent 15
- One-click update: source only allows fast-forward; npm only installs the official package name
@deepseek-ai/dshand the verified version number - Automatic check: Host performs a background check every 30 minutes, with re-entry protection; the page polls the cache every 60 seconds
- Red dot notification: when there’s an official update, the settings page navigation shows “DSH Update ●”
- Security rejection: refuses to overwrite if the local source has unpushed commits, forks, or conflicting changes; provides a copyable command if npm installation fails
Installation and Enablement¶
Prerequisites:
- DSH is installed, and
dsh webornpx @deepseek-ai/dsh webcan run - The npm channel requires access to the npm registry; the source channel requires local git and an official clone
In an environment where DSH is already installed, execute:
dsh plugin --profile web add github:xingyingyuzhui/dsh-updater-ui
After installation, restart DSH, then open “Settings → DSH Update”.
Typical Usage¶
-
Open “Settings → DSH Update”, the page displays the current installation method and official update status, such as “Up to date” or “Official update available”.
-
Based on the page prompts, click “One-click update official npm package” or “One-click pull official updates”.
-
After a successful update, restart DSH for the new code to be loaded.
-
If the npm installation is locked by a running process, common on Windows, the page provides a copyable command; stop DSH before executing that command.
For npx users, you can also directly start the latest official package:
npx --yes @deepseek-ai/dsh@latest web
Update Channels¶
Source Repository¶
When the current process comes from the official source repository, the plugin uses git fetch to check the official remote, and compares the local and official package.json version numbers.
Updates only allow fast-forward, using --ff-only for pulling. If there are unpushed commits, forks, or conflicting changes locally, the plugin will refuse to overwrite.
Source repository detection only uses git when the current process comes from an official source clone. The lookup order includes:
Running @deepseek-ai/dsh-root directory
Configured repo / environment variable DSH_REPO
~/deepseek-harness
~/.dsh/deepseek-harness
npm Global / npx¶
When the current process comes from npm global or npx, the plugin queries the official registry. If the query fails, it tries npmmirror.
Updates only install the official package name @deepseek-ai/dsh and the verified version number.
To specify a registry, you can set the following configuration options:
DSH_NPM_REGISTRY
npm_config_registry
The specific registry address depends on the current environment’s requirements.
Automatic Check and Notification¶
The plugin’s Host performs a background check every 30 minutes, with re-entry protection; the page polls the cache every 60 seconds.
When an official update is detected, the settings page navigation shows “DSH Update ●”.
Security Restrictions¶
- Routes only accept POST.
- Requests must include a custom request header:
X-DSH-Updater: 1
- If the request has an
Origin, onlyhttp://127.0.0.1orhttp://localhostare allowed. - The npm package name is fixed to
@deepseek-ai/dsh, and the version number must match a safe character set. - External commands have timeouts and output limits.
- Errors return structured JSON.
- No third-party dependencies, no telemetry.
Applicable Scenarios and Notes¶
Suitable for developers already running the official DSH in a DSH Web environment and wanting to reduce the manual effort of determining the installation method.
The plugin runs with the permissions of the current DSH process, and update operations invoke git or npm related commands. Before installation, it’s recommended to review the repository source and MIT License. If the network environment is restricted, ensure that the npm registry or source repository remote is accessible.
Uninstall the plugin:
dsh plugin --profile web remove dsh-updater-ui
Conclusion¶
The value of dsh-updater-ui lies in making explicit “where the current DSH process comes from” and providing a controlled update entry point, along with check and update notes, on the settings page.
GitHub repository:
https://github.com/xingyingyuzhui/dsh-updater-ui.git