Skip to main content
skill CX Codex

openalex — Claude Code skill: what it does, how to install

Searches academic papers via OpenAlex API to retrieve citation graphs, author affiliations, and funding records. Ideal for deep scientific literature discovery.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add wanshuiyin/Auto-claude-code-research-in-sleep --skill openalex -a claude-code
Open on GitHub

What openalex does

The skill queries the OpenAlex catalog of 250M+ works via the openalex_fetch.py helper script. It returns 10 results by default. Relevance sorting is standard. Each entry includes venue, citation count, open access status, and direct PDF links when available.

You can customize queries using argument flags. Filter by publication year spans, isolate journal articles or preprints, enforce citation thresholds, or switch sorting to publication date. The skill also retrieves specific papers directly by DOI or OpenAlex work ID.

Because the skill lacks an inline fallback, it terminates with an error if Python 3.7+ or the requests library is missing. Basic queries run without authentication, though configuring OPENALEX_EMAIL in .claude/.env routes requests through OpenAlex's polite pool for faster responses.

What it helps with

  • search academic papers across an open citation graph without paywalls
  • filter research by publication year, work type, and citation thresholds
  • look up paper metadata by DOI or OpenAlex work ID
  • retrieve funding sources and institutional author affiliations

Example prompts for the agent

  • /openalex "reinforcement learning" — max: 20 — sort: citations
  • /openalex "transformer attention" — year: 2023- — open-access
  • /openalex work "10.1109/TWC.2024.1234567"

How to install openalex

1Skills CLI (Vercel)

npx skills add wanshuiyin/Auto-claude-code-research-in-sleep --skill openalex -a claude-code

2Manually: put the files in place

~/.claude/skills/openalex/SKILL.md

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

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about openalex

How to install openalex in Claude Code?

Run npx skills add wanshuiyin/Auto-claude-code-research-in-sleep --skill openalex -a claude-code in your terminal. You also need Python 3.7+ with the requests library installed via pip install requests.

What does the openalex skill do?

It queries the OpenAlex API for research matching your query, DOI, or work ID, then displays authors, citations, affiliations, and open access links in a structured summary.

Is an API key required to use openalex?

No, standard queries work without an API key. You can optionally add OPENALEX_EMAIL or OPENALEX_API_KEY to .claude/.env for faster responses through the polite pool.

Source text

SKILL.md · MIT
---
name: openalex
description: Search academic papers via OpenAlex API for open citation data, institutional affiliations, and funding information. Use when user says "openalex search", "search openalex", "open citation graph", or wants comprehensive academic metadata beyond arXiv/Semantic Scholar.
argument-hint: "[search-query]"
allowed-tools: Bash(*), Read, Write
---

# OpenAlex Academic Search

Search query: $ARGUMENTS

## Role & Positioning

This skill uses OpenAlex as a **comprehensive open academic graph** source:

| Skill | Source | Best for |
|-------|--------|----------|
| `/arxiv` | arXiv API | Latest preprints, cutting-edge unrefereed work |
| `/semantic-scholar` | Semantic Scholar API | Published venue papers (IEEE, ACM, Springer) with citation counts |
| `/openalex` | OpenAlex API | **Open citation graph, institutional affiliations, funding data, comprehensive metadata** |
| `/deepxiv` | DeepXiv CLI | Layered reading: search, brief, section map, section reads |
| `/exa-search` | Exa API | Broad web search: blogs, docs, news, companies, research papers |
| `/gemini-search` | Gemini MCP / CLI | AI-powered broad literature discovery |

Use OpenAlex when you want:
- **Open citation data** — fully open citation graph (no API key required for basic use)
- **Institutional affiliations** — author institutions and collaborations
- **Funding information** — NSF, NIH, and other funding sources
- **Comprehensive metadata** — topics, keywords, abstract, open access status
- **Cross-database coverage** — indexes 250M+ works from multiple sources

## Constants

- **MAX_RESULTS = 10** — Default number of results. Override with `— max: 20`.
- **DEFAULT_SORT = relevance** — Sort by relevance. Override with `— sort: citations` or `— sort: date`.
- **OPENALEX_FETCHER** — canonical name `openalex_fetch.py`, resolved per
  [`shared-references/integration-contract.md`](../shared-references/integration-contract.md) §2
  (Policy D1 — standalone `/openalex` has no documented inline fallback,
  so unresolved helper terminates with an explicit error).

> Overrides (append to arguments):
> - `/openalex "topic" — max: 20` — return up to 20 results
> - `/openalex "topic" — year: 2023-` — papers from 2023 onward
> - `/openalex "topic" — year: 2020-2023` — papers from 2020 to 2023
> - `/openalex "topic" — type: article` — only journal articles
> - `/openalex "topic" — type: preprint` — only preprints
> - `/openalex "topic" — open-access` — only open access papers
> - `/openalex "topic" — min-citations: 50` — minimum 50 citations
> - `/openalex "topic" — sort: citations` — sort by citation count (descending)
> - `/openalex "topic" — sort: date` — sort by publication date (newest first)

## Setup

### Prerequisites

1. **Python 3.7+** with `requests` library:
   ```bash
   pip install requests
   ```

2. **Optional: API keys** — Create `.claude/.env` in project root:
   ```bash
   # Copy from template
   cp .claude/.env.example .claude/.env
   
   # Edit and add your keys
   # .claude/.env
   OPENALEX_API_KEY=your-key-here
   [email protected]
   ```
   
   Claude Code automatically loads `.claude/.env` as environment variables.

3. **Get API keys** (optional but recommended):
   - **OpenAlex API key**: Free tier $1/day (10,000 list calls, 1,000 search calls) from [openalex.org](https://openalex.org/)
   - **Email for polite pool**: Faster response times (no registration needed)

### Verify Setup

```bash
python3 "$OPENALEX_FETCHER" search "machine learning" --max 3
```

(Resolve `$OPENALEX_FETCHER` via the canonical chain first — see Step 2 below.)

## Workflow

### Step 1: Parse Arguments

Parse `$ARGUMENTS` for:
- **query**: The research topic (required)
- **max**: Override MAX_RESULTS
- **year**: Publication year filter (e.g., `2023-`, `2020-2023`)
- **type**: Work type filter (`article`, `preprint`, `book`, `book-chapter`, `dataset`, `dissertation`)
- **open-access**: Only include open access papers
- **min-citations**: Minimum citation count threshold
- **sort**: Sort order (`relevance`, `citations`, `date`)

### Step 2: Locate Script

Resolve `$OPENALEX_FETCHER` via the canonical strict-safe chain (see
[`shared-references/integration-contract.md`](../shared-references/integration-contract.md) §2).
Policy D1: there is no native inline fallback for OpenAlex
(retrieval requires the `requests` SDK + optional API key — the
fetcher script encapsulates pagination, throttling, and per-source
parameters), so unresolved helper terminates with explicit remediation.

```bash
cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" || exit 1
if [ -z "${ARIS_REPO:-}" ] && [ -f .aris/installed-skills.txt ]; then
    ARIS_REPO=$(awk -F'\t' '$1=="repo_root"{print $2; exit}' .aris/installed-skills.txt 2>/dev/null) || true
fi
if [ -z "${ARIS_REPO:-}" ] && [ -f "$HOME/.aris/repo" ]; then
    ARIS_REPO=$(cat "$HOME/.aris/repo" 2>/dev/null) || true
fi
OPENALEX_FETCHER=".aris/tools/openalex_fetch.py"
[ -f "$OPENALEX_FETCHER" ] || OPENALEX_FETCHER="tools/openalex_fetch.py"
[ -f "$OPENALEX_FETCHER" ] || { [ -n "${ARIS_REPO:-}" ] && OPENALEX_FETCHER="$ARIS_REPO/tools/openalex_fetch.py"; }
[ -f "$OPENALEX_FETCHER" ] || {
  echo "ERROR: openalex_fetch.py not resolved at .aris/tools/, tools/, \$ARIS_REPO/tools/, or via ~/.aris/repo." >&2
  echo "       Fix: rerun bash tools/install_aris.sh or smart_update.sh (refreshes ~/.aris/repo), export ARIS_REPO, or copy the helper to tools/." >&2
  echo "       Also ensure 'requests' is installed: pip install requests" >&2
  exit 1
}
```

### Step 3: Execute Search

**Basic search:**
```bash
python3 "$OPENALEX_FETCHER" search "QUERY" --max 10
```

**With filters:**
```bash
python3 "$OPENALEX_FETCHER" search "QUERY" --max 10 \
  --year 2023- \
  --type article \
  --open-access \
  --min-citations 20 \
  --sort citations
```

**Get specific work by DOI:**
```bash
python3 "$OPENALEX_FETCHER" work "10.1109/TWC.2024.1234567"
```

**Get specific work by OpenAlex ID:**
```bash
python3 "$OPENALEX_FETCHER" work "W2741809807"
```

### Step 4: Parse Results

The script returns structured JSON with:
- `title`: Paper title
- `authors`: List of author names
- `publication_year`: Year published
- `venue`: Journal/conference name
- `venue_type`: Type of venue (journal, repository, conference, etc.)
- `cited_by_count`: Number of citations
- `is_oa`: Boolean for open access status
- `oa_status`: Open access type (gold, green, bronze, hybrid, closed)
- `oa_url`: Direct PDF link if available
- `doi`: DOI identifier
- `openalex_id`: OpenAlex work ID
- `abstract`: Full abstract text
- `topics`: Top 3 research topics
- `keywords`: Top 5 keywords
- `type`: Work type (article, preprint, etc.)

### Step 5: Present Results

Format results as a structured table:

```
| # | Title | Venue | Year | Citations | OA | Summary |
|---|-------|-------|------|-----------|----|---------| 
| 1 | ... | IEEE TWC | 2024 | 156 | ✓ | ... |
| 2 | ... | NeurIPS | 2023 | 89 | ✓ | ... |
```

For each paper, also show:
- **DOI**: Canonical identifier
- **OpenAlex ID**: For cross-reference
- **Open Access**: Status (gold/green/bronze/hybrid/closed) and PDF link
- **Topics**: Top research topics
- **Abstract**: First 200 characters or full text

### Step 6: Offer Follow-up

After presenting results, suggest:

```text
/semantic-scholar "DOI:..."     — get S2 citation context and related papers
/arxiv "arXiv:XXXX.XXXXX"      — fetch arXiv preprint if available
/research-lit "topic" — sources: openalex, semantic-scholar  — combined multi-source review
/novelty-check "idea"          — verify novelty against literature
```

## Key Rules

- **OpenAlex is fully open** — no API key required for basic use, but recommended for higher rate limits
- **Comprehensive metadata** — OpenAlex provides richer metadata than most sources (institutions, funding, topics)
- **Citation data is open** — unlike Semantic Scholar, all citation data is freely accessible
- **Rate limits**: Without API key, very limited (~$0.01/day). With free API key: 10,000 list calls/day, 1,000 search calls/day.
- **Polite pool**: Set `OPENALEX_EMAIL` environment variable for faster response times
- **Cross-reference with other sources**: OpenAlex indexes papers from arXiv, PubMed, Crossref, etc. — use DOI/arXiv ID to cross-reference
- If OpenAlex API is unreachable or rate-limited, suggest using `/semantic-scholar`, `/arxiv`, or `/research-lit "topic" — sources: web` as alternatives.

## OpenAlex vs Other Sources

| Feature | OpenAlex | Semantic Scholar | arXiv |
|---------|----------|------------------|-------|
| **Coverage** | 250M+ works | 200M+ papers | 2.4M+ preprints |
| **Citation data** | Fully open | Partially open | None |
| **Institutions** | ✓ Full affiliations | ✓ Limited | ✗ |
| **Funding** | ✓ NSF, NIH, etc. | ✗ | ✗ |
| **Open access** | ✓ Full OA status | ✓ PDF links | ✓ All papers |
| **API key** | Optional (free) | Optional (free) | Not required |
| **Rate limits** | 1,000 searches/day (free key) | Unknown | 1 req/3s |
| **Abstract** | ✓ Full text | ✓ TLDR | ✓ Full text |
| **Best for** | Comprehensive metadata, institutions, funding | Citation counts, venue info | Latest preprints |

**When to use OpenAlex over S2:**
- Need institutional affiliation data
- Need funding information
- Want fully open citation graph
- Need comprehensive topic/keyword metadata
- Working with non-CS fields (OpenAlex covers all disciplines)

**When to use S2 over OpenAlex:**
- Need real-time citation counts (S2 updates faster)
- Need "highly influential citations" metric
- Need paper recommendations
- CS/AI-focused research (S2 has better CS coverage)

© wanshuiyin · MIT · wanshuiyin/Auto-claude-code-research-in-sleep

Similar skills

Everything for Science and research →

From the same set78

experiment-queue Orchestrates ML experiments on remote SSH GPU servers. Manages OOM retries, cleans stale screen sessions, and coordinates multi-seed wave execution. CX Codex +1 437installs overleaf-sync Keeps a local paper directory and an Overleaf project in sync, so collaborators edit in the web UI while ARIS audits run on the local copy. CX Codex +1 441installs paper-illustration-image2 Generates publication-quality academic figures via a local Codex app-server bridge. It uses Claude for planning and visual review while offloading raster rendering to Codex. CX Codex +1 439installs qzcli A skill that lets your agent drive GPU compute jobs on the 启智 platform through qzcli, a kubectl-style CLI. CX Codex +1 426installs kill-argument Two fresh reviewers take turns on your paper: one writes the strongest possible rejection, the other defends it point by point. Run it before submitting a theory paper. CX Codex +1 417installs paper-talk Turns a finished paper into a full talk package: slide outline, Beamer and PPTX, speaker notes, talk script and claim checks. CX Codex +1 409installs slides-polish This skill runs a page-by-page review over a finished deck and fixes fonts, text-frame overflow and layout drift. Handy when the slides are nearly done but look uneven. CX Codex +1 407installs gemini-search Searches research papers through Gemini by decomposing topics into sub-problems and aliases. Useful when standard keyword queries miss relevant literature. CX Codex +1 407installs

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