zoterios
A CLI tool to interact with your local Zotero library.
Prerequisites
- Python 3.13+
- Zotero 7+ running locally (default port 23119)
Installation
# with uv (recommended)
uv tool install zoterios
# or with pip
pip install zoterios
Quick Start
# Check connection
zoterios ping
# List recent papers
zoterios papers list
# Search papers
zoterios papers list --query "transformer" --tag "ML" --limit 10
# Get paper details
zoterios papers get ABCD1234
# Open a paper's PDF
zoterios papers pdf ABCD1234 --open
# Read a paper as markdown
zoterios papers markdown ABCD1234
Commands
ping
Test connection to the local Zotero instance.
papers
| Command | Description |
|---|---|
papers list [--query Q] [--tag T] [--limit N] |
List papers (default limit: 20) |
papers get KEY |
Show paper details |
papers pdf KEY [--open] |
Print PDF path, or open it with --open |
papers markdown KEY |
Convert paper's PDF to markdown |
papers import-pdf PATH --title T [opts] |
Import a local PDF into Zotero |
import-pdf options:
--title TEXT Paper title (required)
-a, --author TEXT Author name (repeatable)
--year TEXT Publication year
--type TEXT Item type: document (default), journalArticle,
conferencePaper, preprint, book, thesis, report
--journal TEXT Journal / publication name
--abstract TEXT Abstract
--doi TEXT DOI
--url TEXT URL
-t, --tag TEXT Tag (repeatable)
Example:
zoterios papers import-pdf paper.pdf \
--title "Attention Is All You Need" \
-a "Ashish Vaswani" -a "Noam Shazeer" \
--year 2017 --type conferencePaper \
--journal "NeurIPS" -t "transformer"
arxiv
| Command | Description |
|---|---|
arxiv fetch ID |
Fetch paper metadata from arXiv |
arxiv pdf ID [--open] |
Download PDF (cached locally) |
arxiv markdown ID |
Convert arXiv PDF to markdown |
arxiv source ID |
Download and extract TeX source |
arxiv save ID [--no-pdf] |
Save paper to Zotero (with PDF by default) |
arxiv check ID |
Check if paper already exists in Zotero |
arxiv clear-cache ID |
Clear cached data for a paper |
Example:
zoterios arxiv fetch 1706.03762
zoterios arxiv save 1706.03762
markdownit
Convert any supported file to markdown (PDF, DOCX, PPTX, HTML, etc.):
zoterios markdownit report.pdf
zoterios markdownit slides.pptx
Global Options
--base-url TEXT Zotero API URL (default: http://localhost:23119)
--cache-dir TEXT Cache directory (default: ~/.cache/zoterios)
--json Output JSON for all commands
Configuration
Settings can be configured via environment variables (prefix ZOTERIOS_) or a .env file:
| Variable | Default | Description |
|---|---|---|
ZOTERIOS_BASE_URL |
http://localhost:23119 |
Zotero local API URL |
ZOTERIOS_CACHE_DIR |
~/.cache/zoterios |
Cache directory |
ZOTERIOS_HTTP_PROXY |
HTTP proxy | |
ZOTERIOS_HTTPS_PROXY |
HTTPS proxy |
CLI flags (--base-url, --cache-dir) take priority over env vars.
License
MIT
Metadata
Release files for zoterios 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| zoterios-0.2.0.tar.gz | 12.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| zoterios-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 32.8 kB
Release files / zoterios-0.2.0.tar.gz
| Download URL | zoterios-0.2.0.tar.gz |
|---|---|
| Size | 12.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6d9d580239db1765c519dae0f3b6bced9e0c47dde74d55b882e7f72a881e4d04
|
|
BLAKE2b-256 checksum How to use checksums |
eafbf09183139985f00436e9069a2f736bb60362207401ed3abf156c0a341422
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / zoterios-0.2.0-py3-none-any.whl
| Download URL | zoterios-0.2.0-py3-none-any.whl |
|---|---|
| Size | 19.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c3e076145f3fb85f14cfe9215d8a94bed08c10fca3c8c6d17ec3fe8c4e5da25f
|
|
BLAKE2b-256 checksum How to use checksums |
f48f37614d9b072f868dbf343beb322b6434eff0c5697b2fa468279146bc29c1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|