skillZs
★ LIVE SKILL TAGS ★
>>> LIVE SKILLS INDEX <<<
* OPEN SOURCE *
NO LOGIN, NO TRACKING
※ REAL INSTALL DATA ※
← back to all skills
dsebastien/ai-skill-scholar126 installs

scholar-search

Search scholarly works across arXiv, conferences, journals, and books via OpenAlex. Returns citation counts, reconstructed abstracts, venue, open-access PDF links, and external IDs (arXiv/DOI/PMID). No API key required. Use when the user says "search scholar", "search papers", "find papers with citations", "papers by author", "cross-discipline search", or "papers from <venue>". Complements arxiv-search (preprints-only).

How do I install this agent skill?

npx skills add https://github.com/dsebastien/ai-skill-scholar --skill scholar-search
view source ↗

Is this agent skill safe to install?

  • Gen Agent Trust Hubpass

    This skill allows searching for scholarly papers via the OpenAlex API. It uses standard Python libraries, includes rate-limiting logic, and communicates only with a recognized scholarly data service.

  • Socketpass

    No alerts

  • Snykwarn

    Risk: MEDIUM · 1 issue

What does this agent skill do?

Scholar Search

Search OpenAlex — an open catalog of 250M+ scholarly works — for papers across every major venue (not just arXiv). Returns structured JSON including citation counts, venue, reconstructed abstracts, and external IDs linking to arXiv / DOI / PubMed.

Why OpenAlex (not Semantic Scholar)

Both cover roughly the same data. OpenAlex wins on:

  • No API key required. The free public endpoint just works.
  • Generous rate limits. 10 req/sec anonymous, higher in the polite pool.
  • Actually usable at scale. Semantic Scholar's public tier is shared and 429s are constant.

Why this over arxiv-search

arxiv-searchscholar-search
Preprintsyesyes
Conferences (ICLR, NeurIPS, ACL, ...)noyes
Journalsnoyes
Books, chaptersnoyes
Citation countsnoyes
Venue filteringnoyes
Concept/topic tagsnoyes

Use both together when doing a broad review (via literature-review).

Usage

# Basic query
python3 scripts/scholar_search.py "mechanistic interpretability" --limit 25

# Year + venue filter
python3 scripts/scholar_search.py "sparse autoencoders" \
    --year 2024-2026 --venue "ICLR" --limit 30

# Citation floor (quality filter)
python3 scripts/scholar_search.py "scaling laws" --min-citations 50 --limit 20

# Open-access only (when you want readable papers)
python3 scripts/scholar_search.py "mixture of experts" --open-access --limit 20

# Concept filter (uses OpenAlex's topic taxonomy)
python3 scripts/scholar_search.py "alignment" \
    --concepts "Machine learning" --limit 20

Flags:

  • --limit N — max results (1-200; default 25)
  • --year YYYY or YYYY-YYYY — publication year filter
  • --venue NAME — case-insensitive partial match on venue name
  • --concepts NAME — OpenAlex concept (e.g. Machine learning, Computer vision)
  • --min-citations N — quality floor
  • --open-access — only works with a public PDF

Output JSON shape (per result):

{
  "paper_id": "W4395065622",
  "openalex_url": "https://openalex.org/W4395065622",
  "title": "...",
  "authors": ["Alice", "Bob"],
  "year": 2024,
  "venue": "ICLR 2024",
  "work_type": "article",
  "citation_count": 150,
  "reference_count": 42,
  "abstract": "...",
  "concepts": ["Interpretability", "Machine learning"],
  "arxiv_id": "2404.14082",
  "doi": "10.48550/arxiv.2404.14082",
  "is_open_access": true,
  "open_access_pdf": "https://arxiv.org/pdf/2404.14082",
  "landing_url": "http://arxiv.org/abs/2404.14082"
}

Polite pool (optional)

For heavy use, join OpenAlex's polite pool by setting an email:

export OPENALEX_EMAIL="you@example.com"

Priority routing + higher effective rate limits. No registration needed — the email just has to be valid so they can reach you if your traffic misbehaves.

Workflow

1. Parse intent

  • "find papers on X" → basic query
  • "high-citation papers on X" → add --min-citations 50+
  • "recent papers on X" → --year 2024-2026
  • "papers from venue Y" → --venue "ICLR"
  • "open access only" → --open-access

2. Run the search

Default --limit 25. Bump to 50-100 for broad reviews. OpenAlex is fast, so larger pages are fine.

3. Present results

Compact table: citation count | year | venue | authors | title | first-sentence-of-abstract. Sort by citation count unless the user asked for recency.

OpenAlex has no TLDR field (like Semantic Scholar did). Use the first ~50 words of the reconstructed abstract for fast screening instead.

4. Offer handoffs

  • "Analyze paper X" → hand off to arxiv-analyze (if arxiv_id present) or fetch open_access_pdf directly
  • "Who cites this?" / "What does this cite?" → hand off to scholar-citations
  • "Literature review" → hand off to literature-review

Token efficiency

  • 25 results ≈ 8K-15K tokens (abstracts dominate). Override --select via a future flag for screening-only passes.
  • OpenAlex abstracts are "inverted index" format server-side; this script reconstructs them to normal prose on the way through.

Rate limits

  • Anonymous: 10 req/sec, 100k/day across shared pool
  • Polite pool (with OPENALEX_EMAIL): same limits but higher priority + fewer throttling events

Script self-throttles at 5 req/sec per process (shared via a cooldown file in ~/.cache/ai-skill-scholar/).

Hard rules

  • No key-scraping: never prompt for an API key. OpenAlex doesn't have one; OPENALEX_EMAIL is optional and documented.
  • Don't hammer: the 5 req/sec throttle is load-bearing. Don't remove it.
  • Abstracts can be missing: OpenAlex doesn't always have them. Report as empty, don't fabricate.

Requirements

  • Python 3.11+ (stdlib only)
  • Internet access to api.openalex.org
  • Optional: OPENALEX_EMAIL env var for polite-pool access

Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.

<a href="https://skillzs.dev/skills/dsebastien/ai-skill-scholar/scholar-search">View scholar-search on skillZs</a>