Skip to content

GitHub Citation Generator

Paste a GitHub repository URL and get a citation for the software in APA 7, MLA 9 and Chicago 18, plus BibTeX and biblatex entries. The tool reads the repository's CITATION.cff file when it has one — including a Zenodo DOI and any work the authors ask you to cite instead — and GitHub's repository details when it does not. Every field stays editable. Free, no sign-up.

Software details

The tool reads the repository's public details from GitHub's API, and its CITATION.cff file if it has one. Only the repository address is sent, to GitHub.

People as First Last or Last, First. A group such as The pandas development team is kept whole; wrap any other group name in braces: {Mozilla}.

Exactly as the developers write it, capitals and all.

The date of the version you used. Leave it blank if there is none.

GitHub for a repository; Zenodo or another archive when the release has a DOI there.

Your citations

Look up a repository, or enter the software's name, to see your citations.

How to Use the GitHub Citation Generator

  1. 1. Paste the repository's address and press Look up. Any form works: https://github.com/owner/repository, a link to a file inside it, or just owner/repository.
  2. 2. Check what was filled in. From a CITATION.cff you get the authors, title, version, release date and DOI the developers chose. Without one, GitHub only knows the account name and the latest release — add the real authors if the project lists them.
  3. 3. Keep the DOI. When the release is archived on Zenodo or another repository, its DOI is permanent and every style prefers it to the GitHub address.
  4. 4. Copy your citations. If the CITATION.cff names a paper to cite, its citations appear after the software's — many projects ask for both.

What a CITATION.cff File Gives You

CITATION.cff is a small YAML file in a repository's root that says how the software should be cited, in the Citation File Format (version 1.2.0). GitHub reads it to show a "Cite this repository" button with APA and BibTeX, and this tool reads the same keys:

CITATION.cff keyWhat it holdsWhere it goes
authorsPeople (family-names, given-names) or a group (name)The author element
titleThe software's nameItalic title, capitals kept as written
version, date-releasedThe release you are citingVersion and date
doi, identifiersA DOI, often from ZenodoThe link — preferred over the URL
repository-codeThe repository's addressThe URL when there is no DOI
preferred-citationA paper or other work to cite insteadA second set of citations

Citing Software in APA, MLA and Chicago

APA 7 (§10.10) cites software with its version in parentheses and the description [Computer software] after the title, then the publisher and a DOI or URL — APA has no GitHub example, so GitHub stands as the publisher unless the release is archived elsewhere. MLA 9 builds the entry from its core elements, and the MLA Style Center's post on citing source code treats the repository's owner as the author, keeps the software's capitalization exactly, gives the version, and makes GitHub a second container before the URL. Chicago 18 (§14.169) lists software under its developer in the bibliography, with the version and the publisher. In BibTeX, classic @misc has no version field, so the version goes in a note; biblatex has a real @software type.

GitHub Citation Examples

The Citation File Format specification itself, whose CITATION.cff lists nine authors, version 1.2.0, a release date of August 9, 2021, and a Zenodo DOI:

APA 7th edition

Reference list:

Druskat, S., Spaaks, J. H., Chue Hong, N., Haines, R., Baker, J., Bliven, S., Willighagen, E., Pérez-Suárez, D., & Konovalov, O. (2021). Citation File Format (Version 1.2.0) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.5171937

In-text:

(Druskat et al., 2021)

MLA 9th edition and Chicago 18th edition

MLA Works Cited:

Druskat, Stephan, et al. Citation File Format. Version 1.2.0, Zenodo, 9 Aug. 2021, https://doi.org/10.5281/zenodo.5171937.

Chicago footnote:

Stephan Druskat et al., Citation File Format, version 1.2.0 (Zenodo, 2021), https://doi.org/10.5281/zenodo.5171937.

Chicago bibliography:

Druskat, Stephan, Jurriaan H. Spaaks, Neil Chue Hong, et al. Citation File Format. Version 1.2.0. Zenodo, 2021. https://doi.org/10.5281/zenodo.5171937.

biblatex

@software:

@software{druskat2021citation,
  author    = {Druskat, Stephan and Spaaks, Jurriaan H. and Chue Hong, Neil and Haines, Robert and Baker, James and Bliven, Spencer and Willighagen, Egon and Pérez-Suárez, David and Konovalov, Olexandr},
  title     = {{Citation File Format}},
  version   = {1.2.0},
  date      = {2021-08-09},
  publisher = {Zenodo},
  doi       = {10.5281/zenodo.5171937},
  url       = {https://github.com/citation-file-format/citation-file-format}
}

Matplotlib's CITATION.cff asks users to cite John D. Hunter's 2007 paper as well. The tool formats that preferred citation too:

A preferred citation from CITATION.cff

APA 7:

Hunter, J. D. (2007). Matplotlib: A 2D graphics environment. Computing in Science & Engineering, 9(3), 90–95. https://doi.org/10.1109/MCSE.2007.55

BibTeX:

@article{hunter2007matplotlib,
  author  = {Hunter, John D.},
  title   = {{Matplotlib: A 2D graphics environment}},
  journal = {Computing in Science \& Engineering},
  volume  = {9},
  number  = {3},
  pages   = {90--95},
  year    = {2007},
  doi     = {10.1109/MCSE.2007.55}
}

When a Repository Has No CITATION.cff

Without a CITATION.cff, the tool falls back on GitHub's public repository details: the repository name as the title, the owner's account as the author, and the tag and date of the latest release, if there is one. That is a starting point, not a finished citation — look for the authors in the README or the project's website, and cite the version you actually used. Without signing in, GitHub allows 60 API requests an hour from one connection, and a lookup uses one or two; if you reach the limit, the tool says when it resets, and you can fill in the form by hand. If you maintain the repository, adding a CITATION.cff makes every citation of it consistent — the Software & Code Citation Generator covers programs that are not on GitHub.

Common Mistakes

  • Citing the account name as the author. "numpy" is an account; the authors are the people or team the project names.
  • Leaving out the version. Code changes between releases. Give the version, release tag or commit you used.
  • Using the GitHub URL when there is a DOI. An archived release's DOI does not break when a repository moves.
  • Ignoring the preferred citation. If the developers ask you to cite their paper, cite it — usually alongside the software.
  • "Correcting" a software name's capitals. pandas, NumPy and scikit-learn are written the way their developers write them.

Frequently Asked Questions

How do I cite a GitHub repository in APA 7?
Cite it as software: the authors, the year of the release, the name in italics, the version in parentheses, [Computer software], the publisher and the link. With no archive, the publisher is GitHub and the link is the repository URL; with a Zenodo DOI, the publisher is Zenodo and the link is the DOI. In text: (Druskat et al., 2021).
What is a CITATION.cff file?
A plain-text YAML file in the root of a repository that tells people how to cite the software, in the Citation File Format. It lists the authors, title, version, release date and DOI, and can name a paper to cite instead. GitHub turns it into the "Cite this repository" button.
Should I cite the software or the paper about it?
Follow the developers' wishes in the CITATION.cff. Many ask for the paper, and the Citation File Format guide notes that software deserves credit like any other research output, so citing both is common — the paper for the method, the software for the version you ran.
How do I get a BibTeX entry for a GitHub repository?
Look it up here and copy the entry: @misc for classic BibTeX, with the version in a note, or @software for biblatex. Both keep the software's name in double braces so its capitals survive.
Does the lookup need a GitHub account?
No. It uses GitHub's public API and reads the CITATION.cff file from raw.githubusercontent.com, straight from your browser, sending only the repository address. Without signing in, GitHub allows 60 API requests an hour per connection, and a lookup uses one or two.
What if the repository is private or on GitLab?
The lookup only reads public GitHub repositories. For anything else, type the details into the form — the citations are formatted the same way — or use the Software & Code Citation Generator.

Related Tools

More in Citation Generators

See all Citation Generators