arXiv Paper Search
Search and download academic papers from arXiv without needing an API key.
Installation
- Make sure Claude is on your device and in your terminal.
Skills load from
~/.claude/skills/when Claude Code starts up — so you need it on your machine first. If you don't have it yet, install it once with the command below, then runclaudein any terminal to verify.One-time setupnpm i -g @anthropic-ai/claude-codeAlready have it? Skip ahead.
- Paste into Claude Code or into your terminal.
This copies the whole skill folder into
~/.claude/skills/arxiv-taracodlabs/— the SKILL.md plus any scripts, reference docs, or templates the skill ships with. Safe default: works for every skill.Faster alternative (instruction-only skills)
Skips the clone and grabs only the SKILL.md file. Don't use this if the skill ships Python scripts, reference markdowns, or asset templates — they won't be downloaded and the skill will fail when it tries to load them.
Quick install (SKILL.md only)Sign up to copy - Restart Claude Code.
Quit and reopen Claude Code (or any other agent that loads from
~/.claude/skills/). New skills are picked up on startup. - Just ask Claude.
Skills auto-activate when your request matches the skill's description — no slash command needed. Trigger phrases live in the skill's own frontmatter; you can read them in the “What this skill does” section above.
Prefer to read the source first? Open on GitHub.
When Claude uses it
Search and download arXiv papers (no API key needed)
What this skill does
arXiv Paper Search and Download
Search and retrieve academic papers from arXiv using the free public REST API. No API key or authentication required.
When to Use
- User wants to find recent ML/AI/CS papers on a topic
- User wants to read the abstract of a specific paper
- User wants to download a paper PDF
- User wants to find papers by a specific author
- User wants to stay up-to-date on a research area
How to Use
1. Search papers by keyword
The arXiv API uses Atom XML — parse with PowerShell or Python.
$query = [Uri]::EscapeDataString("attention mechanism transformer")
$url = "http://export.arxiv.org/api/query?search_query=all:$query&start=0&max_results=5&sortBy=lastUpdatedDate&sortOrder=descending"
$resp = Invoke-RestMethod -Uri $url
$resp.feed.entry | ForEach-Object {
[PSCustomObject]@{
Title = $_.title
Authors = ($_.author | ForEach-Object { $_.name }) -join ", "
Date = $_.published
Id = $_.id
}
} | Format-Table -AutoSize
2. Search by category (cs.AI, cs.LG, stat.ML, etc.)
$cat = "cs.LG"
$query = [Uri]::EscapeDataString("large language models")
$url = "http://export.arxiv.org/api/query?search_query=cat:$cat+AND+all:$query&max_results=10&sortBy=submittedDate&sortOrder=descending"
$resp = Invoke-RestMethod -Uri $url
$resp.feed.entry | Select-Object title, published
3. Fetch a specific paper by arXiv ID
$arxivId = "2305.17333" # from URL: arxiv.org/abs/2305.17333
$url = "http://export.arxiv.org/api/query?id_list=$arxivId"
$resp = Invoke-RestMethod -Uri $url
$entry = $resp.feed.entry
Write-Host "Title: " $entry.title
Write-Host "Authors: " (($entry.author | ForEach-Object { $_.name }) -join ", ")
Write-Host "Abstract:" $entry.summary
4. Download a paper PDF
$arxivId = "2305.17333"
$pdfUrl = "https://arxiv.org/pdf/$arxivId.pdf"
$outPath = "C:\Users\<you>\Downloads\paper_$arxivId.pdf"
Invoke-WebRequest -Uri $pdfUrl -OutFile $outPath
Write-Host "Downloaded to $outPath"
5. Search papers with Python
import urllib.request, urllib.parse, xml.etree.ElementTree as ET
def search_arxiv(query, max_results=5, category="cs.LG"):
params = urllib.parse.urlencode({
"search_query": f"cat:{category} AND all:{query}",
"max_results": max_results,
"sortBy": "submittedDate",
"sortOrder": "descending"
})
url = f"http://export.arxiv.org/api/query?{params}"
resp = urllib.request.urlopen(url).read()
root = ET.fromstring(resp)
ns = {"a": "http://www.w3.org/2005/Atom"}
for entry in root.findall("a:entry", ns):
print(entry.find("a:title", ns).text.strip())
print(entry.find("a:id", ns).text.strip())
print()
search_arxiv("chain of thought reasoning", max_results=5)
6. Find papers by author
$author = [Uri]::EscapeDataString("Andrej Karpathy")
$url = "http://export.arxiv.org/api/query?search_query=au:$author&max_results=10&sortBy=submittedDate&sortOrder=descending"
$resp = Invoke-RestMethod -Uri $url
$resp.feed.entry | Select-Object title, published | Format-Table
Examples
"Find the 5 most recent papers on retrieval-augmented generation"
→ Use step 2 with query retrieval augmented generation and category cs.CL or cs.AI.
"Get me the abstract of paper 2305.17333" → Use step 3 with the arXiv ID.
"Download the Attention Is All You Need paper"
→ arXiv ID is 1706.03762. Use step 4 to download the PDF.
Cautions
- arXiv API rate limit is 3 requests per second — add a 1-second delay between calls for bulk operations
- Papers on arXiv are preprints and have not necessarily been peer-reviewed
- arXiv IDs changed format in 2007 — old IDs use
category/YYMMNNNformat; new ones useYYMM.NNNNN - PDF download uses the standard
arxiv.org/pdf/<id>.pdfURL — some papers have versioned PDFs atarxiv.org/pdf/<id>v1.pdf
Related skills
Claude API Helper
anthropics
Build, debug, and optimize Claude API applications with caching and model migration support.
Customer Health Scorer
alirezarezvani
Analyze customer accounts to predict churn risk and identify expansion opportunities.
CLAUDE.md Optimizer
daymade
Optimize your CLAUDE.md file for clarity, efficiency, and maintainability.
Phase Knowledge Quiz
rohitg00
Test your understanding of AI Engineering from Scratch course phases.