bibox
Using AI agents (OpenClaw) to search and summarize papers? Let them manage your bibliography and notes too. You just browse the TUI. bibox makes it work.
Just give your agent the GitHub link. It'll figure out the rest.
For humans: browse and edit in the TUI. For agents: manage entries and notes through the CLI.
Best for: researchers who use AI agents for literature review and want papers, notes, and BibTeX in one Git-syncable folder.
Not for: GUI, PDF annotation, or Word integration. Use Zotero instead.
Sources: Crossref, Open Library, arXiv, Unpaywall
Formats: BibTeX, YAML, RIS, CSV, Markdown
Import: .bib from Zotero, Mendeley, EndNote
Features
- Smart import - Drop a PDF and bibox extracts the DOI, fetches metadata from Crossref, and files it automatically
- Multiple sources - Add entries via PDF, DOI, ISBN, arXiv ID, URL, or title search
- Three-panel TUI - Collections, entries, and preview (info / notes / PDF) side by side
- Vim-style navigation -
hjkl,gg/G,{n}j,Ctrl+d/u, multi-select withSpace - Fetch & refresh - Press
fto pull metadata from Crossref, preview changes, pick which fields to update - Undo/redo -
Ctrl+z/Ctrl+ywith in-memory snapshots - AI-agent-friendly - Every command supports
--json. Notes have--stdin,--section,--templatefor programmatic access - Markdown notes - Per-entry notes with section-level updates, rendered with syntax highlighting in the TUI
- Sub-collections - Hierarchical collections with path notation (
digest/2026-04). Unlimited depth, works like a filesystem - Portable home -
bibox initputs everything in one Git-syncable folder - Export - BibTeX, YAML, RIS, CSV, notes (
.md). Include PDFs. Copy to clipboard. Zip it up. - Templates - Built-in and custom note templates with
{{variable}}substitution - Doctor -
bibox doctordiagnoses and auto-repairs DB issues: bad citekeys, LaTeX escapes, orphaned files
Install
With Rust (macOS / Linux desktop):
With cargo-binstall (fast, no compile):
On a server (no Rust needed):
Pre-built binaries for Linux x86_64, macOS arm64, and macOS x86_64 are available on the releases page.
Update:
Quick Start
Add a paper by PDF (auto-extracts DOI → fetches metadata):
Add by DOI, arXiv ID, ISBN, or URL:
Search by title on Crossref:
Launch TUI:
TUI
┌ Collections ─┬ Entries ──────────┬ Info │ Note │ PDF ──┐
│ > All (15) │ 1 kim2025 ◆ │ Title: Rust Syst.. │
│ cs (8) │ 2 dijkstra1968 │ Author: Kim, J. │
│ ml (5) │ 3 manco2017 ◆ │ Year: 2025 │
│ │ │ DOI: 10.1234/... │
├──────────────┴───────────────────┴────────────────────┤
│ / search s sort o open w web e export ? help │
└───────────────────────────────────────────────────────┘
Keybindings
| Key | Action |
|---|---|
h/l |
Focus left/right panel |
j/k |
Navigate within panel |
gg/G |
Jump to top/bottom |
{n}j |
Move n lines (e.g., 5j) |
Ctrl+d/u |
Half-page down/up |
Tab |
Switch preview mode (Info → Note → PDF) |
Space |
Toggle select entry |
V |
Select/deselect all |
/ |
Search (entries or collections, based on focus) |
s |
Sort menu |
f |
Fetch/refresh metadata from Crossref (preview changes, select which to apply) |
o |
Open PDF (or fetch from web; re-fetches if file missing; opens browser on 403) |
A |
Attach a local PDF via file picker (copies and renames to citekey.pdf) |
w |
Open paper web page in browser |
e |
Export menu (selected / collection / all) |
y |
Copy citekey to clipboard |
d |
Delete entry |
c |
Manage collections (works on multi-selected entries too) |
t |
Edit tags |
N |
Edit note in $EDITOR |
Ctrl+z |
Undo |
Ctrl+y |
Redo |
, |
Settings (line numbers, panel ratio, citekey format, export dirs, git sync) |
? |
Help |
q |
Quit |
CLI
Browse:
Edit:
Collections:
Import (from Zotero, Mendeley, EndNote, etc.):
Export your library as .bib from any reference manager, then:
Migrating from Zotero? Export each collection as a separate .bib and import with --to:
Or just give the .bib file to your agent. It'll handle it.
Export:
Bulk update:
Delete:
Attach a PDF manually (when auto-fetch fails):
Diagnose and repair database issues:
Config:
Notes
Notes are Markdown files, one per entry. Designed for both human editing and AI agent pipelines.
Initialize from a template:
AI agent writes sections programmatically:
|
|
Read note back:
Human edits in $EDITOR:
Templates
Built-in templates: ai-summary, reading-notes. Custom templates override built-ins.
Template variables: {{title}}, {{citekey}}, {{doi}}, {{year}}, {{author}}, {{journal}}, {{booktitle}}, {{publisher}}
Portable Home & Git Sync
# Initialize a portable bibox home
# Everything lives in one folder
# Sync with Git
&& && &&
# Or use the TUI: press , → Git → Enter to check status → Enter to sync
Settings
Press , in the TUI, or run bibox config to see all current settings and paths.
= "absolute" # absolute, relative, none
= [2, 4, 4] # left : center : right (sum = 10)
= "{author}{year}{title}" # {author}, {year}, {title} variables
= "." # BibTeX export location
= "~/Downloads" # Other exports location
= "~/bibox" # Portable home (set by bibox init)
AI Agent Integration
If you are an AI agent: run bibox agent-guide first. It prints a complete reference of all commands, flags, and workflows designed for programmatic use.
Every command supports --json for machine-readable output.
# Full workflow: search → add → note → push
|
|
# Get all paths programmatically
# Non-interactive sync
| Flag | Purpose |
|---|---|
--json |
Machine-readable output (most commands) |
--index N |
Auto-select Nth search result (0-based, with --search) |
--stdin |
Read content from stdin (notes, templates) |
--section "Name" |
Target a specific ## Heading in a note |
--yes / -y |
Skip confirmation prompts |
--template <name> |
Initialize note from template |
License
MIT