DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

goodboys155 /

goodboys155/dsh-github-radar

Verified

Right-sidebar GitHub trending panel for DeepSeek Harness

★ 1 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@5e72e1a8

GitHub Radar for DeepSeek Harness

A right-sidebar panel that shows what is actually taking off on GitHub: four lists ranked by star velocity, plus keyword search. One click opens the repository.

右侧栏面板,打开即显示 GitHub 上真正在起量的项目:四个档位按星标增速排序,外加关键词搜索。点击一行直达仓库。

screenshot

No GitHub account needed / 不需要 GitHub 账号

This plugin never asks you to log in. It reads GitHub's public Search API anonymously — no token, no OAuth, no account, no credentials of any kind. Nothing about your GitHub identity is read, stored, or sent anywhere.

It calls api.github.com and nothing else. There is no telemetry.

本插件不会要求你登录 GitHub。它以匿名身份读取 GitHub 公开的 Search API —— 不需要 token、不需要 OAuth、不读取任何账号或凭据。它只访问 api.github.com,没有遥测。

If you have no proxy and your network can reach GitHub directly, it just works. See Network behaviour for what happens when it cannot.

What it does

Four lists, each the top 30:

List Query Ranked by
今日 Today created within 2 days, 3+ stars stars per day
本周 This week created within 7 days, 20+ stars stars per day
本月 This month created within 30 days, 100+ stars stars per day
常青 Giants 20k+ stars, pushed within 30 days total stars

Why stars per day, not total stars. A repository that gained 2,000 stars in three days is more worth your attention than one that gained 3,000 in six months, but the second always wins a total-stars sort. The three rising lists therefore fetch a pool of candidates and re-rank locally by stars ÷ days since creation. Each row shows that rate — +460/day — next to the language. For the Giants list total stars is the right measure, so it stays.

Search. Type a keyword and the panel queries GitHub directly. Matching is GitHub's own: the term is matched against repository name, description, README and topics, so both rust and 中文 work. Results are sorted by stars. Space-separated terms are ANDed by GitHub, which is why awesome list returns 23k results rather than 2M.

Two details that matter in practice:

  • Debounced 500 ms, so typing does not fire a request per keystroke.
  • IME-aware. While a Chinese/Japanese/Korean input method is composing (拼音 not yet committed), no request is sent. It fires on compositionend, so typing 「中文」 costs one request, not one per pinyin keystroke.

Install

dsh plugin --profile web add github:goodboys155/dsh-github-radar

Then restart DSH. The tab appears in the right sidebar as 「雷达」/「Radar」.

Restart is required: DSH scans client plugins at startup only. Editing files on disk does not hot-reload the browser half.

Network behaviour

Outbound requests go direct first, using Node's global fetch (undici), which keeps a connection pool and reuses TLS sessions — an order of magnitude faster than a hand-rolled https.request per call.

If direct fails, it probes these local proxy ports and only tries the ones actually listening:

127.0.0.1:10808   (v2rayN default)
127.0.0.1:10809
127.0.0.1:7890    (Clash default)
127.0.0.1:7897
127.0.0.1:1080

That probe costs a few milliseconds per port. If direct fails and no proxy is listening, you get an error in about 6 seconds — not after trying five ports at 15 seconds each. A machine without a proxy is a normal, supported configuration; it just reports the failure quickly instead of hanging.

The first proxy that answers is remembered for the rest of the process.

Data source and caching

GitHub Search REST API, repositories endpoint, unauthenticated.

Unauthenticated search allows 10 requests per minute. The plugin is sized well under that:

  • 30 minutes in memory and on disk for the four lists ($DSH_HOME/github-radar/trending-<period>.json)
  • 5 minutes in memory for a given search keyword

The refresh button forces a fetch. If GitHub is unreachable, the last successful list keeps rendering with an 离线缓存 / cached badge instead of an empty panel.

Architecture

index.js          host   — GET /api/github-radar/trending?period=day|week|month|all
                           GET /api/github-radar/search?q=<keywords>
client.js         client — sidebar tab: four-period switcher, search box, list
cordis.patch.yml  bundle patch

Both routes are loopback-only and GET-only. Fetching from the browser would hit CORS and expose your proxy configuration to the page, which is why the outbound request lives on the host.

Permissions

Declared capabilities: network only.

  • No filesystem writes outside $DSH_HOME/github-radar/ (the cache)
  • No shell, no subprocess, no environment variable reads
  • No credentials, no tokens, no GitHub account

Requirements

  • DeepSeek Harness 0.2.0 line or newer
  • Windows, macOS or Linux (host half uses Node built-ins only)

Known limits

  • 30 entries per list, 30 search results. No "load more".
  • Descriptions are shown as GitHub returns them — mostly English. No translation.
  • The Today list depends on repositories being created and already gaining stars within 2 days; on quiet days it can be thin.
  • Search results are sorted by stars, so a precise match with few stars can sit below a popular near-match. That is GitHub's ranking, not a filter.
  • Star counts are a point-in-time snapshot, cached up to 30 minutes.
  • Hitting refresh repeatedly can exhaust the 10/minute unauthenticated quota; GitHub then answers 403 until the window resets. The cache usually prevents this.

License

MIT — see LICENSE.

—/ 5

No ratings yet

Verified DSH bundle

Commit 5e72e1a89b3b

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout