Skip to main content

A quiet, powerful home for your references.

Project description

bibtui

A quiet, powerful home for your references.

PyPI Python 3.12+ License: MIT

Quick start

uvx bibtui myrefs.bib

Screenshots

Light theme Dark — Catppuccin Mocha
light theme catppuccin mocha
Nord — keywords modal
nord with keywords modal

bibtui is a beautiful, keyboard-driven terminal app for researchers who live in the terminal. Browse and edit your .bib file, fetch open-access PDFs with a single keystroke, track what you've read, and never leave the command line — no database, no sync daemon, no account required.


Why bibtui?

bibtui JabRef Zotero
Runs in the terminal
No database / sync daemon
Git-friendly plain .bib
Works over SSH
Full Textual theming
Pure Python, installs in seconds

Features

  • Browse & search — instant search across title, author, keywords, and cite key
  • Import by DOI — paste a DOI and metadata is fetched automatically
  • Fetch PDFs automatically — tries arXiv → Unpaywall (free, open-access) → direct URL
  • Add existing PDFs — pick a file from your Downloads folder with a live filter
  • Edit entries — field-by-field form or raw BibTeX editor (toggle with v)
  • Read states & priorities — track what you've read and what matters most
  • Star ratings — rate entries 1–5
  • Keywords editor — manage tags inline
  • JabRef-compatible — file links use JabRef conventions; open the same .bib in both tools
  • Git-friendly — it's a plain text file (.bib); commit, diff, and collaborate normally
  • Full Textual theme support — including automatic detection of the omarchy themes
  • Works anywhere uv does — SSH, HPC clusters, a colleague's laptop

Installation

Recommended — uv (fastest)

uv tool install bibtui

pip

pip install bibtui

Try without installing

uvx bibtui references.bib

Usage

bibtui MyCollection.bib

On first launch bibtui shows a short onboarding wizard that pre-fills sensible defaults for your PDF directory, Downloads folder, and Unpaywall email (no registration required — the email is only used for rate-limiting).


PDF workflow

f tries three sources in order:

  1. arXiv — for entries with a 10.48550/arXiv.* DOI or an arxiv.org URL
  2. Unpaywall — free open-access lookup by DOI (set your email in Settings; no account needed)
  3. Direct URL — if the entry's url field points directly to a PDF

PDFs are saved to your configured base directory and the entry's file field is updated automatically in JabRef format.


Philosophy

  • Your .bib file is the source of truth
  • No hidden database
  • No setup, point and shoot possible
  • No lock-in
  • No accounts
  • keyboard and mouse support
  • nice looking
  • focused featurset. For cleanup use bibtex-tidy or work directly on the bib file

Development

git clone https://github.com/tgoelles/bib_tui
cd bib_tui
uv sync
uv run bibtui tests/bib_examples/MyCollection.bib

Run the tests:

uv run pytest -m "not network"

Live-reload during development:

uv run textual run --dev src/bibtui/main.py -- tests/bib_examples/MyCollection.bib

Related tools

  • JabRef — GUI reference manager, same .bib format
  • cobib — another terminal BibTeX manager
  • bibman — minimal TUI reference manager

FAQ

Does this modify my .bib formatting? Yes. but we also write a backup file

Can I use it alongside JabRef? Yes. File links follow JabRef conventions.

License

MIT © Thomas Gölles

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bibtui-0.9.6.tar.gz (29.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bibtui-0.9.6-py3-none-any.whl (34.9 kB view details)

Uploaded Python 3

File details

Details for the file bibtui-0.9.6.tar.gz.

File metadata

  • Download URL: bibtui-0.9.6.tar.gz
  • Upload date:
  • Size: 29.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for bibtui-0.9.6.tar.gz
Algorithm Hash digest
SHA256 961ca0af4bd71a50b54febc8332cf8fd26d61393721b48889c56809f176055a9
MD5 b112ca35a93e3eca445d937a5fe50e7e
BLAKE2b-256 765986082a653e2efc8f8eeec7493d035d9ab3bde6dc075cb522df375932294d

See more details on using hashes here.

File details

Details for the file bibtui-0.9.6-py3-none-any.whl.

File metadata

  • Download URL: bibtui-0.9.6-py3-none-any.whl
  • Upload date:
  • Size: 34.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for bibtui-0.9.6-py3-none-any.whl
Algorithm Hash digest
SHA256 9d0922da9bf670a4c6119c94b61b65826879080afbf34fa54bb5434e109b0ec9
MD5 d630d831604d2f7ef7d153363fc1dace
BLAKE2b-256 e90351d7bf2fcd9f97c2e69a4c830f5e707394498e1d7ee4daaeb5b3909af51f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page