In the DeepSeek Harness (DSH) plugin ecosystem, developers often need the latest GitHub Trending data, but GitHub does not provide an official API. Relying on third-party scrapers or manually parsing HTML is both cumbersome and unstable. This article introduces the wang-junjian/dsh-github-trending plugin, which directly scrapes the GitHub Trending page to provide a structured data interface for models, while also rendering a visual sidebar for the Web Profile.

Plugin Positioning

This is a DeepSeek Harness bundle plugin maintained by the user wang-junjian. It mainly solves two problems:
1. Model side: Provides a tool named github_trending, allowing the Agent to retrieve a structured list of Trending repositories by language and time window.
2. Front-end side: Renders a dockable right-side panel in the web profile, making it easy for developers to view data directly.

Core Features

The plugin provides the following capabilities:

  1. Data retrieval and structuring: The plugin directly scrapes the GitHub Trending page and returns a list containing rank, owner, repository name, absolute link, description, primary language, total stars, Fork count, and new stars today.
  2. Tool registration: Registers the model-callable tool github_trending in the DSH framework.
  3. Web visualization panel: Renders a dockable right-side panel in the web profile. The panel supports daily/weekly/monthly tab switching, resizing, and collapsing into the sidebar. The backend uses in-memory caching and exposes data through the /github-trending HTTP route.

Installation and Activation

Installing this plugin requires the DSH command-line tool. After installation, the bundle is automatically appended to the dsh.profile.bundles configuration.

If only the data retrieval capability is needed in the Headless Profile:

dsh plugin --profile headless add @wangjunjian/dsh-github-trending

If you want to see the visualization panel in the browser interface of the Web Profile, please use:

dsh plugin --profile web add @wangjunjian/dsh-github-trending

Typical Usage

Model Invocation

In a conversation, you can directly invoke the registered github_trending tool. For example:

Show me today's trending Python repositories.

Tool Parameters

When invoking, you can specify the following parameters:

Parameter Type Required Description
language string No Programming language filter, such as python, typescript, go.
since string No Time window; daily (default), weekly, or monthly.
maxResults integer No Maximum number of repositories to return (default 10, upper limit 25).

Configuration Adjustment

The plugin’s default configuration is located in cordis.patch.yml. If you need to adjust the timeout, maximum result count, or cache refresh interval, you can override them in the DSH Profile configuration file:

- id: github-trending
  config:
    enabled: true
    timeoutMs: 30000
    maxResults: 10
    refreshIntervalMs: 14400000
Setting Default Description
enabled true Whether to register the tool, cache, and Web route.
timeoutMs 30000 Cooperative timeout for each HTTP request (milliseconds).
maxResults 10 Maximum number of repositories returned by the tool (upper limit 25).
refreshIntervalMs 14400000 Background refresh interval for the UI cache (milliseconds; 4 hours).

Notes

  1. No Official API: GitHub Trending has no official API. The plugin relies on parsing the current server-rendered HTML layout. If GitHub updates the page structure, the parser may need to be updated.
  2. Rate Limiting: Unauthenticated requests are subject to GitHub IP rate limits.
  3. Direct Scraping: The plugin scrapes GitHub directly rather than through ctx.web, so it does not inherit the Fetch strategy of Harness Web capabilities.
  4. Panel Implementation: The right-side panel is implemented via shell.overlay. DSH currently does not provide a native right-side slot, so the panel is displayed as an overlay.
  5. License: The plugin uses the MIT license.

Summary

The wang-junjian/dsh-github-trending plugin fills a gap in the DeepSeek Harness ecosystem for obtaining GitHub Trending data. By converting the unstructured Trending page into a structured data interface, it lowers the barrier for developers to obtain open-source trend information. At the same time, the Web-side visualization panel provides developers with an intuitive way to view data.

For more details, see the plugin directory page or source repository:
* Plugin directory page
* GitHub repository