A practical AI skill for searching papers from Elsevier/Scopus and then downloading full text by DOI/title with this strategy:
- Use Scopus to get clean metadata (DOI, title, year, source, cited count).
- Try download via Unpaywall first.
- Optionally use Sci-Hub CLI as a fallback when Unpaywall is unavailable.
Designed for conversational AI use ("download a batch", "download latest papers") and automated agent workflows.
- 🔎 Scopus search by keywords/title/raw query
- 🧾 Structured metadata output (DOI/title/year/source/cited_by)
- ⬇️ Auto download by DOI
- 🟢 Unpaywall first (open-access priority)
- 🛟 Optional Sci-Hub fallback
- 🧠 Intent mapping for natural language:
few/ "some" / "a few"batchas many as possiblelatest/ recent-year mode
SKILL.md- skill behavior and policy mappingagents/openai.yaml- agent UI metadatascripts/search_scopus.py- Scopus search utilityscripts/download_open_access.py- DOI downloader (Unpaywall + fallback)scripts/topic_batch_download.py- end-to-end topic search + quantity/latest-aware download
- Create an account on Elsevier Developer Portal: https://dev.elsevier.com/
- Create an API key in your profile.
- Make sure your key/account has access to Scopus Search API (depends on institutional entitlement).
Unpaywall API requires an email parameter. A real or virtual email can be used.
export ELSEVIER_API_KEY="your_elsevier_api_key"
export UNPAYWALL_EMAIL="[email protected]"# Download a latest batch in a topic
python3 scripts/topic_batch_download.py \
--keywords "pedestrian simulation" \
--quantity-mode batch \
--latest \
--outdir ./downloads# Download exactly 5 latest papers
python3 scripts/topic_batch_download.py \
--keywords "pedestrian simulation" \
--latest \
--target 5 \
--outdir ./downloads_latest_5- "Download a batch of pedestrian simulation papers."
- "Download 5 latest papers in building evacuation simulation."
- "Download as many latest crowd simulation papers as possible."
The skill maps these words into concrete CLI behavior (few/batch/max + latest filters).
Use JSON output for pipelines:
python3 scripts/topic_batch_download.py \
--keywords "building pedestrian evacuation simulation" \
--latest \
--quantity-mode batch \
--json --out ./summary.json \
--outdir ./downloadsThen parse summary.json for downloaded paths, statuses, and DOI lists.
uv tool install git+https://github.com/Oxidane-bot/scihub-cli.gitdownload_open_access.py fallback resolution order:
- custom
--scihub-cmd - local
scihub-cliin PATH uvx --from git+https://github.com/Oxidane-bot/scihub-cli.git scihub-cli
Install to your skill directory:
git clone https://github.com/wdc63/sci-papers-downloder.git ~/.codex/skills/sci-papers-downloderRestart your AI CLI/session so skill discovery refreshes.
- Unpaywall is used as the primary legal OA source.
- If you enable fallback sources, ensure your usage complies with local laws, institutional policy, and publisher terms.
- This repository is provided for research workflow automation only.
MIT - see LICENSE.