I want a software to manage and organize collections of papers in my way. Mendeley is closed source so it is out of the picture. Zotero is pretty nice and open source with extensible capabilities through extensions. However, as a Vim and Ranger user, I crave for a purely keyboard driven interface. And I could not find any thing like that. So I wrote one.

Quick Demo: https://www.youtube.com/watch?v=Tt_wGJYMHY8

I have used BibMan for over a year without encountering any major issues which gave me confidence in its stability. And with the philosophy of being transparency, valuable data including PDFs, notes, BibTex files are stored exactly as they are. This approach allows you to have a backup method of your choice, in addition to easily replacing your data collection. For instance, I have one directory for demo purpose and another for my real data, and switching the two can be done by modifying the configuration in ~/.config/bibman/config. It also separates the UI business from the data, so that the data remains safe given my ‘un-professional UI code’. In fact, most of the errors I’ve encountered so far have been related to rendering issues and can often be temporarily resolved by simply re-runing the software.

In addition to essential features, such as adding/delete new paper, group papers according tags, searching, opening corresponding PDFs, copy BibTex entries, things that I like to have but does not exist in other software are:

  • Convenient Note Taking: By pressing :note, you can open the paper’s corresponding text file in vim, write down your thoughts, and exit vim to resume the interface. I have thought about the possibility of writing a latex note. But current, I’m satisfied with plain text.

  • Easy Attribute Modification: of a paper item. By pressing ‘V’, it would ask vim to open the bib_collection.bib file, and put the cursor under the current chosen paper. So that you can modify whatever information and save it. The interface will be updated accordingly.

  • URL-based Paper: You can add a paper/article with url link instead of a pdf. When pdf field is empty, BibMan will seek for url field. And if url field is not empty, it will open that url using your default browser.

  • Comprehensive Search: You can search the whole thing. Currently, the search function allows you to search if a keyword appear in any data data fields. I’m planing to extend this functionality to including the pdf file as well.

Yeah, that’s it. Give it a try.

pip install bibman

Source code is at https://github.com/ductri/BibMan