Overview

DSH’s philosophy is “Everything is a plugin”. When looking for plugins in dsh web, users typically have to leave the settings page to search GitHub repositories, read the documentation, confirm the installation method, and then return to execute the installation command. dsh-plugin-library-search puts this process into the “Settings → Plugins” page: it adds a “Plugin Library Search” tab, displays repositories on GitHub tagged with topic:dsh-plugin, and supports waterfall browsing, keyword filtering, installation, and jumping to the repository page.

It connects to the collection of GitHub repositories tagged with topic:dsh-plugin, not the official DeepSeek or Huanfuan application stores.

What is this

dsh-plugin-library-search is a DSH plugin. After installation, it adds a “Plugin Library Search” tab in the DSH “Settings → Plugins” page, located to the right of the “Plugin List”.

The basic information is as follows:

  • Repository: AiLi1337/dsh-plugin-library-search
  • Maintainer: AiLi1337
  • License: MIT
  • package.json declares version as 0.1.0
  • engines.node requires >=18

Core Features

The following introduces several verified capabilities.

  • Adds a “Plugin Library Search” tab in the DSH “Settings → Plugins” page.
  • Connects to the GitHub topic:dsh-plugin repository collection, sorted by Star via the GitHub Search API, and supports searching.
  • Displays plugin images, names, and descriptions in a waterfall layout.
  • Each card provides an “Install” button and a “Jump to GitHub Plugin Page” link.
  • The search box supports filtering by name, description, and author keywords.
  • Automatically loads the next page when scrolling to the bottom of the list.
  • Models can call the following tools via the tools service:
    • plugin_library_search
    • plugin_library_install
    • plugin_library_installed
  • When the GitHub Search API is rate-limited or fails, it automatically falls back to scraping the github.com/topics/dsh-plugin page.
  • Supports bundle plugin installation writing to the dsh.profile.bundles stack, requiring a restart of dsh web to take effect.
  • Supports pure cordis plugin installation writing to the cordis.patch.yml insert lines in the profile, configuring HMR real-time mounting.

Installation and Enabling

First, install the plugin. The recommended installation command provided in the documentation is:

dsh plugin --profile web add dsh-plugin-library-search

You can also install directly from the GitHub repository:

dsh plugin --profile web add "github:AiLi1337/dsh-plugin-library-search"

After installation, restart dsh web, refresh the browser, and go to “Settings → Plugins → Plugin Library Search”.

This plugin declares dsh.bundle and will enter the dsh.profile.bundles stack.

Typical Usage

The usage steps can follow the order below.

  1. Open “Settings → Plugins” and click the “Plugin Library Search” tab on the right.

By default, it shows a list of repositories sorted by Star from the official plugin library. You can also enter keywords in the search box to filter; keywords can be the name, description, or author.

  1. Scroll through the list.

Scrolling to the bottom of the list will automatically load the next page. The documentation states there are approximately 100 items per page, with a maximum load of 500.

  1. Click the “Install” button on the card.

During installation, it parses the npm package name from the repository’s package.json. If the repository has been published to npm, it prioritizes executing something similar to:

pnpm add <npm package name>

If it has not been published to npm, it falls back to something similar to:

pnpm add github:<owner>/<repo>
  1. Complete the mounting based on the plugin type.
  • Bundle plugins, after installation, write to the dsh.profile.bundles stack and require a restart of dsh web to take effect.
  • Pure cordis plugins, after installation, write to the cordis.patch.yml insert lines of the profile, configure HMR real-time mounting, and refresh the page to see the changes.
  1. Click “GitHub ↗” to open the plugin repository in a new tab.

  2. Let the model call the plugin tools in the chat.

For example, you can enter:

帮我搜索一下插件库里的 xxx 插件

Or:

安装 vlln/plugin-registry

The model will call the corresponding tool. After restarting, the new session will be able to see these tools.

Use Cases and Notes

This plugin is suitable for users using dsh web who want to browse and install topic:dsh-plugin plugins directly in the settings page, as well as scenarios where users want the model to search or install plugins directly.

Points to note before use:

  • The plugin runs with the permissions of the current dsh process. You should check the source code and license before installing.
  • The unauthenticated GitHub Search API rate limit is 10 times/minute, returning HTTP 403 when exceeded.
  • When rate-limited or failed, the plugin will automatically fall back to scraping the github.com/topics/dsh-plugin page. The results are consistent, but the sort order defaults to the topic page order, not Star count.
  • It is recommended to set one of the following variables in the environment where dsh starts:
GITHUB_TOKEN
GH_TOKEN

After setting, the search quota increases to 30 times/minute. The host has an additional 5-minute cache to reduce requests.

  • One-click install depends on pnpm being in the PATH of the web service process.
  • For repositories installed from git source that have a prepare script, pnpm may need to be allowed in pnpm-workspace.yaml’s allowBuilds first.
  • The “Installed” status in the plugin list is based on package name matching. For repositories not published to npm, the success response of the installation is the standard.

Reference

GitHub Repository:

https://github.com/AiLi1337/dsh-plugin-library-search