citeproc-py
Citations and bibliography formatter
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.9 or later; lxml is installed automatically as a dependency.
- 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 · maintenance · safety
BSD-2-Clause-Views (permissive) — 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.
last release 2026-08-10 (4 days) · last repo commit 2026-08-10 · 166 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 131,444 downloads/mo, #11,587 on PyPI
Alternatives
Verify before relying
pip install citeproc-py
from citeproc_py import CiteprocPy
# Load CSL style and reference data, then generate formatted citations- 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
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 on it.
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
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.
Requires Python 3.9 or later; lxml is installed automatically as a dependency.
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
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 packagelxml |
| 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 |
| Classifiers | 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 |
Evidence: citeproc_py-0.10.7-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “CSL citation processor”
- citeproc-pyciteproc-py processes Citation Style Language (CSL) stylesheets to…
- pybtexPybtex reads bibliography data from BibTeX, BibTeXML, or YAML files…
- eyeciteExtracts legal citations from text, recognizing case names, statutory…
Give your agent the search over MCP, or paste the wish link into any chat.
More Python Modules packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.
Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.
Provides reusable metadata objects for use with PEP-593 `typing.Annotated` to express common constraints like bounds, collection sizes, and predicates on types.
Install it if you use or build libraries that need to express type constraints in a standardized, inspectable way—or if you want to annotate your own types with…
Provides runtime tools to inspect and introspect Python type annotations, enabling programmatic examination of type hints at execution time.
See also pybtex · pybtex-docutils · sphinxcontrib-bibtex · eyecite · reporters-db · cohere-melody · docstrfmt · pystac-ext-scientific · exhale · Sphinx