Skip to main content
skill CX Codex

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.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
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-code
Open on GitHub

What 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-code
npx skills add google-deepmind/science-skills --skill literature_search_arxiv -a claude-code

2Manually: put the files in place

~/.claude/skills/literature_search_arxiv/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/literature_search_arxiv/

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

Similar skills

Everything for Science and research →

From the same set39

literature-search-openalex Queries the OpenAlex database to find research papers, download open-access PDFs, and collect citation metrics via a local CLI. Handy for resolving DOIs and tracking author publications. CX Codex +1 3,100installs pubmed-database Gives your agent a CLI into PubMed and PubMed Central: search papers, pull abstracts and full text, link publications to biological databases. CX Codex +1 2,700installs literature-search-europepmc Searches Europe PMC for scientific papers, downloads open-access full texts and PDFs, and pulls citation and reference lists. CX Codex +1 2,600installs literature-search-biorxiv Search bioRxiv and medRxiv preprints by DOI or date range. Use it to filter papers by category, author, or keywords. CX Codex +1 2,500installs workflow-skill-creator Turns a completed agent workflow into a reusable skill. Use it when you want to package a process that has already been worked through. CX Codex +1 2,400installs clinical-trials-database Queries ClinicalTrials.gov via REST API v2 to search studies by condition, drug, status, or phase. Saves filtered study data directly to JSON. CX Codex +1 2,400installs human-protein-atlas-database Retrieves semi-quantitative protein expression levels and subcellular localisation data from the Human Protein Atlas. Useful for validating human protein presence across tissues. CX Codex +1 2,200installs opentargets-database This skill gives your agent GraphQL access to the Open Targets Platform: target-disease associations, drug data and tractability scores. CX Codex +1 2,200installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor