Skip to main content
v2026.1714 entries · CC-BY 4.0
CASRAI

Direct comparison

Codemeta Vs Citation Cff: Key Differences & Comparison | CASRAI

CodeMeta and CITATION.cff are the two principal machine-readable formats for describing research software metadata. CodeMeta uses JSON-LD and the Schema.org vocabulary to provide rich software metadata for registries and repositories; CITATION.cff is a minimal YAML file placed in a repository root that enables GitHub, Zenodo, and other tools to automatically surface correct citation information.

A side-by-side comparison of two research-administration standards

Side-by-side comparison

DimensionCodeMetaCITATION.cff
File formatJSON-LD (JavaScript Object Notation for Linked Data); filename codemeta.jsonYAML (YAML Ain't Markup Language); filename CITATION.cff — the filename is mandatory
Where placedRoot directory of the software repository; can also be included in data packages and software registry submissionsRoot directory of the repository only; the filename CITATION.cff must be exact and at the root for GitHub and Zenodo to detect it automatically
Primary purposeRich software metadata crosswalk for registries, repositories, and linked-data ecosystems; covers dependencies, runtime environment, funding, and provenance as well as citation informationHuman-readable citation metadata: who created the software, what version to cite, the preferred citation format, and links to papers describing the software
Schema basisSchema.org SoftwareApplication and SoftwareSourceCode types extended with codemeta.jsonld context; supports full linked-data reasoningCustom schema defined in the CFF specification (cff-version: 1.2.0 current); does not use schema.org but maps to it via converters
GitHub recognitionNot natively recognised by GitHub; no automatic UI affordanceNatively recognised since 2021: GitHub renders a "Cite this repository" panel with BibTeX and APA formats generated from CITATION.cff
Zenodo integrationZenodo ingests codemeta.json to populate software record metadata when a GitHub repository is published to Zenodo via the GitHub–Zenodo integrationZenodo reads CITATION.cff and uses it to populate the citation metadata for the software record; preferred authors, title, and preferred-citation DOI are all imported
Adopted bySoftware Heritage (indexes codemeta.json), JOSS (Journal of Open Source Software), Zenodo, research data repositories, and software registries including bio.toolsGitHub (native), Zenodo, Zotero (can import CITATION.cff), and increasingly expected by journals including JOSS and scientific Python ecosystem projects
Key fieldsauthor, name, version, identifier (DOI/SWHID), softwareVersion, programmingLanguage, runtimePlatform, operatingSystem, license, funding, codeRepository, relatedLinkcff-version, message, authors (with orcid), title, version, doi, date-released, url, repository-code, license, preferred-citation

Common questions

FAQ

Do I need both CodeMeta and CITATION.cff in my repository?+

Not necessarily, but including both is increasingly common and recommended for maximum interoperability. CITATION.cff is sufficient if your primary goal is enabling GitHub and Zenodo to display correct citation information. CodeMeta is the better choice if you want your software indexed by registries such as Software Heritage or bio.tools, or if you need to document programming language, dependencies, and runtime requirements.

How does CITATION.cff relate to the FORCE11 Software Citation Principles?+

The FORCE11 Software Citation Principles (2016) established that software should be cited on the same principles as any other research output: with a unique, persistent, and machine-actionable identifier, sufficient metadata to identify and locate the software, and a mechanism that gives credit to all contributors. CITATION.cff was designed to implement these principles in a way that is human-writable and immediately actionable by tools.

What persistent identifier should a CITATION.cff or CodeMeta file reference?+

For software deposited on Zenodo, the doi field should reference the Zenodo concept DOI (which always resolves to the latest version) or the version-specific DOI. For software archived in Software Heritage, the identifier field in CodeMeta can reference the SWHID (SoftWare Heritage persistent IDentifier). Best practice, as recommended by the FAIR4RS working group, is to provide both a DOI (for citation) and a SWHID (for long-term archival reference).

LAC

Partner Deal

LAC Health Supplies Mobile App

Referenced across the research world

University of Cambridge logoColumbia University logoUniversity of Edinburgh logoHarvard University logoUniversity of Oxford logoPrinceton University logoStanford School of Medicine logoUniversity College London logoORCID logoCrossref logoUniversity of Cambridge logoColumbia University logoUniversity of Edinburgh logoHarvard University logoUniversity of Oxford logoPrinceton University logoStanford School of Medicine logoUniversity College London logoORCID logoCrossref logo
  • University of Cambridge logo
  • Columbia University logo
  • University of Edinburgh logo
  • Harvard University logo
  • University of Oxford logo
  • Princeton University logo
  • Stanford School of Medicine logo
  • University College London logo
  • ORCID logo
  • Crossref logo

View CASRAI adoption →