BibLib is an Obsidian plugin for managing bibliographic references. Each reference is stored as a Markdown note with metadata in YAML frontmatter using the CSL-JSON format.
Note
For detailed documentation, see the docs site
- References are stored as Markdown files with CSL-JSON metadata in YAML frontmatter
- Metadata can be fetched automatically via DOI, ISBN, PubMed ID, arXiv ID, or URL
- The Zotero browser connector can send references directly to Obsidian (desktop only)
- Bibliography files can be exported in CSL-JSON or BibTeX format for use with Pandoc
- Open Obsidian Settings > Community Plugins
- Search for "BibLib"
- Install and enable the plugin
- Open command palette (
Ctrl/Cmd + P) - Run "BibLib: Create Literature Note"
- Either fill in fields manually or use "Lookup" with a DOI/ISBN/URL
- Click "Create Note"
- Enable the Zotero Connector in settings (requires closing Zotero desktop app)
- Click the Zotero browser extension on any webpage
- BibLib opens a modal with the reference data pre-filled
- "BibLib: Build bibliography" creates
bibliography.json(CSL-JSON format) - "BibLib: Export bibliography as BibTeX" creates
bibliography.bib
These files can be used with Pandoc for citation formatting.
BibLib stores reference metadata in YAML frontmatter using CSL-JSON structure:
---
id: smith2023
type: article-journal
title: Example Article Title
author:
- family: Smith
given: Alice
- family: Jones
given: Bob
container-title: Journal of Examples
issued:
date-parts:
- [2023, 6, 15]
DOI: 10.1234/example
tags:
- literature_note
---Note
Obsidian's Properties panel may show warnings for nested YAML fields like author arrays. This is a display limitation in Obsidian's metadata parser - the data is stored correctly and works with external tools.
- Attachment folder: Where PDFs are stored
- Literature note location: Where reference notes are created
- Filename template: Pattern for filenames (e.g.,
@{{citekey}})
- Note content template: Structure for new notes
- Custom frontmatter fields: Additional YAML fields with templated values
- Citekey template: Pattern for generating citekeys (e.g.,
{{authors_family.0|lowercase}}{{year}})
- Port: Default 23119 (same as Zotero)
- Requires Zotero desktop app to be closed
- bibliography.json path: Location for CSL-JSON output
- bibliography.bib path: Location for BibTeX output
BibLib uses Handlebars-style templates:
- Variables:
{{title}},{{year}},{{DOI}} - Nested access:
{{author.0.family}} - Formatters:
{{title|lowercase}},{{authors_family.0|abbr3}} - Conditionals:
{{#DOI}}Has DOI{{/DOI}}
Generated citekeys follow Pandoc conventions:
- Must start with letter, digit, or underscore
- Can contain alphanumerics and
:.#$%&-+?<>~/
MIT
