<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: zhaojun chu</title>
    <description>The latest articles on DEV Community by zhaojun chu (@zhaojun_chu_67e9012ea34d6).</description>
    <link>https://dev.to/zhaojun_chu_67e9012ea34d6</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4099739%2Ff8ba706e-9142-4655-afcf-ed713d372577.png</url>
      <title>DEV Community: zhaojun chu</title>
      <link>https://dev.to/zhaojun_chu_67e9012ea34d6</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zhaojun_chu_67e9012ea34d6"/>
    <language>en</language>
    <item>
      <title>Stop Hunting for Plugins on GitHub—I Built Plugin Discovery Directly into DeepSeek Harness</title>
      <dc:creator>zhaojun chu</dc:creator>
      <pubDate>Sat, 29 Aug 2026 05:35:27 +0000</pubDate>
      <link>https://dev.to/zhaojun_chu_67e9012ea34d6/stop-hunting-for-plugins-on-github-i-built-plugin-discovery-directly-into-deepseek-harness-3cg2</link>
      <guid>https://dev.to/zhaojun_chu_67e9012ea34d6/stop-hunting-for-plugins-on-github-i-built-plugin-discovery-directly-into-deepseek-harness-3cg2</guid>
      <description>&lt;p&gt;Here is the entire pitch: install one npm package, and DeepSeek Harness gets a native plugin marketplace, transparent rankings, and two Agent tools that can search the catalog from a conversation.&lt;/p&gt;

&lt;p&gt;No tab hopping. No guessing package names. No stitching together a recommendation from five half-read READMEs.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dsh plugin &lt;span class="nt"&gt;--profile&lt;/span&gt; web add @czj-git/dsh-plugin-hub
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is not an iframe, and it is not the DSH Plugin Hub website squeezed into a WebView. The plugin reads the same public, read-only catalog API and reshapes it for two places where plugin discovery is actually useful: &lt;strong&gt;DeepSeek Harness Settings and the Agent itself&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The website answers “What plugins exist?” The plugin answers “Why should I leave Harness to find them?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftxv64crsfijtksun6yy9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftxv64crsfijtksun6yy9.png" alt="DSH Plugin Hub marketplace inside DeepSeek Harness Settings" width="799" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The native Plugin Hub in dark mode. Counts, rankings, and public metrics reflect the moment each screenshot was captured; the live catalog keeps changing.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Search was never the slow part. Switching was.
&lt;/h2&gt;

&lt;p&gt;Adding a capability to an Agent usually starts with a simple need:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I need long-term memory.&lt;br&gt;&lt;br&gt;
I want a text-only model to understand screenshots.&lt;br&gt;&lt;br&gt;
I need a panel that shows context usage.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Then the detour begins.&lt;/p&gt;

&lt;p&gt;Leave Harness. Open a browser. Search GitHub. Read several READMEs. Compare repositories. Confirm the package source. Copy an install command. Return to Harness.&lt;/p&gt;

&lt;p&gt;Every step is defensible. The sequence is ridiculous.&lt;/p&gt;

&lt;p&gt;A tool that can only be discovered outside the workspace has not truly joined the workflow. That is why the &lt;a href="https://github.com/czj-git/dsh-plugin-hub" rel="noopener noreferrer"&gt;DSH Plugin Hub plugin&lt;/a&gt; has two entrances: one designed for people, and one designed for Agents.&lt;/p&gt;

&lt;h2&gt;
  
  
  The first entrance: a marketplace inside Settings
&lt;/h2&gt;

&lt;p&gt;Install the package, restart the Web profile, and open &lt;strong&gt;Settings → Plugin Hub&lt;/strong&gt;. The page contains two focused tabs: Plugin marketplace and Rankings.&lt;/p&gt;

&lt;p&gt;The marketplace is not an endless wall of repository names. Each card puts the information needed for a first decision in one place:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;plugin name, author, and localized description;&lt;/li&gt;
&lt;li&gt;category, primary language, and installation source;&lt;/li&gt;
&lt;li&gt;GitHub Stars, catalog views, and verification status;&lt;/li&gt;
&lt;li&gt;a copyable install command and a link to the source.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Search works across plugin names, authors, and feature descriptions. Category filters narrow the result without hiding the rest of the catalog. The page follows the current Harness language, so descriptions, detail links, and dates switch together between English and Chinese.&lt;/p&gt;

&lt;p&gt;One boundary is intentionally visible: &lt;strong&gt;“Copy command” never quietly becomes “Install.”&lt;/strong&gt; The marketplace gives you the public command. Execution still belongs to Harness permissions, approvals, and your own judgment.&lt;/p&gt;

&lt;h2&gt;
  
  
  The second entrance: skip the marketplace and ask the Agent
&lt;/h2&gt;

&lt;p&gt;Sometimes browsing is already too much interface.&lt;/p&gt;

&lt;p&gt;You can ask in plain language:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Use DSH Plugin Hub to find plugins related to memory.
Return at most five, explain what each one is for,
and include the install command and detail link. Do not install anything.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The plugin exposes two tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;dsh_plugin_search&lt;/code&gt; searches by need, feature, plugin name, author, or repository;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;dsh_plugin_rankings&lt;/code&gt; returns daily growth, top Stars, newly listed, or recently active results.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Agent does not receive a scraped blob of webpage text. It receives validated fields for runtime type, category, installation source, compatibility, public metrics, timestamps, and links. It can filter those results, compare them, and explain them in the language of the current task.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fynktpcow45vdxtbikh4y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fynktpcow45vdxtbikh4y.png" alt="An Agent using DSH Plugin Hub to return the top plugins by GitHub Stars" width="800" height="477"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The Agent can query the catalog, explain the results, and include source and installation links without executing an install.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That is the meaningful shift. Before, you had to know what a plugin was called. Now you can start with the problem you want to solve.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rankings without a mystery score
&lt;/h2&gt;

&lt;p&gt;I do not want Stars, growth, activity, and listing date blended into one impressive-looking number that nobody can explain.&lt;/p&gt;

&lt;p&gt;The plugin and website keep four signals separate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Daily growth&lt;/strong&gt; — the GitHub Star change between the latest two successful metric snapshots;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Top Stars&lt;/strong&gt; — long-term public interest, shown without pretending it measures quality;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Newly listed&lt;/strong&gt; — projects that have just entered the catalog get a visible path in;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recently active&lt;/strong&gt; — ordered by the latest GitHub push time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnzu4x3ceayeitjh6sjfh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnzu4x3ceayeitjh6sjfh.png" alt="Transparent plugin rankings inside DeepSeek Harness Settings" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Every ranking states its signal. When no historical baseline exists, the UI reports that the value is pending instead of disguising “unknown” as zero.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A mature, stable plugin and a new plugin gaining attention are interesting for different reasons. Flattening them into one score removes information; it does not create insight.&lt;/p&gt;

&lt;h2&gt;
  
  
  Under the plugin is a living public catalog
&lt;/h2&gt;

&lt;p&gt;The native experience is not backed by a private second dataset. Its source is &lt;a href="https://dshpluginhub.dev" rel="noopener noreferrer"&gt;dshpluginhub.dev&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the &lt;a href="https://dshpluginhub.dev/en/plugins" rel="noopener noreferrer"&gt;plugin marketplace&lt;/a&gt; is built for browsing, filtering, and comparison;&lt;/li&gt;
&lt;li&gt;detail pages collect installation sources, compatibility information, README content, public metrics, and repository links;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dshpluginhub.dev/en/rankings" rel="noopener noreferrer"&gt;rankings&lt;/a&gt; expose the same four explainable signals;&lt;/li&gt;
&lt;li&gt;the &lt;a href="https://dshpluginhub.dev/en/api" rel="noopener noreferrer"&gt;public search API&lt;/a&gt; lets clients, Agents, and third-party tools reuse the catalog.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The division of labor is deliberately simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The website aggregates and explains. The plugin brings the result back into the workflow.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The Settings client does not call the cross-origin public API directly. The plugin Host registers a read-only same-origin route and reuses the same API client and response validation as the Agent tools. Settings and chat therefore read the same public catalog instead of drifting into two implementations.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it deliberately refuses to do
&lt;/h2&gt;

&lt;p&gt;Plugin marketplaces are easy to oversell, so the exclusions matter:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;no additional DSH Plugin Hub API key is required;&lt;/li&gt;
&lt;li&gt;it does not read Harness identity, saved plugins, or private user data;&lt;/li&gt;
&lt;li&gt;it exposes no install, uninstall, or profile-writing endpoint;&lt;/li&gt;
&lt;li&gt;a GitHub topic is not treated as official certification;&lt;/li&gt;
&lt;li&gt;catalog verification is not a security endorsement;&lt;/li&gt;
&lt;li&gt;rankings never replace reviewing third-party source code, permissions, and configuration.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The plugin shortens the distance to discovery and understanding. It does not shorten the distance to responsible judgment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why make the catalog itself a plugin?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/deepseek-ai/deepseek-harness" rel="noopener noreferrer"&gt;DeepSeek Harness&lt;/a&gt; is built around a simple premise: everything is a plugin.&lt;/p&gt;

&lt;p&gt;The interesting consequence is not merely that people can add more capabilities. The ecosystem can begin to describe and navigate itself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A plugin can help you discover the next plugin.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It sounds recursive. In practice, it is what an extensible system eventually needs. Once capabilities can be added, the next problem is unavoidable: how are those capabilities found, understood, compared, and brought into real work?&lt;/p&gt;

&lt;p&gt;The website handles discovery. The API handles reuse. The native plugin removes the context switch. Drop any one of the three and the experience breaks at a different point.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;Install the package:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dsh plugin &lt;span class="nt"&gt;--profile&lt;/span&gt; web add @czj-git/dsh-plugin-hub
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Restart the Web profile and open &lt;strong&gt;Settings → Plugin Hub&lt;/strong&gt;, or start a conversation and ask the Agent to use &lt;code&gt;dsh_plugin_search&lt;/code&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;npm: &lt;a href="https://www.npmjs.com/package/@czj-git/dsh-plugin-hub" rel="noopener noreferrer"&gt;@czj-git/dsh-plugin-hub&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/czj-git/dsh-plugin-hub" rel="noopener noreferrer"&gt;czj-git/dsh-plugin-hub&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Website: &lt;a href="https://dshpluginhub.dev" rel="noopener noreferrer"&gt;dshpluginhub.dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Marketplace: &lt;a href="https://dshpluginhub.dev/en/plugins" rel="noopener noreferrer"&gt;dshpluginhub.dev/en/plugins&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Rankings: &lt;a href="https://dshpluginhub.dev/en/rankings" rel="noopener noreferrer"&gt;dshpluginhub.dev/en/rankings&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Public API: &lt;a href="https://dshpluginhub.dev/en/api" rel="noopener noreferrer"&gt;dshpluginhub.dev/en/api&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If there is one idea worth keeping, it is this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The goal of a tool is not to give you another destination to remember. It is to make the destination disappear into the workflow.&lt;/strong&gt;&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;DSH Plugin Hub is an independent community project for DeepSeek Harness. It is not affiliated with or endorsed by DeepSeek. The website and plugin organize public information and catalog checks; they do not endorse third-party code, permissions, or behavior. Review source code and configuration before installation.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>opensource</category>
      <category>ai</category>
      <category>devtools</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
