Skip to content

davcrom/biblobag

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Biblo Baggins

A vibe-coded BibTeX reference manager built with Python and PyQt6.

Biblo Baggins is a desktop application for managing academic reference libraries. It stores entries as a flat CSV file (easy to version control, diff, and edit outside the app) and can import/export standard BibTeX format.

Status

In development. Tested on Linux (Ubuntu 22.04) with Python 3.10.

Contributions welcome.

Features

  • Load and save libraries as CSV or BibTeX
  • Add entries by pasting BibTeX or filling fields manually
  • Search and filter by title, author, abstract, year, type, tags, and project
  • Sort results by any column
  • Edit entries inline (single or bulk tag/project assignment)
  • Import references from Firefox browser tabs (fetches BibTeX via DOI)
  • Rename PDFs to match library entries
  • Detect and resolve duplicate keys
  • Find entries with missing fields
  • Semantic map of your library using SPECTER embeddings and UMAP (optional)

Installation

git clone https://github.com/davcrom/biblobag.git
cd biblobag
python -m venv .venv
source .venv/bin/activate
pip install -e .

For embedding/semantic map features:

pip install -e ".[embeddings]"

Usage

biblobag

Or equivalently:

python -m biblobag

First launch

Click New in the Library group to create an empty library, then start adding entries.

Configuration

Copy the template and set your default library path:

cp config.template.json config.json

Edit config.json:

{
    "default_library_path": "/path/to/your/library.csv"
}

The app will load this library automatically on startup.

Adding entries

Two ways to add a reference:

  1. From BibTeX — paste a BibTeX entry, click "Parse & Preview". Edit any fields, then click "Add to Library".
  2. Manual entry — type a key, fill in the fields directly, click "Add to Library".

Searching

Type in the search bar to filter by title, author, or abstract. Use the filter row for year range, entry type, tags, or project.

Click any column header to sort.

Editing

Check one or more entries in the table, then switch to the Edit tab. Single entries show all fields; multiple entries allow bulk tag/project assignment.

Importing from Firefox

Go to Tools > Import from Firefox Tabs to fetch BibTeX for papers open in your browser. The importer reads your Firefox session, extracts DOIs from publisher URLs, and fetches citation data.

Running tests

pip install pytest
pytest tests/

Project structure

biblobag/
  library.py      — Backend: parsing, storage, search, file I/O
  gui.py          — Frontend: PyQt6 interface
  embeddings.py   — SPECTER embeddings and UMAP (optional)
  importutils.py  — Firefox session reading and DOI extraction
  __main__.py     — Application entry point
config.json       — User settings (not tracked, copy from template)
config.template.json — Config template
tests/            — Test suite
specs/            — Feature specifications

About

A light-weight reference manager.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages