GitRef
A git-based reference manager — like Zotero, but your library is a plain git repo.
What is GitRef?
GitRef manages your academic references using standard BibTeX and git instead of a proprietary database. Every paper you add — by DOI, arXiv ID, or ISBN — is stored in a .bib file with PDFs packed into a compressed archive. Your entire library lives in a git repo you control, syncs across machines with git push/pull, and is browsable on GitHub.
It's designed to be DAU-friendly: run gitref watch and all PDFs are extracted for reading. Drop a PDF into the folder and it's auto-added. Close your viewer and files are auto-repacked. No manual open/close commands needed.
Key Features
- DOI / arXiv / ISBN Lookup — Paste an identifier, metadata is fetched automatically via Crossref, arXiv, and Open Library APIs
- PDF Management — Auto-download, rename, and compress PDFs into a git-efficient zip archive
- File Watcher — Extracts all PDFs on start, auto-adds dropped files, auto-repacks on close
- BibTeX Native — Standard
.bibformat, no lock-in, works with LaTeX toolchains - Terminal UI — Interactive browser with search, detail view, tagging, and collections
- Browser Extension — One-click save from any paper page (like Zotero Connector)
- Git Sync — Auto-commit, pull, push across machines
- RIS Export — Compatible with other reference managers
- Cross-Platform — Windows, Linux, and macOS
Download & Installation
Install via pip (recommended):
pip install gitref
Requirements: Python 3.10+, Git (for sync)
License: MIT
Status: Active development
Quick Start
# Initialise a new library
gitref init
# Add a paper by DOI
gitref add "10.1038/s41586-024-07487-w"
# Add by arXiv ID
gitref add "2401.12345"
# Start watcher (extracts PDFs, auto-adds/repacks)
gitref watch
# Open interactive TUI
gitref browse
# Sync with remote
gitref sync
# Full help
gitref --help