With Papis, you can search your library for books and papers, add documents and notes, import and export to and from other formats, and much much more. Papis uses a human-readable and easily hackable .yaml
file to store each entry's bibliographical data. It strives to be easy to use while providing a wide range of features. And for those who still want more, Papis makes it easy to write scripts that extend its features even further.
- Add documents and automatically fetch their metadata.
- Search by author, title, tags, and so on.
- Synchronize your library with whatever software you're already using.
- Share your documents with colleagues without having to force some proprietary service onto them.
- Import your data from other bibliography managers.
- Export to BibTeX and other formats.
- Integrate with your editor with plugins for (Neo)vim and Emacs.
- TUIs make it easy to get a quick overview of your library.
- Use the web app when the CLI doesn't quite cut it (for example on your tablet).
- Hacking Papis is easy! Use the API to easily create your own custom python scripts.
Install Papis with pip (or one of the alternatives):
pip install papis
Let's download a couple of documents:
wget http://www.gnu.org/s/libc/manual/pdf/libc.pdf
wget http://www.ams.org/notices/201304/rnoti-p434.pdf
We can now add these to the (default) library. This will automatically query for the metadata associated with the doi
.
papis add --from doi 10.1090/noti963 rnoti-p434.pdf
You can also use --set
to add information:
papis add libc.pdf --set author "Sandra Loosemore" \
--set title "GNU C reference manual" \
--set year 2018 \
--set tags programming \
--confirm
Now open an attached file or edit an entry:
papis open
papis edit
Or export them to bibtex:
papis export --all --format bibtex > mylib.bib
Papis also includes a web app that you can start with:
papis serve
You can then open the indicated address (http://localhost:8888
) in your browser.
All papis
commands come with help messages:
papis -h # General help
papis add -h # Help with a specific command
Information about installation and setup can be found in the docs, for example in the these sections:
The docs cover Papis' features and discuss possible work flows. If you still have questions, head to our GitHub discussions — we're more than happy to help. If you've found a bug, please open an issue and help make Papis even better!
- Blog post about getting a paper's references with
papis explore
. - Blog post about using Papis with Zotero and Syncthing.
- GNU/Linux Switzerland wrote about Papis (in German).
- The folks at OSTechNix wrote a review of Papis.
- A review of Papis by Ubunlog (in Spanish).
Contributions are very welcome! Take a look at CONTRIBUTING.md for general rules and HACKING.md for additional code-related information. We encourage you to also check out, contribute to, or even help maintain the other projects in the Papis ecosystem mentioned below 😉.
Papis has grown over the years and there are now a number of projects that extend Papis' features or integrate it with other software.
Project | Maintained by |
---|---|
papis (core) | Alejandro Gallo, Julian Hauser, Alex Fikl |
papis-rofi | Etn40ff |
papis-dmenu | you? |
papis-vim | you? |
papis.nvim | Julian Hauser |
papis-emacs | Alejandro Gallo |
papis-zotero | Alex Fikl |
papis-libgen | you? |
papis-firefox | wavefrontshaping |
papis-qa (AI for Papis) | Isak Samsten |
Papis isn't the only fish in the pond. You might also be interested in:
- bibman (open source)
- cobib (open source)
- jabref (open source)
- Mendeley (proprietary)
- pubs (open source)
- Xapers (open source)
- Zotero (open source)
We thank Irteza Rehman for generously creating our beautiful logo.