zijinggong/fastgithub-accelerate ↗★ 0
fastgithub-accelerate
Automatically accelerate DSH's GitHub traffic via FastGithub — loopback forward proxy, injected DSH proxy policy, and a composer status badge. 适合国内网络环境下需要加速 DSH 的 GitHub 访问、拉取或搜索的用户。需本地运行 FastGithub 并信任证书。
Install
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:zijinggong/fastgithub-accelerateREADME
Read the full README ↗fastgithub-accelerate
Make DSH's GitHub traffic ride FastGithub automatically — no manual proxy config, no browser extension, no rebuild.
Once installed, web_fetch / web_search, git / curl, and Node-side fetch
all accelerate GitHub transparently, and a small badge in the composer shows the
live status.

Why
- FastGithub on Windows accelerates via a DNS hijack (
github.com→127.0.0.1) plus local interceptors on127.0.0.1:80/443/22/9418; its HTTP proxy port (HttpProxyPort: 38457) is documented linux/osx-only. - DSH by contrast rejects loopback-resolved hosts:
dsh-web-fetch-httppins public IPs and refusesWEB_BLOCKED_URLfor FastGithub's hijacked addresses — unless the URL is routed through an installed proxy policy, where the pin is skipped and the proxy does the resolving.
This bundle bridges the two.
How it works
- Host (
index.js) starts a loopback HTTP forward proxy (CONNECT tunnels + absolute-form forwarding). Plain DNS resolves GitHub through FastGithub's interceptors; every other host passes through untouched. - It loads
@deepseek-ai/dsh-http-proxyfrom its canonical realpath (the same module instance the harness uses) and callsinstallProxyFromEnvironmentwith its own endpoint, so:web_fetch/web_searchtunnel through it — GitHub fetches that were previously blocked now work;git,curland other children inherithttp(s)_proxyenv;- undici's global dispatcher routes Node-side
fetch.
- It probes FastGithub every 60 s (DNS hijack + interceptor ports) and serves
GET /fastgithub/statusfor the badge. - Client (
client.js) renders a composer badge (🚀 FastGithub 加速中) from that status route. No browser request is ever rewritten — a browser speaks origin-form, which no forward proxy can serve.
A proxy exported at launch time wins over the plugin's endpoint (the plugin never overrides a user's own proxy); the badge then reports the inherited policy.
Install
In the target DSH:
plugin_manager → action: install_bundle → target:
/fastgithub-accelerate
Or from a GitHub repo / npm once published:
dsh plugin --profile web add /
See INSTALL.md for prerequisites (FastGithub running, DNS hijack active, MITM root cert trusted) and verification steps.
Status
| Field | Meaning |
|---|---|
accelerating | proxy installed and DNS hijack detected |
policy | proxied / none |
fastgithub.dnsHijack | github.com resolves to loopback |
fastgithub.interceptor443 | FastGithub :443 interceptor is up |
module | ok / unavailable (dsh-http-proxy import) |
port / endpoint | the plugin's loopback proxy |
Config
No Config export — defaults: port 39467 (auto-advances when busy),
probe interval 60000 ms.
Requirements
- FastGithub service running (
fastgithub.exe start/ FastGithub UI). - The FastGithub README setup:
http.sslverify false, rootCN=FastGithubin the trusted store.