The Citation File Format (CFF) provides a straightforward, human- and machine-readable way for software developers to supply citation metadata for their code. By placing a simple CITATION.cff file in a repository, developers give others the precise information needed to cite their software correctly — solving a persistent problem in research software attribution where the name, version, and authorship of software are often ambiguous.
Background
CFF was created by Stephan Druskat, with development supported by the Institute for Software Technology at the German Aerospace Center (DLR), the Netherlands eScience Center, and the Software Sustainability Institute. The format was first released in 2017 and has evolved to version 1.2.0, which uses YAML syntax for its human-friendly readability.
The format emerged from the recognition that while papers have title pages with clear citation information, software and datasets lack an equivalent convention. Researchers wanting to cite software often cannot reliably determine the correct name, version identifier, or author list — information that the software's creator could easily provide in a standardized file.
Purpose & Scope
CFF enables software developers and researchers to:
- Provide unambiguous citation metadata for their software
- Specify the correct name, version, authors (with ORCID identifiers), and DOIs
- Record references to related works that the software builds upon
- Enable automated metadata harvesting by platforms and tools
A CITATION.cff file is a plain text YAML file placed in the root of a code repository. Its simplicity is intentional — creating one requires no special tools, though generators and validators are available.
Key Fields
A CITATION.cff file supports structured metadata including:
| Field | Description |
|---|---|
| cff-version | Version of the CFF format used |
| message | How users should cite the software |
| authors | List of authors with names and ORCID identifiers |
| title | The software's name |
| version | Version identifier |
| date-released | Release date |
| identifiers | DOIs and other persistent identifiers |
| references | Works that the software cites or builds upon |
Platform Support
CFF has achieved broad platform integration:
- GitHub — Automatically renders citation information on repository pages and provides a BibTeX snippet for users to copy. CITATION.cff files in the default branch are linked from the repository landing page.
- Zenodo — When publishing a GitHub release to Zenodo via the GitHub-Zenodo integration, Zenodo uses CITATION.cff metadata to populate the publication entry.
- Zotero — The Zotero browser plugin imports references from CITATION.cff files directly into the user's reference library.
Serializations & Technical Formats
CITATION.cff files use YAML syntax. The format is validated against a JSON Schema. Tools exist to convert CFF to other citation formats including BibTeX, RIS, CodeMeta, and others, enabling integration with existing scholarly communication workflows.
Governance & Maintenance
CFF is maintained as an open-source project on GitHub by its community. Contributions are welcomed through the project's contribution guide. The specification, schema, and tooling are all openly developed.
Tools
Several tools support the CFF ecosystem:
- cffinit — A web-based form for creating CITATION.cff files from scratch
- cff-converter-python — Converts CFF to BibTeX, RIS, CodeMeta, and other formats
- Additional tools exist for specific environments and use cases
Related Standards
- CodeMeta — Complementary software metadata vocabulary; CFF can be converted to CodeMeta
- DataCite — CFF metadata maps to DataCite's schema for DOI registration