Introduction

The philosophy of DSH is “everything is a plugin,” and the number of plugins in the dsh-plugin ecosystem is continuously growing. To choose a suitable plugin, one usually has to scour GitHub, browse community aggregations, and compare npm download counts. Information is scattered across several places, and there is no list that allows you to directly see “which plugins are trending” or “which have high download volumes.”

The dsh-plugin-rankings introduced below is designed to address this issue: it compiles the Top 10 / Top 100 lists of the dsh-plugin ecosystem daily, supports sorting by popularity (GitHub Stars) or download volume (npm downloads of the past week) in descending order, defaults to popularity, and integrates an entry into the DSH Web settings page.

What is it

dsh-plugin-rankings is maintained by nanami-0713, the npm package name is @dsh-external/dsh-plugin-rankings, current version 0.1.0, and the license is MIT.

It is a standard DSH dual-end bundle plugin:

  • host half (lib/index.js): Multi-source aggregation pipeline + snapshot persistence + daily scheduling + same-origin HTTP API;
  • client half (lib/client.js): Registers the settings.section slot “Plugin Rankings” and renders the rankings and settings controls using a React component.

Where the Data Comes From

The ranking data is aggregated from four public sources, all are read-only interfaces without authentication:

Source Purpose Interface
GitHub dsh-plugin topic Main popularity metric (Stars/Forks), repository metadata api.github.com/search/repositories
Oh-My-DSH aggregation directory Categories, manual notes, activity signals, types data/plugins.json (jsDelivr CDN)
awesome-dsh-plugin curated list Curated badges and supplemental entries README line-by-line parsing (jsDelivr CDN)
npm keyword search + weekly download count Download metrics, npm package links registry.npmjs.org / api.npmjs.org

Core Features

  • Ranking range: One-click toggle between Top 10 / Top 100;
  • Sorting: Popularity (default) or download volume, both in descending order, displaying ranking badges; the top three are gold, silver, and bronze respectively;
  • Entry information: Each entry displays Stars, weekly downloads, category, activity, language, License, last update time, source badges (GitHub / Oh-My-DSH / awesome / npm), and is clickable to go directly to GitHub and npm;
  • Automatic compilation: Toggleable, interval defaults to 24 hours, adjustable between 12–72 hours; can also be manually triggered by clicking “Refresh Now” in the settings page;
  • Fault tolerance: Collection alerts and failure states are visible; old snapshots are preserved, and collection failures do not affect display.

Installation and Activation

First, obtain the plugin repository, then install using the following command:

dsh plugin add /path/to/dsh-plugin-rankings

You can also use the hot-reload method: modify the profile’s package.json (add link dependencies and bundles) and restart.

No additional configuration is required after installation. The plugin entry appears in the “Plugin Rankings” section of the DSH Web settings page, alongside other plugin settings.

Compilation Mechanism and Interfaces

The host half automatically compiles once according to a daily schedule with the strategy of “startup catch-up + check every 6 hours” to avoid missing that day’s tasks. The compilation results are persisted as snapshots:

~/.dsh/plugins/dsh-plugin-rankings/data.json

The host half also provides same-origin HTTP APIs:

GET  /api/dsh-plugin-rankings/data       # Snapshot, settings, and compilation status
GET  /api/dsh-plugin-rankings/settings   # User settings
PUT  /api/dsh-plugin-rankings/settings   # Update user settings
POST /api/dsh-plugin-rankings/refresh    # Manually trigger compilation

The client half does not directly call external interfaces; it only consumes these same-origin APIs to render the page.

Development and Build

If you want to modify based on the source code, first install dependencies, then build and run type checking:

npm install
npm run build:all   # tsc compile host + tsdown package client
npm run typecheck

Regarding dependencies, peerDependencies are @deepseek-ai/cordis ^4.0.1 (optional), react ^18.2.0, and react-dom ^18.2.0.

Applicable Scenarios and Notes

Suitable for two types of people: first, developers who want to quickly pick plugins in the dsh-plugin ecosystem, allowing them to go directly to the repository and npm page after sorting by popularity or download volume; second, maintainers who want to continuously observe ecosystem activity, as the rankings are updated daily, showing entry activity and update times.

Before use, there are a few points to note:

  • Plugins run with the permissions of the current DSH process; before installation, you should check the source code and license. The license for this project is MIT, and the source code is available on GitHub;
  • Data sources are all public read-only interfaces, and the ranking content reflects a snapshot at the time of collection, not real-time data;
  • When collection fails, the old snapshot is displayed; you can confirm the reason in the failure status and alerts in the settings page.

Summary

dsh-plugin-rankings aggregates plugin information scattered across GitHub, Oh-My-DSH, the awesome list, and npm into a daily-updated ranking, saving the cost of manually comparing across different locations with the integrated entry in the DSH settings page.

  • Directory: https://www.skillhub.cn/plugins/nanami-0713/dsh-plugin-rankings
  • GitHub: https://github.com/nanami-0713/dsh-plugin-rankings