Help

Answers to the questions that come up most.

If something's missing, write to us — open an issue on GitHub.

General

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.

Features

Anonymous GitHub can display and render a wide variety of file types:

  • Text and source code — displayed with syntax highlighting
  • Markdown — rendered as formatted HTML
  • Images (PNG, JPG, SVG, etc.) — displayed inline
  • PDFs — rendered directly in the browser
  • Jupyter Notebooks — rendered with code cells and outputs

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:

  • Never expire — the anonymized repository remains accessible indefinitely.
  • Redirect to GitHub — after expiration, visitors are redirected to the original GitHub repository.
  • Remove content — after expiration, the anonymized content is deleted from the server.

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. 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

Limitations

  • Anonymous GitHub only anonymizes text-based files. Binary files (compiled executables, archives, etc.) are served as-is without anonymization.
  • Files larger than 8 MB are not supported.
  • Static site generators (such as Jekyll) used with GitHub Pages are not fully supported, although Markdown files are converted to HTML.
  • The anonymization of terms within source code may change the behavior of the program (e.g., if a replaced term appears in a string literal or identifier).

Privacy & Security

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.

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.

Self-Hosting

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:

  1. Clone the repository and install dependencies
  2. Create a .env file with your GitHub token, OAuth client ID, and client secret
  3. Run docker-compose up -d

Still have questions?

Open an issue on the GitHub repository and we'll be happy to help.