Skip to content

Quickstart

This tutorial shows the smallest practical biblio workflow for a fresh project, then points to the built-in demo workspace used by the development repo.

Install

pip install "biblio-tools[openalex]"

If you also want the local interactive UI:

pip install "biblio-tools[openalex,ui]"

Initialize a bibliography workspace

From your project root:

biblio init

This creates:

  • bib/config/biblio.yml
  • bib/config/citekeys.md
  • bib/config/rag.yaml
  • bib/srcbib/

Optional: try the standalone repo demo workspace

The biblio development repo includes a small local bib/ workspace with three sample papers, matching PDFs, and config files. From that repo you can run:

biblio citekeys status
biblio bibtex merge
biblio docling run --all
biblio site build
biblio ui serve

Add BibTeX sources

Place one or more .bib files under bib/srcbib/.

If you do not have BibTeX yet, you can import structured sources first:

biblio ingest csljson exports/library.json
biblio ingest ris exports/library.ris
biblio ingest dois reading-list.txt
biblio ingest pdfs ~/Downloads/papers/

Merge and normalize

biblio bibtex merge
biblio bibtex fetch-pdfs

Run Docling

biblio docling run --all

Resolve OpenAlex metadata

biblio openalex resolve

Expand the reference graph

Discover papers that cite or are referenced by your corpus:

biblio graph expand

Results appear in the Explore tab of the local UI.

Build the bibliography site

biblio site build
biblio site serve

The generated site lives under bib/site/.

Launch the local UI

biblio ui serve
# or
biblio-gui

The UI has five tabs:

  • Explore — Cytoscape graph + expansion candidates with Add to Bib actions
  • Corpus — full paper table with per-row artifact status and actions
  • Paper — PDF viewer, Docling excerpt, neighborhood
  • Actions — trigger BibTeX merge, OpenAlex resolve, graph expand, site build, Docling
  • Setup — configure Docling command and bibliography-owned RAG sources

If port 8010 is occupied, biblio automatically chooses the next free port and prints the final local URL.