Agent-oriented academic research CLI, distributed as a single Rust binary.
Status: v0.1.0 — PDF download MVP (legal OA + arXiv)
Design: docs/design/scholar-cli.md
- Download PDFs by DOI or arXiv ID
- Multi-source race: Unpaywall, OpenAlex, Semantic Scholar, DOAJ, Crossref, publisher direct
- Default strategy
legal_only(no grey sources in default build) - Agent-first: JSON stdout, stable exit codes, non-interactive
- Result cache, auto-rename, batch + resume, EMA source scores
- Config under
~/.scholar/; proxy via config orHTTP(S)_PROXY
Download the archive for your operating system and CPU from the
latest GitHub Release.
Extract it, then place scholar (macOS/Linux) or scholar.exe (Windows) in a
directory on your PATH.
scholar doctor -q
scholar pdf get 1706.03762 -o ./papers -q
scholar config set email you@example.com
scholar pdf get 10.1038/nature12373 -o ./papers -qSee the detailed usage guide for platform selection, checksum verification, batch downloads, configuration, proxies, caching, JSON output, exit codes, and troubleshooting.
scholar/
├── crates/
│ ├── scholar/ # CLI binary
│ ├── scholar-core/ # identifiers, config, contract, exit
│ └── scholar-pdf/ # HTTP, sources, race, cache, batch
├── fixtures/
└── .github/workflows/ci.yml
- Single binary, no Python
pdf get+ Contract v1 JSON + correct exit- arXiv + arXiv DOI L0
- Legal sources incl. DOAJ / Crossref / publisher prefix table
- Default no grey;
scihub_*→ exit 2 - No email → skip Unpaywall (doctor warn)
- PDF validation (
is_pdf_file/ suspicious) - Non-interactive (no stdin prompts)
doctor/strategiesJSON- Release artifact without grey
Sci-Hub is not in the default build. It is dual-gated:
- Compile with feature
grey-sources - Runtime
scihub_enabled=true
cargo build -p scholar --release --features grey-sources
./target/release/scholar config set scihub_enabled true
# optional mirrors (comma-separated)
# ./target/release/scholar config set scihub_domains https://sci-hub.se,https://sci-hub.st
./target/release/scholar pdf get 10.1038/nature12373 --strategy scihub_first -o ./papers -q
# or: --strategy scihub_only | grey_only | fastestCompliance: You are responsible for complying with applicable laws and institutional policies. Default legal_only never uses grey sources.
Apache-2.0