arxiv-dl
A command-line tool for downloading, naming, and cataloging research papers from arXiv and major paper repositories.
arxiv-dlis an independent project and is not affiliated with arXiv.
Features
- Accepts arXiv IDs, individual paper URLs, and supported listing or collection pages.See Supported Inputs for the complete list of supported targets.
- Saves consistently named PDFs, optional text or Markdown notes, and a local JSON paper index.
- Extracts available metadata such as title, authors, abstract, venue, year, comments, and BibTeX. Availability varies by source.
- Supports a configurable download directory and optional parallel downloads with aria2.
Installation
arxiv-dl requires Python 3.9 or newer. Install it with
pipx to keep it isolated
from other Python packages:
If pipx is already installed:
pipx install arxiv-dl
paper --help
Current pipx releases require Python 3.10 or newer. If pipx is not installed, use the setup command for your platform, restart the terminal, and then run the commands above.
| Platform | Install pipx |
|---|---|
| macOS | brew install pipxpipx ensurepath |
| Debian 12+ / Ubuntu 23.04+ | sudo apt updatesudo apt install pipxpipx ensurepath |
| Fedora | sudo dnf install pipxpipx ensurepath |
| Windows PowerShell | py -m pip install --user pipxpy -m pipx ensurepath |
On Windows, replace py with python or python3 if needed. See the
pipx installation guide
for other platforms.
Upgrade an existing installation with:
pipx upgrade arxiv-dl
Install with pip in a virtual environment
Use this method if you have Python 3.9 or prefer not to use pipx.
On macOS or Linux:
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade arxiv-dl
paper --help
On Windows PowerShell:
py -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade arxiv-dl
paper --help
On Command Prompt, use .venv\Scripts\activate.bat instead of the PowerShell
activation command. The paper command is available while the virtual
environment is active.
If PowerShell blocks script activation, use the environment directly:
.\.venv\Scripts\python.exe -m pip install --upgrade arxiv-dl
.\.venv\Scripts\paper.exe --help
Usage
paper [OPTIONS] TARGET [TARGET ...]
arxiv-dl and getpaper are alternative command names for paper.
Examples
# Download one paper by arXiv ID
paper 1512.03385
# Download multiple targets
paper 2103.15538 https://arxiv.org/abs/1512.03385
# Download all papers from the current Hugging Face daily listing
paper https://huggingface.co/papers
# Choose an output directory and skip the notes file
paper 1512.03385 --download-dir ./papers --pdf-only
Supported inputs
| Source | Accepted input |
|---|---|
| arXiv | Modern or legacy arXiv IDs; abstract, PDF, and HTML URLs |
| alphaXiv | Paper routes containing a valid arXiv ID; resolved through canonical arXiv URLs |
| Hugging Face Papers | Individual papers; daily, weekly, monthly, trending, user, and organization listings; collections |
| ICLR | Proceedings abstract and PDF URLs, including short-route aliases |
| NeurIPS / NIPS | Abstract and PDF URLs from the current proceedings or legacy NIPS site |
| CVF Open Access | Abstract and PDF URLs for CVPR, ICCV, WACV, and ACCV, including workshops and findings tracks |
| ECVA | ECCV abstract pages; direct PDF support varies by year, so prefer the abstract page |
View detailed input formats
✅ Supported, 🚧 not yet supported, ⚠️ limited support
- arXiv
- ✅ arXiv ID:
1512.03385orarXiv:1512.03385 - ✅ Legacy arXiv ID:
alg-geom/9708001orcs/0002001 - ✅ Abstract URL:
https://arxiv.org/abs/1512.03385 - ✅ PDF URL:
https://arxiv.org/pdf/1512.03385.pdf - ✅ HTML URL:
https://arxiv.org/html/2506.15442
- ✅ arXiv ID:
- alphaXiv
- ✅ Abstract URL:
https://www.alphaxiv.org/abs/2312.16682v2 - ✅ PDF URL:
https://www.alphaxiv.org/pdf/2312.16682v2 - ✅ Other paper routes containing an arXiv ID, including overview, HTML, localized, Markdown, and direct PDF asset URLs
- alphaXiv targets resolve through the corresponding canonical arXiv URLs.
- ✅ Abstract URL:
- Hugging Face Papers
- ✅ Individual paper:
https://huggingface.co/papers/2605.12357 - ✅ Current daily papers:
https://huggingface.co/papers - ✅ Daily papers:
https://huggingface.co/papers/date/2026-05-22 - ✅ Weekly papers:
https://huggingface.co/papers/week/2026-W21 - ✅ Monthly papers:
https://huggingface.co/papers/month/2026-05 - ✅ Trending papers:
https://huggingface.co/papers/trending - ✅ User or organization papers:
https://huggingface.co/huggingface/papers - ✅ Collection:
https://huggingface.co/collections/Testerpce/memory
- ✅ Individual paper:
- CVF Open Access (CVPR, ICCV, WACV,
ACCV)
- ✅ Abstract URL:
https://openaccess.thecvf.com/content/**/html/**/*.html - ✅ PDF URL:
https://openaccess.thecvf.com/content/**/papers/**/*.pdf - ✅ Workshop and findings-track URLs
- ✅ Abstract URL:
- ECVA (ECCV)
- ✅ Abstract URL:
https://www.ecva.net/papers/eccv_<year>/papers_ECCV/html/<paper>.php - ⚠️ Direct PDF support varies by year; prefer the abstract URL.
- ✅ Abstract URL:
- NeurIPS Proceedings / NIPS legacy site
- ✅ NeurIPS abstract URL:
https://proceedings.neurips.cc/paper_files/paper/**/hash/**/*.html - ✅ NeurIPS PDF URL:
https://proceedings.neurips.cc/paper_files/paper/**/file/**/*.pdf - ✅ NIPS abstract URL:
https://papers.nips.cc/paper_files/paper/**/hash/**/*.html - ✅ NIPS PDF URL:
https://papers.nips.cc/paper_files/paper/**/file/**/*.pdf
- ✅ NeurIPS abstract URL:
- ICLR Proceedings
- ✅ Abstract URL:
https://proceedings.iclr.cc/paper_files/paper/**/hash/**/*-Abstract-Conference.html - ✅ PDF URL:
https://proceedings.iclr.cc/paper_files/paper/**/file/**/*-Paper-Conference.pdf - ✅ Short
/paper/**routes and-Abstract.htmlaliases, normalized to the canonical HTTPS-ConferenceURLs
- ✅ Abstract URL:
- OpenReview
- 🚧 Not yet supported
Options
| Option | Description |
|---|---|
-d, --download-dir DIR |
Set the directory for this run; overrides the environment variable and default. |
-p, --pdf-only |
Download the PDF without creating a notes file. |
--notes-format {txt,md} |
Set the notes format (default: txt). |
-n, --n-threads N |
Request 1–16 download connections (default: 1). Values above 1 use aria2 when available; CVF uses one connection. |
-v, --verbose |
Show full details. |
--verbose-level LEVEL |
Set output to silent, minimal, default, or verbose. |
--skip-update-check |
Skip the package update check. |
Run paper --help for the full command reference.
Faster downloads with aria2
aria2 is optional. Install it, ensure aria2c is on
your PATH, and request more than one connection:
| Platform | Install aria2 |
|---|---|
| macOS | brew install aria2 |
| Debian / Ubuntu | sudo apt install aria2 |
| Fedora | sudo dnf install aria2 |
| Windows PowerShell | winget install --exact --id aria2.aria2 |
paper --n-threads 5 1512.03385
Configuration
Papers are saved to ~/Downloads/ArXiv_Papers by default
(%USERPROFILE%\Downloads\ArXiv_Papers on Windows). Use --download-dir for a
single run or set ARXIV_DOWNLOAD_FOLDER for a persistent default.
On macOS or Linux, add this to .bashrc, .zshrc, or the relevant shell
profile:
export ARXIV_DOWNLOAD_FOLDER="$HOME/Documents/Papers"
Reload the shell profile or open a new terminal for the change to take effect.
On Windows PowerShell, set a persistent user environment variable and open a new terminal:
[Environment]::SetEnvironmentVariable("ARXIV_DOWNLOAD_FOLDER", "$HOME\Documents\Papers", "User")
The resolution order is --download-dir, ARXIV_DOWNLOAD_FOLDER, then the
default directory.
Python API
from arxiv_dl import download_paper
download_paper(
target="1512.03385",
download_dir=".",
set_verbose_level="silent",
)
Contributing
See DEVELOPMENT.md for development, testing, build, and release instructions.
License
MIT © 2021–2026 Mark H. Huang.
Metadata
Release files for arxiv-dl 1.3.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| arxiv_dl-1.3.5.tar.gz | 976.8 kB | With provenance | Details for arxiv_dl-1.3.5.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| arxiv_dl-1.3.5-py3-none-any.whl | Python 3 | none | any | Details for arxiv_dl-1.3.5-py3-none-any.whl |
Total release size: 1.0 MB
Release files / arxiv_dl-1.3.5.tar.gz
| Download URL | arxiv_dl-1.3.5.tar.gz |
|---|---|
| Size | 976.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
04c723d1b0cc401064aa3edf7e1e17aaa51af6e8e2d6d04ab47b476789c1e8c0
|
|
BLAKE2b-256 checksum How to use checksums |
16f9e89101a341823625056461df64807b97877019245f7eacbd0645b3ebfdcb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 14, 2026.
Transparency logRelease files / arxiv_dl-1.3.5-py3-none-any.whl
| Download URL | arxiv_dl-1.3.5-py3-none-any.whl |
|---|---|
| Size | 26.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
084877c6d9e540b3470fea6e9a7786dbd7d976f767b51572b9849c1fb240714a
|
|
BLAKE2b-256 checksum How to use checksums |
165728fd6bbf8e3779c60ad4c9709da7519fbed2509740009deb7ec34bb82427
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 14, 2026.
Transparency logSecurity for arxiv-dl 1.3.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for arxiv_dl-1.3.5.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 14, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.