Fuzzy search over a BibTeX library. Finds papers by title, author, keywords, or journal and returns paths to PDFs.
Built for AI agents that need to look up and read papers from a Zotero-exported library.
biblio "metzinger suffering" # fuzzy search, rich output
biblio "adorno" --format bibtex # raw bibtex entry
biblio "cassius adair" --format path # just the PDF path
biblio "hobbes leviathan" -n 3 # limit to 3 results
biblio "lavender" --bib ~/library/library.bib # custom bibtex pathRich (default) — score, authors, year, title, journal, keywords, file path:
[310] Hobbes, Thomas (1985)
"Leviathan"
Keywords: Unread
[no file]
Bibtex — raw bibtex block, verbatim.
Path — just the resolved file path, one per line. Skips entries without files. Pipeable.
- Multi-word queries: each term must match, scores sum. "hobbes leviathan" finds Leviathan, not everything with an 'h'.
- LaTeX escape handling:
Luk{\'a}csdisplays asLukács, searchable aslukacs. - Entries without files show
[no file]in rich mode, skipped in path mode. - Paths resolved relative to the bibtex file location.
# Nix
nix build
nix run . -- "search query"
# Cargo
cargo install --path biblio-clifuzzy-matcher— fuzzy string matchingclap— CLI argument parsing
cargo test22 tests covering parser (LaTeX escapes, nested braces, multi-author, malformed entries), search (scoring, ordering, path resolution), and integration against real bibtex data.