If something's missing, write to us — open an issue on GitHub.
Anonymous GitHub is a free, open-source tool that anonymizes GitHub repositories and pull requests for double-anonymous (double-blind) peer review. It replaces identifying information — such as the repository owner, organization name, and custom terms — so that reviewers cannot determine the identity of the authors through the code repository.
Anonymous GitHub either downloads the complete repository and anonymizes the content, or proxies requests to GitHub on the fly. In both cases, the original and anonymized versions of files are cached on the server. The system automatically detects and replaces the repository owner, organization name, and repository name. You can also specify additional custom terms to anonymize using one-per-line regex patterns.
In double-anonymous peer review, the boundary of anonymization is the paper plus its online appendix — not the entire internet. Searching for any part of the paper or the online appendix can be considered a deliberate attempt to break anonymity. Anonymous GitHub anonymizes the repository owner, organization, repository name, file and directory names, and file contents across all text-based file types.
Anonymous GitHub is completely free to use. However, the server costs hundreds of dollars per year to maintain. If you find the service useful, a small donation would be greatly appreciated. You can support the project by sponsoring on GitHub, donating through Ko-fi, or by clicking the "Support me" button on the site.
Anonymous GitHub can display and render a wide variety of file types:
Only text-based files are anonymized. Anonymous GitHub analyzes the content of each file to determine whether it is textual or binary.
Yes. In addition to full repositories, Anonymous GitHub supports anonymizing individual pull requests. Simply paste the URL of a GitHub pull request when creating a new anonymized repository, and the system will automatically detect that it is a pull request and anonymize it accordingly.
When creating an anonymized repository, you can associate it with a Conference ID. This allows conferences to define default anonymization settings (such as expiration dates) that are automatically applied to repositories submitted under that conference. If your conference provides a Conference ID, enter it during the anonymization setup.
You can configure one of three expiration strategies when creating your anonymized repository:
Yes. Anonymized repositories can be downloaded as a ZIP file. This is useful if reviewers want to build or test the code locally. The downloaded archive contains the fully anonymized version of the repository.
Yes. The anonymized repository tracks the source on GitHub: when you push new commits to the original repository, the anonymized view picks up those changes (cached files are refreshed against GitHub). This means you can keep iterating on the code while reviewers have the link, and you do not need to recreate the anonymized repository every time you update the source.
A few practical implications worth keeping in mind:
Yes. Anonymous GitHub provides a CLI tool that lets you anonymize repositories locally, generating an anonymized ZIP file on your machine. Install it via npm:
npm install -g @tdurieux/anonymous_github
anonymous_github
Data stored on Anonymous GitHub is never shared or used for any purpose beyond providing the anonymization service. When a repository is removed or expires, only its configuration is retained — this makes it easy to restore the repository if needed and ensures that no future repository reuses the same ID.
Anonymous GitHub only reads your repositories — it never pushes commits, opens issues, modifies settings, or deletes anything. From your perspective as a user, the service is read-only.
However, GitHub's OAuth scopes do not offer a read-only
option for private repositories: the only scope that grants
access to private repos is repo, which is
documented as full read/write access. To support users who
want to anonymize a private repository, Anonymous GitHub
must request that scope, and GitHub then displays the
broader permission text at sign-in. The application itself
only ever performs read operations against the GitHub API.
If you only anonymize public repositories, the source code is open and can be audited on the GitHub repository, or you can self-host your own instance.
No. Only the total number of views is tracked as an incremental counter. It is not possible for the repository owner or for Anonymous GitHub to identify individual viewers. Reviewer anonymity is fully preserved.
Yes. Anonymous GitHub is fully open source (GPL-3.0) and supports Docker-based deployment. You will need to configure a GitHub OAuth app and provide a GitHub token. Detailed setup instructions are available on the GitHub repository.
The basic steps are:
.env file with your GitHub token, OAuth client ID, and client secretdocker-compose up -dStill have questions?
Open an issue on the GitHub repository and we'll be happy to help.