Preface¶
In DeepSeek Harness (DSH), plugins are a common way to extend functionality. As plugins such as self-installed, local links, and GitHub sources increase, a single plugin list can easily mix official plugins with self-installed ones.
dsh-plugin-diraud solves this problem: it groups the currently loaded DSH plugins by source and places the enable, disable, update, and uninstall actions for self-installed plugins under a single entry. It is maintained by tttwh and is licensed under MIT.
Positioning and Scope¶
Below is an introduction to the positioning of this plugin.
- It is a DSH plugin used for plugin list management in the Web sidebar and composer.
- The core object is the currently loaded plugins, with a focus on distinguishing between
officialandself-installed. - Provides the
/plugin-auditcommand and thePlugin Catalogentry at the bottom of the sidebar. - Official/built-in plugins as well as this plugin itself are locked or rejected from being uninstalled.
Core Functions¶
Auditing Plugins by Source¶
The /plugin-audit command lists currently loaded plugins grouped by official/self-installed, and supports filtering by user, official, and keywords.
Common commands are as follows:
/plugin-audit
/plugin-audit user
/plugin-audit official
/plugin-audit <keyword>
/plugin-audit is used to view an overall overview; user only shows self-installed plugins; official only shows official plugins; <keyword> is used to filter by package name or entry keyword.
Enabling and Disabling Self-Installed Plugins¶
Self-installed plugins can be enabled or disabled through two entry points:
- The button in the
Plugin Catalogentry at the bottom of the sidebar; - Commands in the composer:
/plugin-audit disable <keyword>
/plugin-audit enable <keyword>
Toggles are persisted to the profile’s cordis.patch.yml, can be restored, and take effect immediately by calling ctx.loader.update. Official/built-in plugins are locked and cannot have their status changed via this method.
Plugin Catalog Panel¶
The Plugin Catalog panel displays plugin cards grouped by source. Each card displays the source identifier, installed version, entry id, and description.
The panel supports the following capabilities:
- Search by module name /
entry id; - Display real-time counts for each group;
- Provide a retry button when list loading fails;
- Descriptions prioritize a built-in module name to
zh/endictionary, falling back to the package’s owndescription; - When a package’s
repositoryorhomepagepoints to GitHub, the card displays a GitHub button to open the full documentation.
Updating Self-Installed Plugins¶
Updates for self-installed plugins first check the npm registry. The top of the panel has an update bar offering Re-check and Update all; individual plugin cards also have an Update button and display progress while executing.
Updates from npm use:
pnpm add <pkg>@latest
If necessary, it falls back to corepack / npx.
GitHub source plugins also support updates, compatible with specs like github:, git+, git://, git@, etc. During updates, it compares the local commit with the remote HEAD / tag and re-executes pnpm add with the original spec or the new tag. If a dependency is pinned to a specific commit, it will be marked as not auto-updatable.
If the old package name becomes invalid after an update but the new package name still points to the same repository, the panel reports repository renamed and provides a command to remove the old package.
Update tasks are queued and executed in the module-level store:
- Consecutive clicks are merged into the next batch of tasks;
- It will not start two pnpm processes concurrently;
- Tasks continue even after closing the panel and can be observed.
For link:, file:, and workspace: dependencies, the panel uses source-aware labels, displaying them as desktop app updates or local plugins to avoid misreporting them as regular npm updates. Official/built-in plugins and this plugin itself are locked.
Uninstalling Self-Installed Plugins¶
Each self-installed plugin card has a red Uninstall button on the right.
Upon clicking, it executes:
- Confirm uninstallation;
- Execute
pnpm remove; - Refresh the plugin list.
Non-self-installed packages and this plugin itself will be rejected for uninstallation.
Installation and Activation¶
Prerequisites: pnpm and dsh CLI.
Recommended installation from npm:
dsh plugin --profile web add dsh-plugin-diraud
Can also be installed from the GitHub main branch:
dsh plugin --profile web add https://github.com/tttwh/dsh-plugin-diraud/archive/refs/heads/main.tar.gz
After the above steps, restart dsh web, then you can:
- Type
/plugin-auditin the composer; - Or click
Plugin Catalogat the bottom of the sidebar.
Typical Usage¶
View Plugin Source¶
/plugin-audit
/plugin-audit user
/plugin-audit official
/plugin-audit <keyword>
Disable or Enable Self-Installed Plugins¶
/plugin-audit disable <keyword>
/plugin-audit enable <keyword>
Such operations write to the profile’s cordis.patch.yml. If you want to restore the default state later, simply delete the corresponding line.
Uninstall This Plugin¶
dsh plugin --profile web remove dsh-plugin-diraud
Force Classification as Self-Installed¶
By default, the plugin source is determined by the package scope. In edge cases, such as third-party packages published under @deepseek-ai/, you can force classification as self-installed via extraUserPackages.
Override the plugin-audit configuration in the profile’s cordis.patch.yml:
- id: plugin-audit
config:
extraUserPackages:
- '@deepseek-ai/dsh-my-fork'
Scenarios and Notes¶
Suitable for users who:
- Have both official plugins and self-installed plugins in the current DSH environment;
- Need to quickly confirm if a plugin is official, built-in, or self-installed;
- Want to centrally enable, disable, update, or uninstall self-installed plugins;
- Need to check the status of plugins from npm and GitHub sources.
Notes before use:
- It is a plugin running inside the dsh process; check the source code and license before installing.
- The plugin runs with the permissions of the current dsh process, and updates/uninstallations will actually execute package management operations.
- Official/built-in plugins as well as this plugin itself are locked or rejected from being uninstalled.
- Enable/disable states are written to the profile’s
cordis.patch.yml; delete the corresponding line to restore defaults. - Update tasks are queued and executed; no two pnpm processes will start concurrently; tasks continue after closing the panel.
link:,file:, andworkspace:dependencies are displayed as desktop app updates or local plugins to avoid misreporting.- The community directory page is an independent site; it should not be interpreted as an official app store, nor does it imply an official affiliation with DeepSeek / Hypothesis.
Summary¶
The value of dsh-plugin-diraud lies in splitting the DSH plugin list by source: official/built-in plugins and self-installed plugins are no longer mixed in one view, and there is a unified entry for enabling, disabling, updating, and uninstalling self-installed plugins.
- GitHub: https://github.com/tttwh/dsh-plugin-diraud
- Community Directory Page (Source provided, please verify before visiting): https://www.skillhub.cn/plugins/tttwh/dsh-plugin-diraud