Preface

The core philosophy of DeepSeek Harness (dsh) is “everything is a plugin”: models, tools, sessions, sandboxes, and interfaces can all be replaced via plugin packages. Repositories on GitHub tagged with the dsh-plugin topic have grown to thousands in number. A common pain point when selecting plugins is not “none available”, but rather not knowing which ones are still actively maintained, which are just placeholder projects, and exactly how the ranking scores are calculated.

dsh-recommend solves this problem by scoring the ecosystem using a public formula, and storing both the raw data and rankings in its repository. You can view the static ranking list in a browser, or integrate it into dsh so that both the model tools and settings page use the same JSON file. This article is organized after cross-checking against the community directory page, repository README, docs/scoring.md, data/meta.json, and the host source code.

First, it is important to distinguish two things. The main DeepSeek Harness repository is at deepseek-ai/deepseek-harness. The plugin directory linked below, deepseek-harness-plugin.com, is a community-run site with no official affiliation to DeepSeek / Fangxin, and is not an official app store.

What is this

dsh-recommend is a “tools and capabilities” plugin for DeepSeek Harness, maintained by zp-home. Its GitHub repository is zp-home/dsh-recommend, licensed under MIT, with version 0.3.0 in package.json. As of 2026-08-17, the star count read from the GitHub API was 18 (the directory page showed 11 at the time; refer to the repository page for the most accurate count).

Its core problem to solve can be summed up in one sentence: crawl all public repositories tagged with dsh-plugin, sort them using a reproducible scoring model, and provide the same dataset for both the static website and the dsh plugin to use. The design document clearly states what it does NOT do: it does not handle plugin installation or updates, does not perform compatibility tests, and does not execute any code from the included repositories.

The data pipeline is driven by GitHub Actions. The README and tool descriptions are fully recalculated and committed to the data/ directory every 2 hours. The directory page lists the update cadence as “daily crawl”, which is closer to the historical snapshot granularity; when referring to the current repository description, the crawl interval is 2 hours.

Core Features

One Dataset, Multiple Consumers

The repository treats data/registry.json as the single source of truth. The static ranking website, the model tools in dsh, and the “Plugin Ranking” tab in the settings page all read from this file. Additional files include data/rankings.json (descending score list), data/history.json (daily trends), and data/trends.json (growth rankings).

As a snapshot of data/meta.json taken on 2026-08-17: there were 4534 topic-tagged repositories, 601 were excluded, and 3933 made it onto the rankings. There were 271 entries from the hub directory mirror across 9 categories. The top 200 entries on the ranking list were fully scanned, with 145 detected as having plugin characteristics and 55 not detected. The README still states “2200+ / 1900+”, which does not match the JSON data from that day; refer to data/meta.json for the correct numbers. This file also records GitHub Search pagination overflow (fetchOverflow), and the snapshot will fluctuate with API rate limits.

Public Four-Dimensional Scoring

The current version of the scoring model is 2. The formula is written in docs/scoring.md, and is also synced to scripts/score.mjs and the generated meta.json. The total score:

score = 0.35×maintenance + 0.30×popularity + 0.20×quality + 0.15×ecosystem

All four dimensions fall within the range [0, 1]:
- Maintenance (0.35): exp(-days since last push / 180), with a half-life of 180 days. The documentation identifies plugin drift as the most critical signal in the ecosystem.
- Popularity (0.30): min(1, log10(stars + 1) / 3), using logarithmic compression, capped at approximately 1000 stars. The documentation also notes the limitation: stars can be manipulated, and do not equal actual usage.
- Quality (0.20): Weighted sum of three criteria: having a license, a description of at least 40 characters, and a non-empty repository size.
- Ecosystem (0.15): 1.0 if mentioned in the hub directory or any awesome list, otherwise 0.2. Exclusion from the hub or awesome lists will not reset the score to zero.

Entries included in registry.json but not on the ranking list will have an exclusion reason attached, such as being a fork, archived, empty repository, missing description, placeholder/WIP project, on the official本体 denylist, or not detected as a plugin during deep scanning. Deep scanning checks for dsh declarations, @deepseek-ai/* dependencies, Cordis configuration, skills, and more; repositories manually included in the hub or awesome lists will not be kicked out for missing file signatures. Ties are broken by descending star count. Formula changes require versioning and review, and will not have parameters adjusted silently in the pipeline.

What You Can Do After Installing Into dsh

The README divides the plugin’s capabilities into two aspects, while the host source code actually registers 5 model tools:

Aspect Content
Model Tools rank_plugins query the ranking list; search_plugins search by name/description/category; recommend_plugins recommend based on goals (supports Chinese-English synonym expansion, accepts keywords); trend_plugins view star growth, ranking rises, download counts, new listings, and curated selections; sync_registry refresh local cache and report hub/deep scan health status
Settings Page Settings → Plugins → “Plugin Ranking”: search, categorize, sort, paginate, one-click refresh, one-click install, copy install commands, expand details, certification badges, trend charts; follows dsh light/dark themes, supports Chinese and English

The repository root is the plugin package, which declares both dsh.bundle and dsh.client. The build artifacts in lib/ are committed to the repository, so you can install directly from Git without building locally. The plugin only reads JSON files and does not execute code from included repositories.

You can also use the web version without installing dsh:
- General Ranking List: https://zp-home.github.io/dsh-recommend/site/
- Growth Ranking List: https://zp-home.github.io/dsh-recommend/site/rankings.html

The static website supports searching, categorizing, sorting by overall score/popularity/last update/latest release, and copying install commands. The growth rankings show 7/30/90-day star growth, ranking rises, npm downloads, newly listed this week, and curated certifications.

Installation and Activation

The installation command provided on the community directory page is:

dsh plugin add github:zp-home/dsh-recommend

To use the settings page tab in the Web UI, the repository README recommends installing it into the web profile (the README notes this has been verified on real hardware):

dsh plugin --profile web add github:zp-home/dsh-recommend
dsh --profile web --dump-config   # You should see the "# == dsh-recommend" section

For users in mainland China, you can also use the npm package name (the README specifies it will use npmmirror):

dsh plugin --profile web add dsh-recommend

For reproducible installations, pin the commit as instructed on the directory page:

dsh plugin add github:zp-home/dsh-recommend#<commit hash>

Changes will take effect after restarting dsh web. For offline local installation, copy the repository directory to your machine, then run dsh plugin --profile web add <local path>.

By default, the plugin pulls registry.json from raw.githubusercontent.com. If you cannot access this domain, the workaround listed in the README is to edit cordis.patch.yml in the installed package (node_modules/dsh-recommend/cordis.patch.yml) and replace the dataUrl with:

https://cdn.jsdelivr.net/gh/zp-home/dsh-recommend@main/data/registry.json

jsDelivr may have a several-hour cache delay; restart dsh after making changes.

Both the directory page and the official installation guide remind users: the plugin runs with the permissions of the current dsh process, and installation may execute code. You should inspect the source repository and license before installing.

Typical Usage Scenarios

1. View the Rankings Without Installing the Plugin

Just open the static website. The top entries in data/rankings.json for that day include anywhere-labs/deepseek-harness-desktop, zhu1090093659/dsh-web-ui, ccch1mneyyy/dsh-TUI, and others. Scores will change with the 2-hour pipeline recalculation, so do not treat a single moment’s ranking as a long-term conclusion. You can also read the raw JSON files directly:
- https://github.com/zp-home/dsh-recommend/blob/main/data/rankings.json
- https://github.com/zp-home/dsh-recommend/blob/main/data/meta.json

2. Browse and Install via the Settings Page

After restarting the Web UI, go to Settings → Plugins → “Plugin Ranking”. Here you can filter by category, change sorting, expand details, and also one-click install or copy the dsh plugin command. The 🏅 badge on the interface is a display layer “curated certification”, which the README explicitly states does not change the scoring.

3. Let the Model Perform Queries

If there is no local cached data, first have the model call sync_registry. Afterwards, you can ask questions using the tool parameters, for example:
- List the top 10 overall rankings: call rank_plugins (limit defaults to 10, max 50; category can filter by hub categories; sortBy can be score / stars / updated)
- Search for keywords: search_plugins, requires the query parameter
- Recommend based on goals: recommend_plugins, requires the goal parameter. An example in the source code comments is “add a sidebar to the Web UI”; optional keywords array. The relevance formula is 0.6×match score + 0.4×overall score, with the match score split equally between exact matches and synonym expansions
- View trends: trend_plugins, requires the board parameter, with optional values starsGain7d / starsGain30d / starsGain90d / rankGain30d / downloads30d / newlyListed / certified

These are model tools, not CLI subcommands you type directly in the terminal. You can state your goal directly in the conversation, for example: “List the top 10 UI-related plugins by overall score and provide their install commands”.

4. Recalculate the Rankings Yourself (Optional)

A reliable way to trust the rankings is to run the formula yourself. You will need Node 18+:

node scripts/sync.mjs            # fetch → score → deep scan → history → trends → badge → validate
node scripts/validate.mjs        # Only run validation
node scripts/smoke.mjs           # Run pure function smoke tests for the pipeline

If GITHUB_TOKEN is not set, the script will use unauthenticated rate limits and automatically skip deep scanning; CI environments will inject the token.

Plugin authors who have made the top 200 of the rankings can use the generated shields badges. To apply for the 🏅 curated certification, use the Issue form. Simply tagging the repository with the dsh-plugin topic will include it in the pipeline, so you do not need to fill out the form first.

Applicable Scenarios and Notes

This project is most suitable for these groups: existing dsh users who need a verifiable source directory when facing a large number of third-party plugins; plugin authors who want to check if they have fallen out of the maintenance window; users who do not want to install plugins and just want a quick overview of the ecosystem in their browser.

There are several clear boundaries, which are clearly stated in the repository’s SECURITY.md and the directory page:
1. Inclusion, ranking, and high scores do not equal security audits. Scores come from maintenance, stars, documentation completeness, and curated signals, and do not include code audits or runtime behavior assessments. Before installing any third-party plugin, you should still review the source code, dependencies, license, and whether the requested permissions exceed what is needed for the feature.
2. This plugin runs with the permissions of the current dsh process. Installing from a Git source may execute build/prepare scripts. The directory page recommends reading the repository before installing; pin the commit for reproducible installations.
3. It only reads metadata. It will not clone, install, or run any included repositories. Deep scanning currently covers only the top 200 entries on the ranking list; un-scanned repositories will follow a conservative strategy: they will not be excluded just because they have not been scanned yet.
4. Recommendations are still rule-based matching. The roadmap lists “recommendation logic upgrade + manual curated layer” as in progress; synonym expansion has been implemented, but this is not model-based semantic retrieval. The npm download volume signal is still listed as “planned / used for growth rankings” in the scoring documentation, so do not interpret it as already being part of the overall score weight.
5. The community directory ≠ official app store. The installation command is subject to the original text on the directory page, and the plugin source is still community repositories on GitHub.

Summary

dsh-recommend separates the crawling, filtering, scoring, and display of the DSH plugin ecosystem: formulas and raw data are public, and both the static website and the dsh plugin read from the same JSON file. It helps narrow down your candidate pool, but does not replace your own review of the specific plugin you plan to install.

  • Directory Page: https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-recommend/
  • GitHub Repository: https://github.com/zp-home/dsh-recommend
  • Static Ranking List: https://zp-home.github.io/dsh-recommend/site/
  • Scoring Model: https://github.com/zp-home/dsh-recommend/blob/main/docs/scoring.md