Software is now a research output in its own right, and the bodies that set citation rules have caught up: IEEE reproduces the FORCE11 Software Citation Principles in full in its Reference Guide, and APA has a dedicated computer-software reference form. The practical problem is different from the one you have with an article. There is no title page. The version changes. The authors are often a project rather than a person. The answer in almost every case is to look for the citation the authors already wrote.
Where the Citation Usually Already Exists
CITATION.cffin the repository root. A YAML file in the Citation File Format holding authors, title, version, release date, licence and DOI. Code hosting platforms read it and offer a formatted citation.- An R package's own citation. Running
citation("ggplot2")in R prints the maintainers' preferred citation and a BibTeX entry. CRAN publishes the same citation on the package's citation page, built from the sameCITATIONfile, though the two renderings punctuate the tail slightly differently. - A DOI on an archived release. Zenodo mints a DOI per release and a concept DOI that always resolves to the newest one.
- A "How to cite" section in the README or documentation.
Two real examples run through this guide, both verified on 22 September 2026:
- Citation File Format 1.2.0, by Stephan Druskat, Jurriaan H. Spaaks, Neil Chue Hong, Robert Haines, James Baker, Spencer Bliven, Egon Willighagen, David Pérez-Suárez and Olexandr Konovalov — nine authors, in that order — released 9 August 2021, DOI
10.5281/zenodo.5171937. Its ownCITATION.cfffile declares exactly that title, version, release date and DOI. (The Zenodo/DataCite record gives the ninth author's first name as "Alexander"; the project's own file says "Olexandr", and the authors' own file is the one to follow.) - pandas v2.2.2, credited to "The pandas development team", issued 10 April 2024, DOI
10.5281/zenodo.10957263. The project's concept DOI,10.5281/zenodo.3509134, resolves to whatever release is current.
What to Collect
- Authors or the project name, as the
CITATION.cffor archive record gives them - Title of the software, and the version you ran
- Release date of that version
- The archive or repository, and the DOI if there is one
- The licence, if you are redistributing rather than just citing
Quick Reference by Major Style
APA (7th Edition)
APA treats software like a report with a bracketed description. The format below is the one the University of Queensland Library publishes in its APA 7th guide, which also states when a reference entry is needed at all.
Author, A. A., or Group. (Year). Title of software (Version x.x) [Computer software]. Publisher. URL
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
The pandas development team. (2024). pandas (Version 2.2.2) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.10957263
In-text: (Druskat et al., 2021) and (The pandas development team, 2024)
All nine of the Citation File Format's authors appear in the reference, because APA lists up to twenty. Truncating a software author list to the first few names is the commonest way a software reference goes wrong: the CITATION.cff is there precisely so that nobody has to guess who contributed.
For a mobile app the same guide uses [Mobile app] in place of [Computer software] and names the store (Apple App Store or Google Play) as the publisher.
On whether to include a reference at all, the UQ guide is explicit: software that is common in your field or to your audience does not need an in-text citation or a reference entry — name it and the version in the text, as in "Covidence (Version 2)". A reference is required when access or distribution is limited, and when you have quoted or paraphrased from the software or its documentation.
MLA (9th Edition)
MLA has no software template; you build the entry from the template of core elements, and titles of software and apps are italicised. The MLA Style Center's ruling on computer-aided design software is the useful general principle: if you used the program only as a tool to produce a figure, it is the medium rather than the work, so it needs no works-cited entry — name it in your prose or figure caption instead.
When the software itself is the object of study, or when you are citing an archived release as a work, the template gives:
Author. Title of Software. Version, Publisher or Archive, Year, DOI or URL.
Druskat, Stephan, et al. Citation File Format. Version 1.2.0, Zenodo, 2021, doi.org/10.5281/zenodo.5171937.
In-text: (Druskat et al.)
Chicago (18th Edition)
The Chicago Manual of Style is subscription-only, and its free Citation Quick Guide has no software entry — it covers books, articles, news, reviews, interviews, theses, websites, social media, video and podcasts, and stops there. The nearest published Chicago 18th form is Murdoch University Library's, which files apps and software under Internet Content and treats them as web pages: Author, A. A. Year. "Title of Webpage: Subtitle." Title or Description of Website. URL. Its own example is StudentVIP. 2017. "Lost on Campus." studentvip.com.au/maps.
That form has nowhere to put a version number or a DOI, which is exactly what a software reference needs, so use it only if your department insists on Chicago and has nothing better. Otherwise consult CMOS 18 through your library. What the elements must carry is the same everywhere: author or project, version, year, archive and DOI.
Harvard (Cite Them Right)
This is a genuine gap, and it is worth stating plainly. Two Harvard guides were read in full for this page on 22 September 2026 — the University of Sheffield's, which states that it follows Cite Them Right, and the University of York's — and neither publishes an example for a code repository or a package release. Cite Them Right Online itself is a subscription product, so what the current edition says could not be checked here. Sheffield does publish a form for a mobile app:
Developer/Producer (Year of release/update) Title of app (Version) [Mobile app]. Available at: app store name (Downloaded: date).
If your department requires Harvard for software, ask your librarian for the current Cite Them Right entry rather than copying a format from a citation generator. A format that no manual publishes is not a Harvard format.
IEEE
IEEE devotes a section of its Reference Guide to software, reproduces the FORCE11 Software Citation Principles, and asks for the version and a persistent identifier.
[1] J. K. Author. Title of Software. (Date). Repository or Archive. (version or year). Publisher Name. Accessed: Date (when applicable). [Type of Medium]. Global Persistent Identifier. Available: site/path/file
[1] S. Druskat et al. Citation File Format. (2021). Zenodo. (version 1.2.0). doi: 10.5281/zenodo.5171937.
In-text: [1]
IEEE's own worked examples in that section are shorter than the basic format, because they omit elements the projects do not publish; the guide's general instruction is to supply as much of the listed metadata as exists.
An R package, cited the way the maintainers ask
CRAN's ggplot2 citation page — the same text citation("ggplot2") builds from the package's own CITATION file — carried this on 22 September 2026, quoted here exactly as CRAN renders it:
Wickham H (2016). ggplot2: Elegant Graphics for Data Analysis. Springer-Verlag New York. ISBN 978-3-319-24277-4. https://ggplot2.tidyverse.org.
The same page prints the matching BibTeX entry, with publisher = {Springer-Verlag New York}, year = {2016} and isbn = {978-3-319-24277-4}. R's console rendering of the same entry punctuates the tail slightly differently, which is a reminder to copy from one source and not to stitch two together.
Note what that citation points at: a book, not the package. Many R packages do this, because the maintainers would rather you cited the methods paper or book than the code. Convert it into your required style as a book reference — in APA, Wickham, H. (2016). ggplot2: Elegant graphics for data analysis. Springer-Verlag New York — and add a separate reference for the package release only if you need to pin the version you ran. When a package prints two citations, cite both; that is what the maintainers are asking for.
Missing Elements
No version number. Give the release date and, if you can, the commit identifier. A commit hash is a precise locator even when there is no release tag.
No DOI. Use the repository URL and an access date, and say in your methods which commit or tag you used.
No named authors. Use the project name as a group author, as pandas does.
No release date. Use the date of the commit or the archive deposit, and say which.
Common Mistakes
- Citing the concept DOI when you ran a specific version, so the link later resolves to a different release
- Referencing the repository's default branch, which is a moving target
- Citing the package when its
citation()output asks you to cite a paper, or citing only the paper when the maintainers ask for both - Writing a reference for ubiquitous software that only needed naming in the methods
- Copying a project name in the wrong case:
pandas,ggplot2andscikit-learnare lower case by the projects' own convention, and APA's sentence-case rule does not override a proper name's own styling - Attributing a project to its most visible contributor rather than to the authors listed in
CITATION.cff - Omitting the version, which makes the reference unreproducible even when the DOI resolves
Sources for These Formats
- IEEE Reference Guide, section O, "Software", including the reproduced FORCE11 Software Citation Principles
- University of Queensland Library, "APA 7th referencing style: Software and mobile apps"
- MLA Style Center, "Do I need to cite computer-aided design (CAD) software that I used to create a drawing or model?" (published 14 June 2023), style.mla.org
- Murdoch University Library, "Chicago 18th (author-date): Internet Content", App / Software entry; Chicago-Style Citation Quick Guide, checked for a software entry and found not to have one
- University of Sheffield Library, "Harvard referencing" (based on Cite Them Right, 10th rev. and expanded edn), App section; University of York Library, "Harvard" — both read in full and checked for a software entry, and neither has one
- Citation File Format project,
CITATION.cffin the repository root, and the Zenodo/DataCite record for 10.5281/zenodo.5171937 - CRAN, ggplot2 citation page; Zenodo/DataCite records for pandas
Full style rules: IEEE, APA, MLA, Chicago, Harvard.


