CITATION.cff Template (Citation File Format)
CITATION.cff for research software or datasets: CFF 1.2.0 YAML with authors, ORCID, DOI, preferred citation, key reference, validation
How to use: Use it when people should be able to cite your software or dataset. Agree the author list and identifier first, then fill the four required keys. The main pitfall is forgetting to update version and date-released at each release.
Preview
CITATION.cff: [Software name]
A ready-to-copy
CITATION.cfffile that tells people how to cite your research software or dataset, written in Citation File Format (CFF) 1.2.0, the current release of the format (checked 30 October 2026). Replace every[bracketed]value and every line marked Example. Worked examples use tidecalc, a fictional tide-modelling package from the fictional Westmere Institute for Coastal Research.
1. Before you write
| Decision | Your answer |
|---|---|
| Who counts as an author | [Example: Everyone with substantial code, design or documentation contributions; minor contributors are thanked in the README] |
| Identifier to cite | [Example: An archive DOI minted per release; a concept DOI for "all versions"] |
| Preferred citation | [Software itself / A paper about the software] |
| Licence (SPDX identifier) | [Example: MIT] |
2. The file
Copy the block below, then replace every bracketed value, including the brackets. Delete the preferred-citation block if there is no paper, and the identifiers block until the first archived release has a DOI.
cff-version: 1.2.0
message: "If you use this software, please cite it using the metadata below."
type: software
title: "tidecalc: harmonic tide prediction for coastal stations"
version: "[2.1.0]"
date-released: "[YYYY-MM-DD]"
license: MIT
repository-code: "https://github.com/[owner]/tidecalc"
abstract: "tidecalc predicts tides from harmonic constituents and compares predictions with gauge records."
keywords:
- oceanography
- tides
- time series
authors:
- family-names: "[Family name]"
given-names: "[Given names]"
orcid: "https://orcid.org/[0000-0000-0000-0000]"
affiliation: "Westmere Institute for Coastal Research"
- family-names: "[Family name]"
given-names: "[Given names]"
affiliation: "Westmere Institute for Coastal Research"
- name: "The tidecalc contributors"
identifiers:
- type: doi
value: "[10.xxxx/archive-record-for-this-release]"
description: "Archived release of this version"
preferred-citation:
type: article
title: "[Title of the software paper]"
authors:
- family-names: "[Family name]"
given-names: "[Given names]"
journal: "[Journal name]"
year: 2026 # replace with the publication year
doi: "[10.xxxx/paper-doi]"
3. Key reference
| Key | Required | What to put in it |
|---|---|---|
cff-version | Yes | 1.2.0 |
message | Yes | A short instruction to the reader on how to use the metadata |
title | Yes | The name of the software or dataset |
authors | Yes | People (family-names, given-names, optional orcid, affiliation) or entities (name) |
type | No | software (default) or dataset |
version, date-released | No | The release this file describes; date as YYYY-MM-DD |
identifiers | No | Each with type (doi, url, swh or other) and value |
license | No | An SPDX licence identifier, or a list read as "any of these" |
preferred-citation | No | A reference object; needs at least type, title and authors |
4. Check and publish
- Validate the file with a CFF tool such as
cffconvert(cff-converter-python), which can also export BibTeX, RIS and CodeMeta, or build it with the cffinit web form. - If you archive releases through the Zenodo and GitHub integration, Zenodo reads
CITATION.cffto fill the record; check the result after the first release. - Link the file from the README Citation section (
dev/readme-full) and from a replication package (academic/replication-package-readme) when the software supports a paper.
Standard and licence note
Based on the Citation File Format 1.2.0 specification and schema guide (citation-file-format.github.io and github.com/citation-file-format/citation-file-format, released 9 August 2021, specification licensed CC BY 4.0), checked 30 October 2026. Key names are given as the format defines them; the example and wording are original. tidecalc and the Westmere Institute for Coastal Research are fictional; replace every identifier with your own and never invent a DOI or ORCID. Template licence: MIT.
Related templates
Architecture Decision Record (ADR) Template
Lightweight Nygard-style ADR: status, context, decision, consequences, alternatives, related decisions, lifecycle and log
Software & EngineeringAGENTS.md Template for AI Coding Agents
Repository instructions for AI coding agents: setup, build and test commands, conventions, architecture map, PR and security rules
Software & EngineeringAI Coding Assistant Policy Template
Policy for AI coding assistants and agents: autonomy levels, tool register, secrets, sandboxing, review of generated code, provenance, OWASP ASI and SSDF mapping