Skip to content

Installation

Install papers

pip install papers-cli

Note there is another project registered on PyPI as papers, hence papers-cli for command-line-interface. The installed command is still papers.

Name clash with GNOME Papers

The GNOME Papers document viewer (the default viewer on recent GNOME desktops) also installs a papers command; with both installed, whichever comes first in $PATH wins. Two mitigations are built in:

  • The package also installs the command under the unambiguous name papers-cli — call that, or set a shell alias (e.g. alias papers=papers-cli), on systems where the names collide.
  • Because this command may mask GNOME Papers, a call whose arguments are all existing files (paths or file:// URIs, as passed by file managers through the viewer's desktop entry) is handed over unchanged to the next papers executable in $PATH that is not this tool, i.e. GNOME Papers itself. Double-clicking a PDF and papers somefile.pdf therefore keep opening the viewer. If no other papers is found, the files are opened with the system's default viewer (xdg-open) instead; should that lead back to this command, it stops with an error rather than looping. Subcommand names always take precedence (papers ./list opens a file named list; papers list lists your library), and any flag disables the hand-over — call the viewer's binary directly for viewer-specific flags.

Dependencies

  • python 3.11+
  • PyMuPDF (preferred) or poppler-utils (only pdftotext and pdfinfo; deprecated): convert PDF to text for parsing
  • bibtexparser: parse bibtex files
  • scholarly: interface for google scholar
  • rapidfuzz: calculate score to sort crossref requests
  • unidecode: replace unicode with ascii equivalent

The Python dependencies are installed automatically with pip.