Skip to main content

pypi ci

Zotero compatibility for Papis

Installation

Pip

To install the latest release from PyPI

python -m pip install papis-zotero

To install the latest development version

python -m pip install papis-zotero@https://github.com/papis/papis-zotero.git#egg=papis-zotero

Nix

For Nix and NixOS users, a Nix flake is included in this repository and can be used to install the package. There are many ways of doing so, for instance like so:

{
  pkgs,
  inputs,
  ...
}: {
  home.packages = with pkgs; [
    (
      python3.withPackages
      (
        ps: [
          inputs.papis.packages.${system}.default
          inputs.papis-zotero.packages.${system}.default
          # you can add other packages you might want to make available for papis
          # ps.jinja2
        ]
      )
    )
    # Here you can list other packages, such as
    # typst
    # hayagriva
    # zotero_7
  ];
}

Arch

Arch users can use the AUR to install the package.

Importing from Zotero SQLite (preferred)

Zotero also maintains a database of all its files and collections under a zotero.sqlite file. You can check where this file is located by going to Edit > Preferences > Advanced > Data Directory Location (may vary depending on the Zotero version). The Zotero data directory should contain the zotero.sqlite file and a storage directory with the files for each document.

The SQLite database maintained by Zotero can be imported directly (without using a BibTeX export) by papis-zotero. This can be done with:

papis zotero import --from-sql-folder <ZOTERO_DATA_DIRECTORY>

Here, ZOTERO_DATA_DIRECTORY is the folder containing the zotero.sqlite file. By default, papis-zotero will add the imported documents to your current library directory, but it can be customized using the --outfolder argument.

Importing from BibTeX (alternative)

Zotero can export different variants of BibTeX or BibLaTeX files (from Files > Export Library). You could import the resulting .bib file directly with Papis (with the papis bibtex command), but papis-zotero provides a specialised command. This command has better support for special Zotero fields. To import a given exported library run:

papis zotero import --from-bibtex library.bib

BibTeX files exported by Zotero can include attached files as shown in the below example:

@article{Einstein1905Photon,
    author = { A. Einstein },
    doi = { 10.1002/andp.19053220607 },
    journal = { Ann. Phys. },
    pages = { 132--148 },
    title = { Über einen die Erzeugung und Verwandlung des Lichtes
        betreffenden heuristischen Gesichtspunkt },
    file = { Full Text:path/to/some/relative/file.pdf },
    volume = { 322 },
    year = { 1905 },
}

Given this, papis-zotero will interpret the path of the file entry as a relative path to the library.bib passed to the import command using --from-bibtex. The files are skipped if they do not exist at the expected location.

By default, papis-zotero will add the documents to your current library. When initially importing a big library, it is recommended to always import it into a scratch folder, so that you can verify the import. This can be easily done using:

papis zotero import --from-bibtex library.bib --outfolder some/folder/lib

When you are ready you can move this folder to a final Papis library.

Using Zotero connectors

This plugin can also connect to a Zotero connector browser plugin. First, such a plugin should be installed from the Zotero website. Then, make sure that Zotero itself is not running (and connected to the connector) and run:

papis zotero serve

Papis now starts listening to your browser for incoming data. Whenever you click the Zotero button to add a paper, papis-zotero will add this paper to the Papis library instead.

Development

This project uses pyproject.toml and hatchling for its build system. To develop the code, it is recommended to start up a virtual environment and install the project in editable mode using, e.g.:

python -m pip install -e '.[develop]'

After installation, always check that the command is correctly recognized, e.g. by looking at the help output

papis zotero --help

If you use the Nix flake, you can also use the included devShell with nix develop.

Release files for papis-zotero 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for papis-zotero 0.4.0
File Size Uploaded
papis_zotero-0.4.0.tar.gz 678.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for papis-zotero 0.4.0
File Interpreter ABI Platform
papis_zotero-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 702.7 kB

Release files / papis_zotero-0.4.0.tar.gz

Download URL papis_zotero-0.4.0.tar.gz
Size 678.0 kB
Tags Source
SHA-256 checksum
How to use checksums
a21f35b49ff25ae1c8dcb88fe6866b0c96e02242541bdd8edad08f7f32bda646
BLAKE2b-256 checksum
How to use checksums
bd7c876cdb12bf0556b1be702251af1c105c86ade38435a5e2b1e846b560cc3c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release files / papis_zotero-0.4.0-py3-none-any.whl

Download URL papis_zotero-0.4.0-py3-none-any.whl
Size 24.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2896e8339e32f5c956e29f1275c5da6f7525cb88b17d46b9159ed33d52977af6
BLAKE2b-256 checksum
How to use checksums
e793503bf2707451c00915070459ce0919b814da86c5b214d649c2024561dac1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2

2 release files

0.1.2

1 release file

0.1.1

1 release file

0.1.0

1 release file

0.0.3

1 release file

0.0.2

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page