| name | import |
| description | Import papers from external reference managers (Endnote XML/RIS, Zotero Web API or local SQLite). Handles PDF matching, MinerU conversion, metadata enrichment, and index updates. Use when the user wants to import their existing library from Zotero, Endnote, or attach a PDF to an existing paper. |
Import from External Reference Managers
Endnote Import
Supports Endnote export files in XML and RIS formats.
autor import-endnote <file.xml>
autor import-endnote file1.xml file2.ris
autor import-endnote <file.xml> --no-convert
autor import-endnote <file.xml> --dry-run
autor import-endnote <file.xml> --no-api
Automatic PDF Matching
For Endnote XML files, automatically parses internal-pdf:// links and matches PDFs from the <library>.Data/PDF/ directory:
- When multiple PDFs are present, supplementary / SI files are automatically excluded
- Matched PDFs are converted to paper.md via MinerU batch conversion by default
Automatic Post-Import Processing
Default behavior (without --no-convert) automatically runs the full pipeline after import:
- Batch PDF→MD: cloud mode uses
convert_pdfs_cloud_batch() for batch conversion (per-token batch size controlled by config.yaml ingest.mineru_cloud_batch_size, default 20)
- Abstract backfill: extracts missing abstracts from the Markdown
- TOC + L3 generation: LLM extracts table of contents and generates L3 paper-level conclusion cards, using inferred synthesis when no explicit conclusion section exists
- Index: updates the node-level FTS5 evidence index. Vector/FAISS storage is no longer built.
Use --no-convert to skip post-processing (imports metadata + copies PDFs + FTS5 index only).
Zotero Import
Supports both Web API and local SQLite modes.
Web API Mode
autor import-zotero --api-key KEY --library-id ID --list-collections
autor import-zotero --api-key KEY --library-id ID
autor import-zotero --api-key KEY --library-id ID --collection COLLECTION_KEY
autor import-zotero --api-key KEY --library-id ID --import-collections
Local SQLite Mode
autor import-zotero --local /path/to/zotero.sqlite
Config File (Optional)
Configure Zotero credentials in config.local.yaml:
zotero:
api_key: "your-zotero-api-key"
library_id: "your-library-id"
Attach a PDF to an Existing Paper
autor attach-pdf <paper-id> <path/to/paper.pdf>
Automatically calls MinerU to convert the PDF to Markdown, backfills any missing abstract, and incrementally updates the node-level FTS5 evidence index.
Batch PDF Conversion for Already-Ingested Papers
For papers already in the library that are missing paper.md (e.g. imported with --no-convert), batch conversion can be triggered via Python:
from autor.config import load_config
from autor.ingest.pipeline import batch_convert_pdfs
cfg = load_config()
stats = batch_convert_pdfs(cfg, enrich=True)
Automatically scans data/papers/ for papers that have a PDF but no paper.md, runs MinerU conversion, then runs abstract backfill + toc + l3 + node-level FTS5 indexing.