What is a
CITATION.cff files are plain text files with human- and machine-readable citation information for software.
Code developers can include them in their repositories to let others know how to correctly cite their software.
CITATION.cff file looks like this:
The format of
CITATION.cff files is the Citation File Format (CFF).
Why you should add a
CITATION.cff file to your repository!
It is very easy to correctly cite a paper: all the necessary information (metadata) can be found on the title page or the article website. Software has no title page, the relevant information is often less obvious.
People who want to cite your software may ask questions like:
What is the name of the software (given that it’s probably not
What label should I use to uniquely identify the version of the software I have used?
What is the appropriate set of people that should be identified as authors?
The person who wants to cite your software will probably not be able to answer these questions accurately and consistently themselves, but you can!
Give them all the right information in a
CITATION.cff file, and they can cite your software correctly.
Also, if you publish your software in an archive or registry, they (or their systems) can re-use the citation metadata from your
CITATION.cff file as well.
CITATION.cff file now!
You can start by copy-and-pasting the example above into the root fo your code repository, and adapt the information to your software.
You can also use a simple website to fill in the citation information for your software.
To do so, go to the TODO
You can also learn more about the Citation File Format (CFF), which is the format used for
It can do more than you can see in the example.
To learn about the format, go to the Citation File Format documentation.
Tools for working with
Different tools exist to help you work with
- The initializer can help you create a
- The validator checks whether a
CITATION.cfffile is formatted correctly: [TODO link].
- The converter can create a
CITATION.cfffile from existing metadata (e.g., from a BibTeX file), and convert it to other formats (e.g., to BibTeX, RIS, CodeMeta, and others): https://github.com/citation-file-format/cff-converter-python.
- The schema ultimately defines what can go into a
CITATION.cfffile, and how: [TODO link].
There are further tools for specific use cases. Here are some examples:
- The Maven CFF Plugin for Java projects built with Maven automatically creates a
CITATION.cffdraft from available metadata, including metadata for dependencies.
- doi2cff automatically creates a
CITATION.cfffile from a Zenodo DOI: https://github.com/citation-file-format/doi2cff.
- ruby-cff manipulates
CITATION.cfffiles in Ruby: https://github.com/citation-file-format/ruby-cff.
- cff-reader-java is a Java library reading
CITATION.cfffiles into a POJO model: https://github.com/citation-file-format/cff-reader-java.
Community events are a great way to learn about the Citation File Format, and contribute to making the citation of (research) software easier!
Past and upcoming events are listed on the Events page.
Have an idea? Found a problem?
We try to make contributing to CFF as easy as possible! Even tweeting a problem may be helpful, it’s that easy.
Better still, if you can think of something that would make
CITATION.cff files better, or you have found something that didn’t work as you would have expected:
Please check out how you can share your idea or bug report in the contribution guide on GitHub.