Skip to main content

arXiv-dl

Command-line research paper downloader for papers hosted on arXiv, alphaXiv, Hugging Face, ICLR, NeurIPS, CVF Open Access (CVPR, ICCV, WACV), and ECVA (ECCV).

Disclaimer: This is an opinionated command-line tool for downloading papers. It prioritizes ease of use for researchers and is not an official arXiv project.

What does it do?

  • Downloads papers from arXiv, alphaXiv, Hugging Face, ICLR, NeurIPS, CVPR, ICCV, WACV, and ECCV with a simple CLI.
  • Speeds up downloads with aria2 when available.
  • Retrieves paper metadata:
    • Title, abstract, and year
    • Authors
    • Comments and conference acceptance info
    • Repository URLs when available
    • BibTeX citation
  • Maintains a list of local papers and their metadata in a JSON file.
  • Lets you configure the download destination with an environment variable or command-line option.
  • Saves downloaded papers with standardized filenames.

Why?

  • Save time downloading and organizing papers.
  • Use multiple parallel connections for faster downloads.
  • Keep a local paper list for lookup, notes, and citations.

Installation

For regular command-line use, install with pipx:

  • Prerequisite: Python 3.9 or later
pipx install arxiv-dl

If pipx is not installed:

# Debian/Ubuntu
sudo apt install pipx
pipx ensurepath

# macOS
brew install pipx
pipx ensurepath

[!NOTE] pipx installs command-line tools in isolated environments and exposes their commands on your PATH. This avoids conflicts with operating-system-managed Python installations, including Debian/Ubuntu environments that block global pip install through PEP 668.

To upgrade:

pipx upgrade arxiv-dl

If you prefer pip, install inside a virtual environment:

python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -U arxiv-dl

Optionally, install aria2c for multi-connection downloads.

  • macOS: brew install aria2
  • Linux: sudo snap install aria2c

Usage

After installation, use paper in your shell to download papers. The legacy commands arxiv-dl and getpaper are equivalent to paper.

paper [OPTIONS] TARGET(s)

Shell examples

# Download a single target
$ paper 1512.03385

# Download multiple targets
$ paper 2103.15538 https://arxiv.org/abs/1512.03385 https://alphaxiv.org/abs/2312.16682v2

# Download from ICLR Proceedings
$ paper https://proceedings.iclr.cc/paper_files/paper/2026/hash/0021c2cb1b9b6a71ac478ea52a93b25a-Abstract-Conference.html

Supported Targets

Click to expand

✅ Supported, 🚧 Not Yet Supported, ❌ Not Supported

  • ArXiv
    • ✅ ArXiv ID: 1512.03385 or arXiv:1512.03385
    • ✅ Legacy ArXiv ID: alg-geom/9708001 or cs/0002001, etc.
    • ✅ ArXiv Abstract Page URL: https://arxiv.org/abs/1512.03385
    • ✅ ArXiv PDF Page URL: https://arxiv.org/pdf/1512.03385.pdf
    • ✅ ArXiv HTML Page URL: https://arxiv.org/html/2506.15442
  • alphaXiv
    • ✅ alphaXiv Abstract Page URL: https://www.alphaxiv.org/abs/2312.16682v2
    • ✅ alphaXiv PDF Page URL: https://www.alphaxiv.org/pdf/2312.16682v2
    • ✅ Other alphaXiv paper routes containing an arXiv ID, including overview, HTML, localized, Markdown, and direct PDF asset URLs
    • alphaXiv targets are resolved through the corresponding canonical arXiv abstract and PDF URLs.
  • Hugging Face Papers
    • ✅ Single Paper Page URL: https://huggingface.co/papers/2605.12357
    • ✅ Current Daily Papers Page URL: https://huggingface.co/papers
    • ✅ Daily Papers Page URL: https://huggingface.co/papers/date/2026-05-22
    • ✅ Weekly Papers Page URL: https://huggingface.co/papers/week/2026-W21
    • ✅ Monthly Papers Page URL: https://huggingface.co/papers/month/2026-05
    • ✅ Trending Papers Page URL: https://huggingface.co/papers/trending
    • ✅ User/Organization Papers Page URL: https://huggingface.co/huggingface/papers
    • ✅ Collection Page URL: https://huggingface.co/collections/Testerpce/memory
  • CVF Open Access (CVPR, ICCV, WACV)
    • ✅ CVF Abstract Page URL: https://openaccess.thecvf.com/content/**/html/**/*.html
    • ✅ CVF PDF Page URL: https://openaccess.thecvf.com/content/**/papers/**/*.pdf
  • ECVA (ECCV)
    • ✅ ECVA Abstract Page URL: https://www.ecva.net/html/**/*.php
    • ❌ ECVA PDF Page URL: https://www.ecva.net/papers/**/*.pdf
  • NeurIPS Proceedings / NIPS Legacy Site
    • ✅ NeurIPS Abstract Page URL: https://proceedings.neurips.cc/paper_files/paper/**/hash/**/*.html
    • ✅ NeurIPS PDF Page URL: https://proceedings.neurips.cc/paper_files/paper/**/file/**/*.pdf
    • ✅ NIPS mirror Abstract Page URL: https://papers.nips.cc/paper_files/paper/**/hash/**/*.html
    • ✅ NIPS mirror PDF Page URL: https://papers.nips.cc/paper_files/paper/**/file/**/*.pdf
  • ICLR Proceedings
    • ✅ ICLR Abstract Page URL: https://proceedings.iclr.cc/paper_files/paper/**/hash/**/*-Abstract-Conference.html
    • ✅ ICLR PDF URL: https://proceedings.iclr.cc/paper_files/paper/**/file/**/*-Paper-Conference.pdf
    • ✅ Short /paper/** route and -Abstract.html aliases; both are normalized to canonical HTTPS -Conference URLs
  • OpenReview
    • 🚧 TODO

Common Options

  • -v, --verbose: Print full details.
  • -d, --download-dir: Set the download directory for this run. This overrides both the default path and ARXIV_DOWNLOAD_FOLDER.
  • -n, --n-threads: Set the number of parallel download connections used by aria2.

[!TIP] Run paper -h to see all options.

Python API

from arxiv_dl import download_paper

download_paper(target="1512.03385", download_dir=".", set_verbose_level="silent")

Configuration

Default Download Destination

  • By default, papers are downloaded to $HOME/Downloads/ArXiv_Papers.

Custom Download Destination

Set ARXIV_DOWNLOAD_FOLDER to choose a persistent download destination. Add this to your .bashrc or .zshrc:

export ARXIV_DOWNLOAD_FOLDER="YOUR/PATH/TO/ANY/FOLDER"
  • Download destination priority:
    1. Command-line option -d (highest priority)
    2. Environment variable ARXIV_DOWNLOAD_FOLDER
    3. Default download destination (lowest priority)

Custom Command Alias

  • You can define aliases to rename the command or add default options:
    alias dp="paper"
    alias dpv="paper -v -d '~/Documents/Papers'"
    

Contributing

Development, testing, build, and publishing notes are in DEVELOPMENT.md.

License

This project is licensed under the MIT License.
© Mark H. Huang. All rights reserved.

Metadata

Release files for arxiv-dl 1.3.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for arxiv-dl 1.3.4
File Size Uploaded
arxiv_dl-1.3.4.tar.gz 973.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for arxiv-dl 1.3.4
File Interpreter ABI Platform
arxiv_dl-1.3.4-py3-none-any.whl Python 3 none any Details

Total release size: 998.8 kB

Release files / arxiv_dl-1.3.4.tar.gz

Download URL arxiv_dl-1.3.4.tar.gz
Size 973.6 kB
Tags Source
SHA-256 checksum
How to use checksums
504861727f3d14d6211e02fad7a9a3d3f730e20106b4f40f346b3f3e8f5acc80
BLAKE2b-256 checksum
How to use checksums
7855770c91adcc57faa3d9d0f03dc815f9a02949fb028253582bfe23db6eb82d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Aug 16, 2026.

Transparency log

Release files / arxiv_dl-1.3.4-py3-none-any.whl

Download URL arxiv_dl-1.3.4-py3-none-any.whl
Size 25.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cbde4bba9aef97eca491a54366c87214ea0bf4c8e4cb3e8bb5ebfda28394d6e1
BLAKE2b-256 checksum
How to use checksums
c4d6152fb9434aef39532eba526d74d3114eae9fb546fcdeb6e7c08b1e064eef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Aug 16, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.3.4 This release

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.9

2 release files

1.1.8

2 release files

1.1.7

2 release files

1.1.6

2 release files

1.1.5

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page