literature-search-arxiv — Claude Code skill: search papers on arXiv
Searches arXiv for papers and preprints, returns metadata and abstracts, and downloads full text as PDF, HTML or LaTeX source.
npx skills add google-deepmind/science-skills --skill literature-search-arxiv -a claude-code
npx skills add google-deepmind/science-skills --skill literature_search_arxiv -a claude-codeWhat literature-search-arxiv does
The skill ships three scripts. search_arxiv.py queries the arXiv API and returns a JSON array with id, title, summary, published, authors, pdf_url, primary_category, doi, journal_ref and comment. download_paper.py pulls the full text as PDF or HTML, and download_paper_source.py fetches the tar.gz with LaTeX sources. Queries accept field prefixes (au:, ti:, abs:), booleans and date filters.
Before the first run you need uv installed and on PATH. If .licenses/literature_search_arxiv_LICENSE.txt is missing from the workspace root, the skill asks you to read arXiv's API terms and writes a file recording that notice with a timestamp. Rate limit is one request every 3 seconds, and the scripts enforce it. So skip your own curl wrapper — it would walk straight past that limit.
Search output lands in stdout as one large JSON blob. Asking for 100+ results can blow past your context window, so start with --max_results 5, redirect to a file, and page with --start. HTML exists only for newer papers, and not every paper has source files. Extract archives into a fresh directory: mkdir paper_source && tar -xzf source.tar.gz -C paper_source.
What it helps with
- find papers on a topic and read the abstracts
- pull metadata for a batch of preprints into JSON
- download the PDF for a known arXiv ID
- grab the LaTeX source to inspect equations
- sort results by submission date and take the newest
Example prompts for the agent
- find arXiv papers on diffusion models, 5 results max
- download the PDF for 1706.03762 into attention.pdf
- fetch the LaTeX source for 2010.11645
How to install literature-search-arxiv
1Skills CLI (Vercel)
npx skills add google-deepmind/science-skills --skill literature-search-arxiv -a claude-codenpx skills add google-deepmind/science-skills --skill literature_search_arxiv -a claude-code2Manually: put the files in place
~/.claude/skills/literature_search_arxiv/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/literature_search_arxiv/
1Skills CLI (Vercel)
npx skills add google-deepmind/science-skills --skill literature_search_arxiv -a codex2Manually: put the files in place
.agents/skills/literature_search_arxiv/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add google-deepmind/science-skills --skill literature_search_arxiv -a cursor2Manually: put the files in place
.cursor/skills/literature_search_arxiv/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install google-deepmind/science-skills literature_search_arxiv2Manually: put the files in place
.github/skills/literature_search_arxiv/SKILL.md1Skills CLI (Vercel)
npx skills add google-deepmind/science-skills --skill literature_search_arxiv -a gemini-cli2Platform CLI
gemini skills install https://github.com/google-deepmind/science-skills --path skills/literature_search_arxivManually: put the files in place
.devin/skills/literature_search_arxiv/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add google-deepmind/science-skills --skill literature_search_arxiv -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about literature-search-arxiv
How do I install literature-search-arxiv in Claude?
Run npx skills add google-deepmind/science-skills --skill literature-search-arxiv -a claude-code. The skill file then sits at ~/.claude/skills/literature_search_arxiv/SKILL.md.
What does literature-search-arxiv do?
It searches arXiv for papers and preprints, returns metadata and abstracts as JSON, and downloads full text as PDF, HTML or a tar.gz of LaTeX sources.
What do I need before using it?
uv on PATH and a look at arXiv's API terms. The scripts handle rate limiting themselves at one request every 3 seconds, so you do not need to write your own API calls.
Source text
SKILL.md · Apache-2.0
---
name: literature-search-arxiv
description: >
Search for scientific papers, preprints, and publications on arXiv. Extract
metadata, abstracts, and download full-text PDFs or HTML versions of papers.
Use when the user asks to find research papers, literature, or specific arXiv
IDs.
---
# arXiv Search and Retrieval
## Prerequisites
1. **`uv`**: Read the `uv` skill and follow its Setup instructions to ensure
`uv` is installed and on PATH.
2. **User Notification**: If .licenses/literature_search_arxiv_LICENSE.txt does
not already exist in the workspace root directory then (1) prominently
notify the user to check the terms at
https://info.arxiv.org/help/api/index.html and to always check the license
of the papers retrieved by the skill for any restrictions, then (2) create
the file recording the notification text and timestamp.
## Core Rules
- **Terms of Use**: You MUST respect arXiv's Terms of Use.
- Maximum 1 request every 3 seconds.
- The provided utility scripts handle rate limiting automatically. Always
use these scripts rather than writing your own curl/python requests.
- If this skill is used, ensure this is mentioned in the output AND list the
URLs of all papers that were used in producing the output.
## Utility Scripts
**1. Search and Extract Metadata**
Search arXiv and return a clean JSON array of matching papers.
```bash
uv run scripts/search_arxiv.py --query "au:einstein AND ti:relativity" \
--max_results 5 2>/dev/null > /tmp/arxiv_search_results.json
```
> **Important**: The tool outputs a large JSON result to stdout. Requesting 100+
> results will produce a massive JSON that might exceed your context length.
> Limit `--max_results` (e.g., 5-10) or paginate carefully using `--start`.
> Always redirect output to a file and parse it separately, otherwise terminal
> output will be truncated.
*Returned Metadata:* JSON results include `id`, `title`, `summary`, `published`,
`authors`, `pdf_url`, `primary_category`, `doi`, `journal_ref`, and `comment`.
Note: the `doi` field only contains DOI information in case the paper has an
external DOI and if only an arXiv-issued DOI exists, this is DOI is not
returned.
*Options:*
- `--query`: Search string. See
[references/query_syntax.md](references/query_syntax.md) for advanced
syntax.
- `--id_list`: Comma-separated list of arXiv IDs to fetch directly (e.g.,
`1706.03762v5`).
- `--start`: Pagination offset (default 0).
- `--max_results`: Number of results to return (default 10).
- `--sort_by`: `relevance`, `lastUpdatedDate`, or `submittedDate`. (Use
`--sort_by submittedDate --sort_order descending` for the most recent
papers).
- `--sort_order`: `ascending` or `descending`.
**2. Download Paper (PDF or HTML)**
Download the full text of a paper to your local workspace for reading.
```bash
uv run scripts/download_paper.py --id 1706.03762 --format pdf --output attention.pdf
```
*Options:*
- `--id`: The arXiv ID (e.g., `1706.03762` or `1706.03762v5`).
- `--format`: `pdf` or `html`. Note: HTML is only available for newer papers.
- `--output`: Filepath to save the downloaded document.
> **Important**: when downloading papers, make sure you download them to a
> location where you do not overwrite other files and do not clutter existing
> directory structure.
**3. Download Paper Source (tar.gz)**
Download the LaTeX source files of a paper to your local workspace. Note that
not all papers have source available.
```bash
uv run scripts/download_paper_source.py --id 2010.11645 --output source.tar.gz
```
*Options:*
- `--id`: The arXiv ID (e.g., `2010.11645`).
- `--output`: Filepath to save the downloaded tar.gz file.
> **Caution**: Care should be exercised when untar'ing the downloaded file for
> security and to avoid cluttering your filesystem, as archives may contain many
> files or unexpected directory structures.
>
> **Safe Extraction Requirements**: NEVER extract directly into your working
> directory! Always extract into a dedicated new directory: `bash mkdir
> paper_source && tar -xzf source.tar.gz -C paper_source`
## Reference
- **Advanced Query Syntax**: See
[references/query_syntax.md](references/query_syntax.md) for prefixes (au,
ti, abs), booleans, and date filtering.
## Workflow
1. Search for papers using `search_arxiv.py`. Review the JSON summaries.
2. If full text is needed, use `download_paper.py` to fetch the PDF or HTML.
3. If downloading a PDF, verify the PDF is not empty or corrupted.
4. Read the downloaded file using standard file reading tools.
© google-deepmind · Apache-2.0 · google-deepmind/science-skills