Paper Parser 🛠️
Efficient arXiv Search, Download, and AI-Friendly Markdown Parsing.
paper-parser is a CLI tool designed to streamline the academic research workflow. It handles everything from finding a paper on arXiv to converting it into a clean, structured Markdown format that is optimized for LLMs and AI agents.
🚀 Why Use Paper Parser?
Standard PDF-to-text tools often produce one massive block of text, which leads to two major problems when working with AI:
- Context Overflow: Large papers can exceed an LLM's context window.
- Token Waste: Paying for the entire paper's context when you only need to analyze the "Methodology" or "Conclusion" is expensive and slow.
The Solution: paper-parser uses the MinerU V4 API to extract high-quality Markdown and then automatically splits the paper into chapters. This allows AI agents to read the paper section-by-section, enabling:
- ✅ Granular Context Management: Only read what matters.
- ✅ Significant Token Savings: Drastically reduce your API bills.
- ✅ Higher Accuracy: Focus the model's attention on specific sections.
✨ Key Features
- 🔍 Intelligent Search: Typos? No problem. Fuzzy-searches arXiv with relevance ranking.
- 📥 Smart Download: Downloads PDFs into organized, ID-based directories.
- 🧩 Section Splitting: Automatically splits papers into
01_Introduction.md,02_Methodology.md, etc. - 📦 Incremental Processing: Remembers what you've already downloaded and parsed—no redundant API calls.
- 🖼️ Image Extraction: Extracts images and maintains correct relative links within the Markdown chapters.
- 📝 Note Templates: Automatically generates
title.mdandsummary.mdfor your research notes.
🛠️ Installation
From PyPI (Recommended)
pip install paper-parser-skill==v0.1.4
From Source
# Clone the repository
git clone https://github.com/KaiHangYang/paper-parser-skill.git
cd paper-parser-skill
# Install in editable mode
pip install -e .
⚙️ Configuration
The first time you run pp, it will create a configuration file at ~/.paper-parser/config.yaml.
MINERU_API_TOKEN: "your_token_from_mineru.net"
PAPER_WORKSPACE: "~/paper-parser-workspace"
MINERU_API_TIMEOUT: 600
📖 Usage Guide
Basic Commands
# Search for a paper by keyword or arXiv ID
pp search "LLaMA 3"
pp search 2303.17564
# Download a paper PDF (cached if already downloaded)
pp download 2303.17564
# Find where a paper is stored locally
pp path 2303.17564
Parsing — Synchronous (Blocking ⚠️)
# Parse a local PDF or an arXiv paper already downloaded
pp parse 2303.17564
pp parse ./my_local_paper.pdf
# Full workflow in one shot: Search → Download → Parse
pp all 2303.17564
Parsing — Async (Recommended for Agents ✅)
# Step 1: Submit for parsing and return immediately
# → auto-downloads PDF if needed, uploads to MinerU, returns batch_id
pp submit 2303.17564
# Step 2: Check status later — downloads results automatically when done
pp check 2303.17564
# → "⏳ Still processing" or "✅ Parsing complete!"
📂 Output Structure
PAPER_WORKSPACE/
└── 2303.17564/ # ArXiv ID
├── paper.pdf # Original PDF
├── title.md # Paper metadata
├── summary.md # Note-taking template
├── .parse_task.json # Task state (batch_id, status, timestamps)
└── markdowns/ # AI-Ready Content
├── 01_Introduction.md
├── 02_Methods.md
├── ...
└── images/ # Extracted figures & tables
🤝 Acknowledgments
- arXiv for the academic paper API.
- RapidFuzz for fast fuzzy string matching.
- MinerU (mineru.net) for high-quality PDF-to-Markdown parsing.
📜 License
Metadata
Release files for paper-parser-skill 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| paper_parser_skill-0.1.4.tar.gz | 15.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| paper_parser_skill-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 32.1 kB
Release files / paper_parser_skill-0.1.4.tar.gz
| Download URL | paper_parser_skill-0.1.4.tar.gz |
|---|---|
| Size | 15.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9d641d4b6fa84128d18bb12dd52f8803d6d7991ee4ba4f5bf13711f538a4b42a
|
|
BLAKE2b-256 checksum How to use checksums |
7c2e66423dc30914cdd464244ba3e60226d2683bc5fec29816113569f8f7a1c9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 Jul 8, 2026.
Transparency logRelease files / paper_parser_skill-0.1.4-py3-none-any.whl
| Download URL | paper_parser_skill-0.1.4-py3-none-any.whl |
|---|---|
| Size | 16.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9e6287c1cbc684db6c0c6b755e3b5564aa8e830396d1be2229f598dc0a79fade
|
|
BLAKE2b-256 checksum How to use checksums |
6a59ac6b68375f5d0ef245630f81a21af4b8f570976d8f91465c55b0673065ba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 Jul 8, 2026.
Transparency log