Introduction

DSH’s plugin system aims for “everything is a plugin”. As the number of plugins increases, the installation process is no longer just a single command: it requires confirming the plugin source, selecting the installation location, registering it to the current profile, and then verifying that the result is usable. For Web GUI users, if they have to manually switch terminals, check repositories, and modify configurations every time, the experience can feel disjointed.

dsh-plugin-installer is a DSH plugin package maintained by zhang66633, integrating “plugin directory browsing” and “installation troubleshooting skills” into one package: users can browse plugins in the “Plugin Store” tab of the Web GUI, and upon clicking install, the current session agent executes the installation process. Below is an introduction to its positioning, installation method, and applicable scenarios.

What is this?

dsh-plugin-installer is an all-in-one package for DSH’s plugin store + installation troubleshooting skills.

It consists of two parts:

  1. Web GUI “Plugin Store” tab: Used to browse and search the plugin directory, view names, descriptions, original links, and other information.
  2. Built-in dsh-plugin-installer skill: Serves as the installation backend engine, assisting the agent in verifying the source, selecting the installation path, registering to the profile, and verifying the installation result.

It targets users who wish to discover and install DSH plugins from the Web GUI, and is also suitable for developers who wish to have the agent participate in the installation and troubleshooting process. The plugin license is MIT.

Core Features

The capabilities listed below come from the plugin documentation:

  1. Provides a “Plugin Store” tab in the Web GUI for browsing and searching the plugin directory.
  2. Clicking install requests confirmation first, then submits a JSON request to the local /plugin-store/install route.
  3. Actual installation is executed by the current session agent; the built-in skill is responsible for verifying the source, selecting the installation path, registering to the profile, and verifying the installation result.
  4. Supports dsh 0.1.0-rc.6, Windows / macOS / Linux, Node ≥ 22.19, and targets the Web GUI (dsh --profile web).
  5. Provides a refresh button to recalculate the installed / updatable status of the plugin directory.
  6. Includes a snapshot of the data/store.json directory within the package; the installation request only submits the plugin name and session ID, without containing other configurations, environment variables, or keys.
  7. Supports two usage modes: Route A for full plugins and Route B for skills only.

Installation and Enablement

Route A: Full Plugin

The full plugin mode includes the Web GUI Plugin Store tab and the installation assistant skill. The installation command provided in official documentation is:

dsh plugin --profile web add dsh-plugin-installer

After execution, restart dsh web, then open any session, and the Plugin Store tab will appear in the view ring.

In local development scenarios, if the npm release process hasn’t been followed yet, you can also depend on and run it via link:<repo path>:

pnpm install

Route B: Skills Only

If you only need the installation assistant skill and do not need the Web GUI store tab, clone the repository to the DSH skills directory:

git clone --depth 1 https://github.com/zhang66633/dsh-plugin-installer ~/.dsh/skills/dsh-plugin-installer

This method is suitable for non-GUI profiles or scenarios that only require the skill capabilities.

Disabling and Uninstalling

When disabling a plugin, remove dsh-plugin-installer from dsh.profile.bundles.

When uninstalling, remove the dependency and bundle entry from the profile’s package.json, then run:

pnpm install

For Route B, the uninstallation method is to delete the skill directory:

~/.dsh/skills/dsh-plugin-installer

Typical Usage

The complete flow for Route A can be understood in the following steps:

  1. First, install the plugin:
dsh plugin --profile web add dsh-plugin-installer
  1. Restart the web service:
dsh web
  1. Open any session and find the “Plugin Store” tab in the view ring.
  2. Search for a plugin, e.g., vision.
  3. Click install, and the current session agent completes the installation after confirming the prompt.
  4. After installation completes, restart dsh web.

The minimum reproduction example provided in the documentation is:

  1. Search for modlens.
  2. Click install.
  3. Confirm the prompt.
  4. Wait for the agent to report success.
  5. Restart dsh web.
  6. Send an image to test OCR.

Directory Refresh and Data Boundaries

Directory data is included with the package in the form of a data/store.json snapshot. The refresh button on the page is used to recalculate the installed / updatable status of the plugin directory, not to introduce new configurations or credentials.

The host process is read-only to the bundled data/store.json; the catalog and installation routes are only bound to the local web service. After clicking install, the page only submits a JSON request to the local /plugin-store/install route. The request content consists of the plugin name and session ID, without containing other configurations, environment variables, or keys.

When the directory data itself is updated, maintainers can run scripts/refresh-catalog.ps1 from the radar repo, or wait for the daily task; ordinary users can upgrade the npm package when maintainers release it.

Applicable Scenarios and Notes

Suitable for the following scenarios:

  1. Want to browse the plugin directory from the DSH Web GUI.
  2. Want to let the current session agent handle plugin installation.
  3. Want to use only the installation assistant skill in a non-GUI profile.
  4. Want the installation process to be visible and stoppable at every step.

Pre-use notes:

  1. After installation is triggered, the agent may read/write the dsh profile and plugin directory, and access npm / GitHub.
  2. This process runs with the permissions of the current dsh process, so you should check the source code and license before installing.
  3. The plugin declares no telemetry, no analytics, and no credential access.
  4. Security issues should be reported privately via GitHub security advisory, not through public issues.
  5. Route A targets the Web GUI; non-GUI profiles are more suitable for Route B.

Resources

Plugin Directory Page: https://www.skillhub.cn/plugins/zhang66633/dsh-plugin-installer

GitHub Repository: https://github.com/zhang66633/dsh-plugin-installer