Preface¶
The design slogan of DeepSeek Harness (DSH) is “Everything is a plugin”: interfaces, tools, memory, and workflows can mostly be packed into the current profile as plugins. As long as community repositories have the GitHub dsh-plugin topic tag, they will appear in the public topic list. The problem is that the two steps of discovery and installation usually still require leaving Harness: opening the topic page, checking the README, and then returning to the terminal to run dsh plugin add.
The dsh-plugin-marketplace brings this workflow back into the web interface. After installation, two new tabs, Plugin Marketplace and Installed, will appear in Settings → Plugins. You can browse by pages, search by keywords, and install with a single click. The host side also registers model tools such as market_search and market_install, allowing agents to search and install plugins on their own.
First, it is necessary to clarify the boundaries: this is a community plugin maintained by AwesomeHou, licensed under MIT, and is not an official app store for DeepSeek / Fangjia. The community directory site deepseek-harness-plugin.com is also independently indexed and has no affiliation with the official repository. There are other similar marketplace plugins in the ecosystem such as dsh-market and DSH-Plugins-Marketplace, with different data sources and installation strategies. This article only verifies AwesomeHou/dsh-plugin-marketplace.
What is this¶
dsh-plugin-marketplace is a UI enhancement plugin maintained by AwesomeHou, with its repository at AwesomeHou/dsh-plugin-marketplace. It is categorized as “UI Enhancement” in the directory. When this article checked the GitHub repository, it had 27 stars, the version in package.json was 0.3.0, and the main language was JavaScript.
It solves the problem that “there are already many community plugins, but you have to switch back and forth between the terminal and GitHub”. The data source is not a manually curated list, but a real-time query of the dsh-plugin topic via the GitHub Search API. The directory page and README still mention “1800+ repositories”; when this article verified topic:dsh-plugin using the Search API, the total_count had exceeded 6000. The marketplace pulls data by pages, and the total on the page corresponds to the real total_count of the current query, and the number will change as the topic changes.
The plugin is split into two parts: the Host side (lib/index.js) is responsible for syncing with GitHub, registering the /api/market/* interfaces and model tools; the Client side (lib/client.js) mounts the two tabs into settings.plugins.tab. The dsh.client.platform in package.json is declared as web, so it is targeted at the web interface, not a pure CLI session.
Core Features¶
Full Pagination, Not Just the First 50 Items¶
The Host pulls the entire topic by pages, with 50 items per page by default and a maximum of 100. The interface has a “Load More” button, so you no longer have to limit the list to “only 50 items”. The total reflects the real total_count returned by GitHub.
Search Uses GitHub’s q Parameter, Not Local Filtering on Loaded Pages¶
Both the search box and the market_search tool pass keywords to GitHub Search’s q parameter. This means you can search for repositories that have not yet been loaded on the current page, rather than performing front-end filtering only on the cards that have already been rendered.
The top of the Plugin Marketplace tab will indicate the source: GitHub dsh-plugin topic (github.com/topics/dsh-plugin), synced in real time via the Search API. This is different from “a curated directory maintained by a specific site”.
One-Click Installation: Detect Repository Form First, Prioritize npm¶
Each card has an “Install” button. After clicking, POST /api/market/install is sent. The Host’s planInstall first checks what the repository looks like, then selects the installation path:
- Root-level plugins with dsh.bundle / dsh.client declared in the root package.json: use the standard dsh plugin add -w
- Plugins already published to npm: prioritize installing the npm version with name@ (the README states that this is fast, stable, and no need to pull GitHub again; pnpm will install the plugin and its runtime dependencies together into the profile)
- Plugins not published to npm: use the GitHub spec
- Monorepo / workspace roots: clone to $DSH_HOME/marketplace-src, build with corepack pnpm, then register with link:
After installation, result verification will be performed: whether it is added to dsh.profile.bundles, whether the entry file exists, and whether runtime dependencies can be resolved. The README clearly states: Root-level plugins cannot be installed with link:. A progress bar similar to an app store will appear inside the card (showing stage, percentage, downloaded size, speed, ETA, real-time logs), and you can cancel the installation.
If the direct installation fails, a “Let Agent Install” button will appear on the card. The Host will prepare a dedicated workspace $DSH_HOME/marketplace-install, send a fixed prompt to the agent in a new conversation, and let it read the target repository’s README before deciding how to install, to avoid polluting the current session. If the runtime service is unavailable, it will fall back to the current session.
The installation subprocess will inject CI=true to prevent pnpm 10 and above from getting stuck in interactive prompts when there is no TTY. If there is a pnpm major version drift (ERR_PNPM_VIRTUAL_STORE_DIR_MAX_LENGTH_DIFF / PUBLIC_HOIST_PATTERN_DIFF), it will automatically run pnpm install to rebuild the modules and try again. If there is zero output for a long time during download, the stagnation watchdog will kill the process tree by default after 120 seconds and retry the direct connection (can be overridden with the environment variable DSH_MARKET_STALL_MS), to avoid waiting up to ten minutes for a timeout.
Four Tools for Agents¶
The Host registers them via ctx.tools.register:
| Tool | Function |
|---|---|
market_search(q?, page?, perPage?) |
Returns a JSON list of topic repositories: full name, stars, language, description, URL |
market_install(spec) |
Executes dsh plugin --profile web add -w to install into the web profile; verifies that the spec does not contain shell metacharacters before execution; prompts that the harness needs to be restarted after completion |
market_installed() |
Lists third-party plugins installed in the web profile: enabled status, current version, latest version, whether an update is available (including the marketplace itself); built-in plugins are not included here |
market_update(name) |
Updates a specified installed plugin to the latest version, requires a restart to take effect |
Installed, Update, Disable, Uninstall¶
Packages from the profile template in dsh.profile.bundles are regarded as built-in plugins: they are provided with Harness and cannot be disabled or uninstalled. The Installed tab only lists third-party plugins installed later, with a statement at the top of the page.
Post-installation plugins can:
- Disable / Enable (/api/market/set-enabled): Remove from or move back to dsh.profile.bundles, while the dependencies remain intact
- Uninstall (/api/market/uninstall): Run dsh plugin --profile web remove, and automatically remove it from the bundle layer
- Update: Compare with the latest version on npm, or the version in the package.json of the GitHub default branch (prioritize GitHub plugins); cards with new versions will be marked “Update Available”
The marketplace will also check its own version (read package.json from its own GitHub repository). When a new version is available, a banner of vX → vY · Update Now will appear at the top of both tabs. Disabling, uninstalling, updating, and self-updating all require restarting the harness.
Plugin Description Translation (0.3.0)¶
PR #1 merged on 2026-08-17 added a “Translate” button to the cards. The Host provides POST /api/market/translate, which uses Google gtx and MyMemory in parallel race, and the first returned result is used to display the Chinese version in the pop-up window. The repository README has not yet added a separate section, so this submission and the effect screenshots shall prevail.
Installation and Activation¶
The installation command given on the directory page can be run in the DeepSeek Harness terminal:
dsh plugin add github:AwesomeHou/dsh-plugin-marketplace
The repository README states that it is installed into the web profile (the client declaration of this plugin is also web):
dsh plugin --profile web add https://github.com/AwesomeHou/dsh-plugin-marketplace
You can also directly hand the repository address to the current agent:
Help me install this plugin https://github.com/AwesomeHou/dsh-plugin-marketplace
After installation, you need to restart the harness for the two new tabs to appear.
For a reproducible installation, pin the commit hash according to the directory page instructions:
dsh plugin add github:AwesomeHou/dsh-plugin-marketplace#<commit>
When this article verified the repository, the latest commit on the default master branch was 1df4eb2121e869f48fdeb5de626c3610868a369e (2026-08-17). The hash will change with subsequent pushes, please double-check GitHub before installing.
Do not install from the registry using the bare npm package name dsh-plugin-marketplace. Repository issue #3 records that the npm package with the same name belongs to another author. If self-updating resolves the version and update source using the bare name, you will install the wrong package, and the marketplace tabs will disappear after restarting. The fix commit on 2026-08-17 changed to parse the version and update source based on the GitHub repository declared by the installed package.
Typical Usage¶
- Install and restart the harness (for the web interface, this is usually via
dsh web). - Open Settings → Plugins, you should see Plugin Marketplace and Installed alongside the built-in “Plugin Configuration” and “Plugin List”.
- Browse the cards in the Plugin Marketplace, click “Load More” to flip pages; use the search box to search the entire topic by name or keyword.
- Click Install on the target plugin, and watch the progress bar and logs. If it fails, check if the “Let Agent Install” button appears on the card.
- Go to Installed to check the enabled status and version of third-party plugins; click Update, Disable, or Uninstall as needed, then restart again.
If you want the agent to handle it for you, you can directly say “Help me search for plugins related to vision in the topic” or “Install the某某 repository into the web profile”. The agent should use market_search / market_install instead of constructing an unchecked shell command on its own. market_install will reject specs containing shell metacharacters.
Applicable Scenarios and Notes¶
It is suitable for users who are already using the DSH web interface and want to switch between terminals less often: browse community plugins, temporarily add capabilities to the current agent, and check whether installed third-party plugins have updates. It is also suitable for allowing agents to discover and install plugins during conversations.
It is not suitable as an “officially reviewed app store”. The list comes from public search results of GitHub topics, and you need to check the source code yourself for repository quality, maintenance status, and whether the plugin truly declares the DSH plugin contract. Built-in plugins will not appear in the Installed list, and cannot be disabled from here. Usage that relies purely on CLI and does not use the web profile will not match the client declaration of this plugin.
When installing any plugin found via the marketplace, please remember the warning on the directory page: Plugins run with the permissions of the current dsh process, and may execute code during installation. Check the source code repository and license before installing. This plugin itself is MIT; other plugins it helps you install have different licenses and permissions. Direct installation will execute dsh plugin add, pnpm, and git clone as needed on the local machine. Failure classification and the watchdog can only reduce freezes, and cannot replace your review of the target repository.
There are multiple “plugin marketplace” plugins in the community, with different installation commands, data sources (real-time topic / curated JSON), and whether arbitrary GitHub specs are allowed. Follow the instructions on the directory page or the target repository’s README, do not use commands from another marketplace.
Summary¶
dsh-plugin-marketplace syncs the GitHub dsh-plugin topic into the DSH settings page, and adds search and installation tools for agents. It reduces the round-trip cost of discovery and installation, but does not change the fact that “plugins equal running someone else’s code on your machine”.
- Directory page: https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-plugin-marketplace/
- GitHub: https://github.com/AwesomeHou/dsh-plugin-marketplace
- DeepSeek Harness official repository: https://github.com/deepseek-ai/deepseek-harness
- GitHub topic: https://github.com/topics/dsh-plugin