scholar-search
Skill16 starsChanged 7 months agoMITView on GitHub
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).
4 other projects use a version of this.
Adopted by
Most recently taken up by
- zedxter/utility-belttheir own version, first seen Nov 1, 2026
- luffysolution-svg/omnischolartheir own version, first seen Sep 10, 2026
- liner-engineering/liner-claude-plugintheir own version, first seen Jun 10, 2026
- baofeng-tech/agent-skills-sotheir own version, first seen Apr 28, 2026
Other versions4 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 4
- luffysolution-svg/omnischolar★ 4same name
- zedxter/utility-belt★ 4same name
- baofeng-tech/agent-skills-so★ 0same name
- liner-engineering/liner-claude-plugin★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository2 other files it gives its agents.
- literature-reviewSkill
- scholar-citationsSkill
The file
We split this skill into the rules it gives an agent
4 rules. 0 are common, 1 is distinctive, and 3 are very specific to this project.
0
Common
Most of the 4 edited versions we read keep these.
1
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 10
Search OpenAlex — an open catalog of 250M+ scholarly works — for papers across every major venue (not just arXiv).
- Very specific: line 32
Use both together when doing a broad review (via literature-review).
- Very specific: line 106
Default --limit 25. Bump to 50-100 for broad reviews.
- Very specific: line 132
No key-scraping: never prompt for an API key.
“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
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-search | scholar-search | |
| Preprints | yes | yes |
| Conferences (ICLR, NeurIPS, ACL, ...) | no | yes |
| Journals | no | yes |
| Books, chapters | no | yes |
| Citation counts | no | yes |
| Venue filtering | no | yes |
| Concept/topic tags | no | yes |
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 20Flags:
--limit N— max results (1-200; default 25)--year YYYYorYYYY-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_idpresent) or fetchopen_access_pdfdirectly - "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
--selectvia 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_EMAILis 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_EMAILenv var for polite-pool access
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

