# FastGithub adds mirror-site buttons to GitHub pages in the browser

> FastGithub is a Tampermonkey userscript that injects buttons for GitHub mirror and proxy sites into GitHub pages, and can generate accelerated clone commands. It suits users on slow networks, and its usefulness depends entirely on third-party mirror sites that come and go.

**RC1844/FastGithub** — 快速跳转GitHub镜像网站、镜像克隆下载的猴油脚本

- Repository: https://github.com/RC1844/FastGithub
- Stars: 594 · Forks: 73
- Language: JavaScript
- License: MIT
- Published: 2026-10-22 · Updated: 2026-10-22 · Language: en
- Canonical page: https://hysenlabs.com/projects/rc1844-fastgithub

## A userscript that rewrites the page you are already on

FastGithub is a JavaScript userscript for Tampermonkey whose stated purpose is quick jumps to GitHub mirror websites and mirror clone downloads. The mechanism is browser-side DOM manipulation rather than a proxy or a service. The script runs inside a GitHub page and injects buttons into the interface, each button pointing at one of the listed mirror sites, and it can also generate an accelerated clone command. The repository itself is almost empty in engineering terms. The top level holds the LICENSE, the README, the FastGithub.js script, a .github directory, and a REANDME directory, with the spelling error carried over from the original. That thinness is characteristic of the userscript genre, where the artefact is a single file you install and the maintenance burden is keeping DOM selectors in step with a website that does not owe you stability. The changelog is a running record of exactly that work, with entries such as a fix for the commits page bug in v1.5.8, a fix for bugs caused by GitHub web changes in v1.5.7, and an adaptation to the new GitHub UI style in the v1.4.0 to v1.4.3 range. Anyone adopting this should read the changelog as a maintenance forecast rather than a history.

## Where the script comes from and how it is installed

The project is derived from another script, and the documentation is direct about the degree of modification, saying it was changed beyond recognition from its base. The stated approach to development is equally direct: the author says they do not know JavaScript, only a little, so they can only modify other people's code. That matters for how you read the code and for how you read the warnings. The installation is by URL, and the documentation gives the raw file address on GitHub for the script, with a second address on a raw fastgit mirror for anyone who cannot download or install from the first one, and Greasyfork as a third route where the script is also listed. The Greasyfork listing and the raw GitHub address point at the same FastGithub.js file, and the script is distributed as a single file with no build step, no package manager and no runtime dependencies. That is the whole install: fetch the file, import it into Tampermonkey, and let it act on GitHub pages. There is nothing to compile and nothing to host, which is why this class of tool stays popular in networks where a full CI or proxy setup would be impractical.

## The known-mirrors table and its four capability columns

The most useful part of the documentation is the table of known GitHub mirrors, which is explicitly labelled as including failed sites. Each row gives a domain and then four capability columns, for https support, clone acceleration, zip acceleration and releases acceleration, followed by the hosting provider and the server's location. The variety across rows is the point. doc.fastgit.org is marked as supporting all four and is hosted in Hong Kong by fastgit. gitclone.com supports https, clone and zip but not releases, hosted by Aliyun in Hangzhou. github.com.cnpmjs.org supports https and clone only, on dnspod in Hong Kong. Two entries are Cloudflare workers deployments in the United States, github.wuyanzheshui.workers.dev and github.bajins.com, and the second of those carries a question mark in its zip column rather than a definite answer. A row for github-speedup.laiczhang.com is struck through in full, and the changelog explains why, saying the laiczhang site appears to have failed and is now disabled, though you can still add it by editing the set manually. A question mark in a column is the script's way of saying nobody confirmed it, and that is a meaningful signal when you are deciding where to send your downloads.

## The security warning, in the project's own words

The project documentation opens the operational section with a warning that no amount of feature description should soften: do not log in to an account on a mirror site, and the author accepts no responsibility for any resulting loss. This is the single most important line in the repository and it is not incidental. A GitHub mirror is a third-party service that sits between you and github.com, serving you a copy of a page, and if that page is served by someone you do not control, then a session cookie typed into it belongs to them. The script's whole purpose is to make it easy to move your browsing and downloading to a different service, which is also exactly the mechanism by which a credential could be captured. The changelog shows the author arriving at this position late, with a v1.2.1 to v1.2.4 entry that adds a warning and calls it a late warning, hoping nobody suffers a loss, alongside removing failed sites and fixing injection on the release tag page. The distinction the project itself draws is the sensible one. Browsing public code and downloading a public archive through a mirror is a different risk from authenticating to a service that can then see your session.

## Building your own mirror on a Cloudflare Worker

The project documentation includes a section on using Cloudflare to stand up your own GitHub mirror, which it is careful to call a proxy rather than a mirror. It links to a base tutorial in another repository, and the change required is small enough to describe precisely. You take the index.js file from the base tutorial and change one constant. It looks like this.

```js
const ASSET_URL = "https://etherdream.github.io/jsproxy";
```

And you change it to this.

```js
const ASSET_URL = "https://github.com";
```

That is the whole change, and the effect is that the worker proxies requests to github.com rather than to the tutorial author's asset host. The script's own site list already includes two workers.dev deployments of exactly this kind, github.wuyanzheshui.workers.dev and github.rc1844.workers.dev, which the changelog describes as identical, and the v1.3.0 entry that added them points readers at this section for the self-hosting method. This is the part of the project that makes it more than a list of third-party URLs, because it turns the dependency on someone else's server into something you control, on infrastructure with a free tier and a deployment that is a single file. A worker of your own also sidesteps the account warning entirely, since the proxy is yours.

## The performance trade-off the changelog admits

There is a section of the changelog that is worth reading more carefully than the rest, because it describes a regression the author documented rather than hid. The v1.5.3 to v1.5.4 group says all buttons were changed to the mirror site's names with some descriptive hints, that efficiency and performance further declined, that a new site was added, that some decoration was added for mobile so the page looks better, that some Raw buttons that had stopped working were fixed, that the structure of the addRawList() function was changed, and that the notification text was improved. The v1.5.1 entry is more pointed still: it added the jsDelivr site and changed the script's own site domain with a note that the lease is one year and it is not known whether it will be renewed, and it says a function was added for jsDelivr which slowed performance down, and that jsDelivr's support is poor so make do with it. The v1.5.2 entry explains that a jQuery style event delegation method was borrowed from another script and that the code structure changed substantially as a result. What you take from this is that the script has been getting slower, that the author knows it, and that the cause is the accumulating per-site logic that keeps the button set and the raw-link list complete.

## Where this script stops being the right answer

There are clear boundaries. A userscript that rewrites links in the page is a convenience layer for a human clicking through GitHub, and it is not a CI or automation path, because a build script cannot run Tampermonkey and a clone command the script generates still depends on the mirror staying up. If you need reproducible, scripted access to repositories, the alternatives are a proper proxy you operate, a Git hosting service that is already fast on your network, or a caching mirror you run yourself. For the download-acceleration case specifically, the script's own table shows the honest truth: most mirrors do not support releases, so an accelerated zip does not help you fetch a release asset, and the changelog for v1.0 to v1.1.4 notes that the source code quick download on a release page has no acceleration effect anyway. There is also the plain security objection. A browser userscript that can rewrite every link you click on GitHub is a powerful position, and the whole project depends on a list of URLs that the author himself strikes through when they fail.

## Conclusion

Adopt FastGithub if you are a user on a slow link who keeps a Tampermonkey install and only need the occasional fast clone or release download, since the script injects buttons into the page you are already on and needs no server of your own. Do not adopt it if you need a reliable, supported download path, because the mirror list is a moving target of third-party services and the maintainer's own changelog records sites being disabled after they failed. Verify two things before you rely on it: that you understand the warning in the project's own documentation about not logging into account on a mirror site, and that the particular mirror you intend to use supports the operation you need, since the table shows separate columns for browsing, clone acceleration, zip acceleration and releases acceleration. The practical first step is to install the script and check the known-mirrors table in the README, where the entries marked as failed are crossed out rather than removed.

## FAQ

### What does FastGithub do?

It is a Tampermonkey userscript that injects buttons for GitHub mirror and proxy sites into GitHub pages, and it can generate accelerated clone commands. It is derived from another script that it modifies beyond recognition, according to the project documentation.

### How do I install FastGithub?

The README gives a raw file address for FastGithub.js on GitHub, a second address on a raw fastgit mirror for anyone who cannot install from the first, and a Greasyfork listing as a third route. There is no build step and no package to install.

### Is it safe to log in to a GitHub mirror site?

The project documentation explicitly warns not to log in to an account on a mirror site and disclaims responsibility for any resulting loss, because a mirror is a third-party server in the path between you and github.com.

### What is the ASSET_URL constant in the Cloudflare Worker setup?

It is the single constant you change when building your own proxy. You replace the tutorial's const ASSET_URL = "https://etherdream.github.io/jsproxy" with const ASSET_URL = "https://github.com", so the worker proxies requests to github.com instead.

### Which mirrors support release downloads?

The mirror table gives separate columns for clone, zip and releases acceleration, and only a few rows are marked as supporting releases, among them doc.fastgit.org and the two Cloudflare workers deployments. A row that is struck through in the table is a site the project has disabled as failed.

### How often is FastGithub updated?

The recent release list shows version 1.6.1 dated 2021-07-29, with earlier entries 1.4.5 from 2020-08-23 and 1.4.1 from 2020-06-29, while the project changelog documents work up to v1.6.3. The last push to the repository was on 2026-10-16, so the file is still being touched even though the tagged releases are older.

## Sources

- [Issues](https://github.com/RC1844/FastGithub/issues)
- [License: MIT](https://github.com/RC1844/FastGithub/blob/master/LICENSE)
- [RC1844/FastGithub on GitHub](https://github.com/RC1844/FastGithub)
- [README](https://github.com/RC1844/FastGithub/blob/master/README.md)
- [Releases](https://github.com/RC1844/FastGithub/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/rc1844-fastgithub
