arxiv
Skill54 starsChanged 5 months agoMITView on GitHub
Search, download, and summarize academic papers from arXiv. Use when user says "search arxiv", "download paper", "fetch arxiv", "arxiv search", "get paper pdf", or wants to find and save papers from arXiv to the local paper library.
43 other projects use a version of this, 8 of them edited.
Adopted by
Most recently taken up by
- ashleysbrain/skillstheir own version, first seen Nov 8, 2026
- NilsHellwig/acl-paper-skillstheir own version, first seen Nov 8, 2026
- HeteroCat/heterocat-skillstheir own version, first seen Nov 8, 2026
- delorenj/skillstheir own version, first seen Nov 7, 2026
- ethosagent/ethostheir own version, first seen Nov 3, 2026
- rakaarwaky/agents-arwakytheir own version, first seen Nov 1, 2026
Used with
Projects with it also use competitor-news-monitor, p5js and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
aivrarSkillcompetitor-news-monitor
Watch named companies for material news; cited digests.
Also in 7 projects that use this
mae616Skillp5js
p5.js(クリエイティブコーディング)のProcessing由来「コードでスケッチ」思想を軸に、setup/drawループ・座標系・インタラクション・パフォーマンス最適化を整理する。p5.js、Processing、クリエイティブコーディング、ジェネラティブアート、インタラクティブ表現、ビジュアルプログラミング、Canvas描画、パーティクル、フラクタル、ノイズ表現に関する相談で必ず使うこと。ユーザーが「コードでアート」「動くビジュアル」「インタラクティブな描画」と言った場合にも適用する。
Also in 13 projects that use this
Tommy-ywSkillsongwriting-and-ai-music
Songwriting craft, AI music generation prompts (Suno focus), parody/adaptation techniques, phonetic tricks, and lessons learned. These are tools and ideas, not rules. Break any of them when the art calls for it.
Also in 12 projects that use this
john-data-chenSkillteams-meeting-pipeline
Operate the Teams meeting summary pipeline via Hermes CLI — summarize meetings, inspect pipeline status, replay jobs, manage Microsoft Graph subscriptions.
Also in 9 projects that use this
math-incSkillfindmy
Track Apple devices and AirTags via FindMy.app on macOS using AppleScript and screen capture.
Also in 13 projects that use this
math-incSkillheartmula
Set up and run HeartMuLa, the open-source music generation model family (Suno-like). Generates full songs from lyrics + tags with multilingual support.
Also in 7 projects that use this
- +2 more from math-inc
Other versions43 projects use a version of this.
Word for word · 0
None found.
Edited · 8
- wanshuiyin/Auto-claude-code-research-in-sleep★ 19k41% same
- zjunlp/Mechanist★ 7557% same
- Chanw-research/claude-code-paper-writing★ 4244% same
- sjtuytc/ResearchMathAgent★ 3542% same
- Yusong-Enceladus/claude-skills★ 855% same
- raja21068/AutoResearch★ 244% same
- Shri-Phnx/claude-skills★ 235% same
- talhaMah56/claude_skills★ 041% same
Wrote their own version · 35
- NousResearch/hermes-agent★ 262ksame name
- math-inc/OpenGauss★ 1.3ksame name
- ZimoLiao/scholaraio★ 585same name
- Tommy-yw/RunbookHermes★ 546same name
- aivrar/portable-hermes-agent★ 239same name
- RedWoodOG/Hermes-Desktop★ 177same name
- wundercorp/loki★ 28same name
- ethosagent/ethos★ 22same name
- delorenj/skills★ 17same name
- gquthier/CLAWG★ 16same name
25 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository27 other files it gives its agents.
- alphaxivSkill
- doc-coauthoringSkill
- docxSkill
- drawio-diagramSkill
- figure-descriptionSkill
- formula-derivationSkill
- grant-proposalSkill
- mmx-cliSkill
- mock-reviewSkill
- novelty-checkSkill
- paper-readingSkill
- pdfSkill
- phd-benchmark-paper-templateSkill
- phd-figure-designerSkill
- phd-idea-evaluatorSkill
- phd-intro-drafterSkill
- phd-pre-submission-reviewerSkill
- phd-tech-paper-templateSkill
- phd-vibe-research-workflowSkill
- pptxSkill
- proof-writerSkill
- research-litSkill
- research-survey-loopSkill
- research-wikiSkill
- theme-factorySkill
- update-source-mapSkill
- xlsxSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
14 rules. 0 are common, 11 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 43 edited versions we read keep these.
11
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Search topic or arXiv paper ID: $ARGUMENTS
- Very specific: line 13
MAX_RESULTS = 10: - Default number of search results.
- Very specific: line 35
If the argument matches an arXiv ID pattern (YYMM.NNNNN or category/NNNNNNN), skip broad search and fetch that paper directly.
- Distinctive: line 39
Prefer the helper bundled with this skill.
- Distinctive: line 45
When the skill is being inspected or tested from this repository before installation, run:
- Distinctive: line 51
If the helper script is unavailable in an unusual install, fall back to the inline arXiv Atom API snippets below.
- Distinctive: line 109
When a single paper ID is requested:
- Distinctive: line 119
When download is requested, for each paper ID:
- Distinctive: line 187
Always show the arXiv ID prominently for citations and reproducibility.
- Distinctive: line 188
Verify downloaded PDFs are larger than 10 KB.
- Distinctive: line 189
Never overwrite an existing PDF at the same path.
- Very specific: line 191
Create PAPER_DIR automatically when downloading.
- Distinctive: line 192
Keep all task output in stdout and user-requested PDF files only.
- Distinctive: line 193
If the arXiv API is unreachable, report the error clearly and fall back to direct web results when possible.
“Common” is measured: kept by at least 6 in 10 of the 43 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
arXiv Paper Search & Download
Search topic or arXiv paper ID: $ARGUMENTS
Constants
- PAPER_DIR - Local directory to save downloaded PDFs. Default:
papers/in the current project directory. - MAX_RESULTS = 10 - Default number of search results.
- FETCH_SCRIPT -
scripts/arxiv_fetch.pyinside this skill directory. When running from this repository instead of an installed skill, usearxiv/arxiv/scripts/arxiv_fetch.py.
Overrides can be appended to arguments:
/arxiv "attention mechanism" - max: 20- return up to 20 results./arxiv "2301.07041" - download- download a specific paper by ID./arxiv "query" - dir: literature/- save PDFs to a custom directory./arxiv "query" - download: all- download PDFs for all listed results.
Workflow
Step 1: Parse Arguments
Parse $ARGUMENTS for directives:
- Query or ID: main search term or a bare arXiv ID such as
2301.07041orcs/0601001. - max: N: overrideMAX_RESULTS.- dir: PATH: overridePAPER_DIR.- download: download the first result's PDF after listing.- download: all: download PDFs for all results.
If the argument matches an arXiv ID pattern (YYMM.NNNNN or category/NNNNNNN), skip broad search and fetch that paper directly.
Step 2: Locate the Helper Script
Prefer the helper bundled with this skill. Resolve it relative to the skill directory, not the user's current project:
python scripts/arxiv_fetch.py --helpWhen the skill is being inspected or tested from this repository before installation, run:
python arxiv/arxiv/scripts/arxiv_fetch.py --helpIf the helper script is unavailable in an unusual install, fall back to the inline arXiv Atom API snippets below.
Step 3: Search arXiv
With the helper script:
python scripts/arxiv_fetch.py search "QUERY" --max MAX_RESULTSFallback inline Python:
python - <<'PYEOF'
import json
import urllib.parse
import urllib.request
import xml.etree.ElementTree as ET
NS = "http://www.w3.org/2005/Atom"
query = urllib.parse.quote("QUERY")
url = (f"http://export.arxiv.org/api/query"
f"?search_query={query}&start=0&max_results=MAX_RESULTS"
f"&sortBy=relevance&sortOrder=descending")
with urllib.request.urlopen(url, timeout=30) as r:
root = ET.fromstring(r.read())
papers = []
for entry in root.findall(f"{{{NS}}}entry"):
aid = entry.findtext(f"{{{NS}}}id", "").split("/abs/")[-1].split("v")[0]
title = (entry.findtext(f"{{{NS}}}title", "") or "").strip().replace("\n", " ")
abstract = (entry.findtext(f"{{{NS}}}summary", "") or "").strip().replace("\n", " ")
authors = [a.findtext(f"{{{NS}}}name", "") for a in entry.findall(f"{{{NS}}}author")]
published = entry.findtext(f"{{{NS}}}published", "")[:10]
cats = [c.get("term", "") for c in entry.findall(f"{{{NS}}}category")]
papers.append({
"id": aid,
"title": title,
"authors": authors,
"abstract": abstract,
"published": published,
"categories": cats,
"pdf_url": f"https://arxiv.org/pdf/{aid}.pdf",
"abs_url": f"https://arxiv.org/abs/{aid}",
})
print(json.dumps(papers, ensure_ascii=False, indent=2))
PYEOFPresent results as a compact table:
| # | arXiv ID | Title | Authors | Date | Category |
|---|------------|---------------------|----------------|------------|----------|
| 1 | 2301.07041 | Attention Is All... | Vaswani et al. | 2017-06-12 | cs.LG |Step 4: Fetch Details for a Specific ID
When a single paper ID is requested:
python scripts/arxiv_fetch.py search "id:ARXIV_ID" --max 1Display title, all authors, categories, full abstract, published date, PDF URL, and abstract URL.
Step 5: Download PDFs
When download is requested, for each paper ID:
python scripts/arxiv_fetch.py download ARXIV_ID --dir PAPER_DIRThe helper script:
- Creates
PAPER_DIRautomatically. - Saves old-style IDs such as
cs/0601001ascs_0601001.pdf. - Skips existing PDFs instead of overwriting them.
- Rejects files smaller than 10 KB because they are likely error pages.
- Sleeps for 1 second after downloads and retries once after 5 seconds on HTTP 429.
Fallback inline Python:
mkdir -p PAPER_DIR && python -c "
import pathlib
import sys
import urllib.request
out = pathlib.Path('PAPER_DIR/ARXIV_ID.pdf')
if out.exists():
print(f'Already exists: {out}')
sys.exit(0)
req = urllib.request.Request(
'https://arxiv.org/pdf/ARXIV_ID.pdf',
headers={'User-Agent': 'arxiv-skill/1.0'},
)
with urllib.request.urlopen(req, timeout=60) as r:
data = r.read()
if len(data) < 10240:
raise SystemExit(f'File too small: {len(data)} bytes')
out.write_bytes(data)
print(f'Downloaded: {out} ({out.stat().st_size // 1024} KB)')
"Step 6: Summarize
For each paper:
## [Title]
- **arXiv**: [ID] - [abs_url]
- **Authors**: [full author list]
- **Date**: [published]
- **Categories**: [cs.LG, cs.AI, ...]
- **Abstract**: [full abstract]
- **Key contributions**:
- [contribution 1]
- [contribution 2]
- [contribution 3]
- **Local PDF**: papers/[ID].pdf (if downloaded)Step 7: Final Output
Summarize what was done:
Found N papers for "query".Downloaded: papers/2301.07041.pdf (842 KB)for each download.- Any warnings, including rate limits, API errors, tiny files, or already-existing PDFs.
Key Rules
- Always show the arXiv ID prominently for citations and reproducibility.
- Verify downloaded PDFs are larger than 10 KB.
- Never overwrite an existing PDF at the same path.
- Handle both new (
2301.07041) and old (cs/0601001) arXiv ID formats. - Create
PAPER_DIRautomatically when downloading. - Keep all task output in stdout and user-requested PDF files only. Do not create logs, caches, or debug JSON as skill results.
- If the arXiv API is unreachable, report the error clearly and fall back to direct web results when possible.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

