Language Specification

CSL is defined by two documents: the human-readable CSL specification, and the computer-readable CSL schema, written in the RELAX NG compact syntax, which can be used for validation of CSL styles and locale files.

Note. All versions of the CSL schema have recently been relicensed under the more permissible MIT license, and the GitHub repository will soon be updated to reflect this change.

Code repositories

We maintain several Git repositories on GitHub at The main repositories are:

  • documentation – for CSL documentation, including the source of the CSL specification
  • journals – for storing publisher’s journal metadata (which we use to generate most of our “dependent” styles)
  • locales – for CSL locale files
  • schema – for the CSL schema
  • styles – for CSL styles
  • styles-distribution – this mirror of the “styles” repo only updates after the Travis CI tests clear, and offers up-to-date style timestamps.
  • utilities – for scripts used to maintain CSL styles and locale files
  • test-suite – test suite maintained by Frank Bennett for testing of citeproc-js. The test suite can be used by authors of other CSL processors, but contains tests that go beyond the scope of the CSL specification.

CSL Processors

Open source CSL 1.0.1-compatible CSL processors include:

NameProgramming LanguageAuthorKnown ImplementationsComments
citeproc‑jsJavaScriptFrank BennettZotero, Mendeley, Qiqqa, Docear, KCite
citeproc‑hsHaskellAndrea Rossatopandoc
citeproc‑phpPHPRon JeromeDrupal's Bibliography Module, BibSonomy
citeproc‑rubyRubySylvester Keil
citeproc‑javaJavaMichel KrämerJava wrapper for citeproc-js
citeproc‑pyPythonBrecht Machielsnot to be confused with the unmaintained and identically named citeproc-py (Python) by Bruce D'Arcus
citeproc‑dotnet.NETFouke Boss


A mapping between Zotero fields and CSL variables can be found at (repo). A similar mapping for Mendeley can be found at

Development Process

Our governance document describes how we run the CSL project. In short, we strive to develop CSL in an open, consensus-seeking way. Our goal is to improve scholarly communication by automating the correct formatting of citations, and by stimulating cooperation and compatibility between the different citation software products. Our primary communication channel for announcements, discussions, and decision making is the public xbiblio-devel mailing list (Nabble mirror). We also use the issue trackers of our GitHub repositories to keep track of issues, and while discussions take place there as well, final design decisions are always made on the mailing list.

While CSL always has had close ties to Zotero, the two are independent projects. Still, many CSL contributors are Zotero users, and the lively Zotero forums continue to play an important role in receiving user feedback.

Project History

Release Timeline

September 3, 20121.0.1Schema, SpecificationAnnouncement and Release notes.
May 30, 20101.0Schema, SpecificationAnnouncement. Update of the specification. No changes were made to the CSL 1.0 schema.
March 22, 20101.0Schema, SpecificationAnnouncement and Upgrade notes. First release of the CSL specification. CSL 1.0 was first supported by Zotero 2.1, Mendeley 0.9.8, and Papers2 (for Mac).
February 1, 20100.8.1SchemaAnnouncement
March 21, 20090.8Schema

Hosting Changes

Prior to the move to GitHub, from late 2009 to March 2011, the project code was maintained in Mercurial repositories on (see the mostly retired Bitbucket repositories of Bruce D’Arcus), and before that, from February 2006 to late 2009, in an SVN repository on SourceForge (see the xbiblio SourceForge project page). Before migrating to GitHub during late 2010/early 2011, CSL styles were separately maintained in the now retired Zotero SVN. The xbiblio-devel mailing list, hosted by SourceForge, has been in continued use since 2004.