This is a cross platform app that enables you to get the bibtex entry from a DOI number, arXiv ID, article url (supports Nature journals, APS journals, ACS journals, AMS journals, Science, PNAS, ScienceDirect, IOP Science, SciPost and more) or article title. It uses doi2bib3 as its backend. Written in Python, QuickBib is licensed under GPLv3.
You can use our official PPA
sudo add-apt-repository ppa:apandada1/quickbib
sudo apt update
sudo apt install quickbib
On Debian,you can download and install the prebuilt .deb package from the PPA (or, use Flatpak/Snap).
You can get it from the AUR
yay -S quickbib
QuickBib is available on Flathub and Snap Store.
Install the required dependencies, pyqt6 and doi2bib3. Afterwards, you can use meson to install quickbib.
git clone https://github.com/archisman-panigrahi/QuickBib.git
cd QuickBib
meson setup builddir --prefix="$HOME/.local"
meson install -C builddir
To uninstall,
meson uninstall -C builddir
QuickBib is available on Microsoft Store.
It can be also installed via winget. Open Windows Terminal/Powershell and run
winget install -e --id archisman-panigrahi.QuickBib
Alternatively, prebuilt installers are available to download from GitHub Releases. Note that Windows smartscreen might complain because it doesn't know about this app and you would have to manually bypass it.
A web app is available at https://archisman-panigrahi.github.io/QuickBib/webapp.
It is recommended that on macOS you use the web app instead. Continue reading to learn why.
No prebuilt macOS installers: Distributing an app that users can graphically install and run seems to require paying Apple perpetually (US$99/year) to sign and notarize the app even if the app is free — that’s plain extortion — so we ship the source instead. You can run QuickBib from source or build a macOS app using the packaging scripts on GitHub. If you have a better idea about how to package the macOS app in a more convenient way (without perpetually paying Apple), please let us know in GitHub Issues.
You can install the app's dependencies with pip and run from source (see below).
How to run from source? (works in GNU/Linux or macOS and perhaps also Windows with a little bit of tweaking)
- Clone the repo and enter it
git clone https://github.com/archisman-panigrahi/QuickBib.git
cd QuickBib
- Create and activate a virtual environment (recommended)
python3 -m venv .venv
source .venv/bin/activate
- Upgrade pip and install dependencies
python3 -m pip install --upgrade pip
pip install -r requirements.txt
- Run QuickBib from source
You can run the package module directly:
python3 -m quickbib
Or run the convenience script in bin/quickbib:
./bin/quickbib
QuickBib uses gettext-style PO translations in quickbib/po/. All translations
were initially done with AI and only some were later modified by native speakers.
Therefore there may be some mistakes/bad translation.
PRs for modifications and addition of new languages are welcome!
Each language has one PO file:
quickbib/po/<language>/LC_MESSAGES/quickbib.po
For example:
quickbib/po/fr/LC_MESSAGES/quickbib.po
quickbib/po/pt_br/LC_MESSAGES/quickbib.po
quickbib/po/zh_cn/LC_MESSAGES/quickbib.po
In each entry, msgid is the English source text and msgstr is the
translation. Translate only msgstr; keep msgid unchanged.
- Open the PO file for the language you want to improve.
- Edit the
msgstrvalues. - Validate the PO files:
python3 validate_po.py --validate
- Open a pull request.
- Choose a language code, such as
de,es,fr,pt_br, orzh_cn. - Create a new directory using that language code:
mkdir -p quickbib/po/<language>/LC_MESSAGES
- Copy the English PO file:
cp quickbib/po/en/LC_MESSAGES/quickbib.po quickbib/po/<language>/LC_MESSAGES/quickbib.po
- Edit the new file and translate the
msgstrvalues. Keepmsgidunchanged. - Update the
Language:header in the new file to match the language code. - Validate the PO files:
python3 validate_po.py --validate
- Open a pull request.
When adding or removing calls like tr("Text to translate") in the source code,
refresh the PO files before validating:
python3 validate_po.py --extract
python3 validate_po.py --validate
--extract adds new English strings, removes unused strings, and refreshes
source line references while keeping existing translations.
To test a specific locale locally, set LANG (or LC_ALL if your environment
already sets it), for example:
LANG=es python3 -m quickbib
