skillfed

citeproc-py

Citations and bibliography formatter

citeproc-py v0.10.7 131.4K downloads/30d#11,587 on PyPI166
Permissive license BSD-2-Clause-Views Active released

What it is and what it does

citeproc-py is a Python implementation of the Citation Style Language (CSL) 1.0.2 specification. It takes structured reference metadata and a CSL style definition, then outputs formatted citations and bibliographies in multiple formats. The package parses CSL style and locale files using lxml, applies citation rules, and renders results as plain text, reStructuredText, or HTML—with support for input from JSON (citeproc-js format) or BibTeX files.

The project is actively maintained and passes approximately 60% of the CSL test suite, though some advanced features remain unimplemented (disambiguation/year-suffix, et-al rules, collapsing, and others). It is still in alpha (major version 0), meaning the API could change, but the maintainers note that major API shifts are not expected soon. The package targets researchers, academics, and documentation systems that need programmatic citation formatting.

Use it for:

  • Generate formatted bibliographies in academic papers or theses from a BibTeX or JSON reference database
  • Embed citation rendering in documentation generators or content management systems that need multiple output formats
  • Convert reference metadata to styled citations for web pages or reStructuredText-based documentation
  • Build citation tools or reference managers that support CSL styles without reimplementing the processor
  • Automate citation formatting in publishing workflows that require compliance with specific journal or style guidelines

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

citeproc-py processes Citation Style Language (CSL) stylesheets to generate formatted citations and bibliographies in plain text, reStructuredText, and HTML from structured reference data.

Yes, if your citation needs align with CSL's implemented features. The package is actively maintained, has low install friction, and is permissively licensed. However, check the list of unimplemented CSL features (disambiguation, et-al rules, collapsing) against your requirements—if you need those features, you may hit limitations. The alpha status is not a blocker given the stable release history since 2013, but expect the API to remain subject to change.

Install

citeproc-py on PyPI

pip

pip install citeproc-py

uv

uv add citeproc-py

poetry

poetry add citeproc-py

Installing citeproc-py

Before you install

Low install friction with a single runtime dependency (lxml). Active maintenance with recent releases; the project is in alpha (major version 0) but has been stable since its early releases in 2013, with regular bug fixes and CSL specification updates.

License in practice

BSD-2-Clause-Views is a permissive license, allowing commercial and private use with minimal restrictions—suitable for most projects that can include a license notice.

Quickstart

pip install citeproc-py

from citeproc_py import CiteprocPy
# Load CSL style and reference data, then generate formatted citations

Requires Python 3.9 or later; lxml is installed automatically as a dependency.

Verify before relying

  • Whether the ~60% CSL test-suite pass rate is sufficient for your citation requirements, given known unimplemented features (disambiguation, et-al rules, collapsing, etc.)
  • Exact API stability guarantees beyond the semantic versioning note that major version is still 0

Package facts

License BSD-2-Clause-Views (permissive)
Python support supports the current Python release (>=3.9)
Install friction low — pure-Python wheel
Runtime dependencies 1 — lxml
Maintenance actively maintained — 4 days since the last release
Last repo commit
First released
Downloads 131,444/month — #11,587 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: citeproc_py-0.10.7-py3-none-any.whl

Keywords: csl, citation, html, rst, bibtex, xml

Development Status :: 3 - AlphaEnvironment :: ConsoleEnvironment :: Other EnvironmentEnvironment :: Web EnvironmentIntended Audience :: DevelopersIntended Audience :: EducationIntended Audience :: End Users/DesktopIntended Audience :: Legal IndustryIntended Audience :: Other AudienceIntended Audience :: Science/ResearchOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.9Topic :: DocumentationTopic :: PrintingTopic :: Software Development :: DocumentationTopic :: Software Development :: Libraries :: Python Modules

Tags

CSL citation processorbibliography formattercitation style languagegenerate formatted citationsbibtex to styled outputreference formattingcsl processor python
citation-formattingcsl-processoracademic-publishing

More Python Modules packages