| name | fetch-arxiv |
| description | Safely find and fetch arXiv papers using the structured arXiv API and the /html/ endpoint. Use instead of guessing arXiv URLs (which often 404). Invoke with an arXiv ID, an arXiv URL, or a search query like "GLM-4.5 technical report". |
Fetch arXiv Paper
Safely fetch arXiv papers by first confirming the ID exists via the arXiv API,
then fetching the /html/ endpoint. This is the pi-native replacement for the
original skill's WebSearch + WebFetch flow.
All scripts live in the deep-research skill:
~/.pi/agent/skills/deep-research/scripts/arxiv_search.py — arXiv API search (HTTPS + Atom XML, no key)
~/.pi/agent/skills/deep-research/scripts/web_fetch.py — fetch URL → local text file (converts HTML→text)
Arguments
The user provides one of:
- An arXiv ID:
2505.09388 (or 2505.09388v2)
- An arXiv URL:
https://arxiv.org/abs/2505.09388
- A search query:
GLM-4.5 technical report
Instructions
If given an arXiv ID or URL
- Extract the ID (strip
vN, strip the abs//html//pdf/ prefix).
- Confirm + get metadata:
python3 ~/.pi/agent/skills/deep-research/scripts/arxiv_search.py --id <ID>
- Fetch the full HTML version to a local text file:
python3 ~/.pi/agent/skills/deep-research/scripts/web_fetch.py "https://arxiv.org/html/<ID>" "<org>/<model>/paper_<ID>.txt"
If web_fetch reports "No HTML version", fall back to the abstract page:
python3 ~/.pi/agent/skills/deep-research/scripts/web_fetch.py "https://arxiv.org/abs/<ID>" "<org>/<model>/paper_<ID>.txt"
read the saved text file and extract the relevant sections.
If given a search query
- Search the arXiv API:
python3 ~/.pi/agent/skills/deep-research/scripts/arxiv_search.py "<query>" 5
- Extract arXiv IDs + titles from the numbered output.
- Report found papers with titles and IDs. Fetch the most relevant one (or ask
the user which) using the ID flow above.
Extraction prompt (apply after read-ing the fetched file)
Extract: (1) Paper title and authors, (2) Abstract, (3) Key methodology sections
relevant to the target model, (4) Architecture details, (5) Training methodology,
(6) Benchmark results with specific numbers. Focus on NOVEL contributions.
Report specific section numbers for important claims (e.g. "Section 3.2 describes…").
NEVER
- Guess arXiv
/html/ URLs without confirming the ID exists (use arxiv_search.py)
- Use the
/pdf/ endpoint (not parseable)
- Use the
/abs/ endpoint for full content (abstract only — it's only a fallback when /html/ is unavailable)
Output
Report:
- Paper title and arXiv ID
- Key findings relevant to the model research
- Specific section numbers for important claims
- The local path of the saved text file (so it can be re-read later without re-fetching)