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 并信任证书。

Package
fastgithub-accelerate
Compatibility
Unverified
Version
0.2.0
License
MIT
Last updated
Sep 24, 2026

Install

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:zijinggong/fastgithub-accelerate

fastgithub-accelerate

MIT License

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.

status badge

Why

  • FastGithub on Windows accelerates via a DNS hijack (github.com → 127.0.0.1) plus local interceptors on 127.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-http pins public IPs and refuses WEB_BLOCKED_URL for 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

  1. 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.
  2. It loads @deepseek-ai/dsh-http-proxy from its canonical realpath (the same module instance the harness uses) and calls installProxyFromEnvironment with its own endpoint, so:
    • web_fetch / web_search tunnel through it — GitHub fetches that were previously blocked now work;
    • git, curl and other children inherit http(s)_proxy env;
    • undici's global dispatcher routes Node-side fetch.
  3. It probes FastGithub every 60 s (DNS hijack + interceptor ports) and serves GET /fastgithub/status for the badge.
  4. 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

FieldMeaning
acceleratingproxy installed and DNS hijack detected
policyproxied / none
fastgithub.dnsHijackgithub.com resolves to loopback
fastgithub.interceptor443FastGithub :443 interceptor is up
moduleok / unavailable (dsh-http-proxy import)
port / endpointthe 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, root CN=FastGithub in the trusted store.

License

MIT