← All skills
nature-downloader
79 / 100 · Review before installing
Check before installing. Some of what it can do is expected: a coding skill usually runs build and test commands.
By Yuan1z0825/nature-skills (GitHub) · coding · 53,173 stars · scanned at commit a1a8220
Use when a user needs lawful academic full text, CNKI institutional access, English OA retrieval, publisher API access, institutional browser fallback, or supporting information downloads.
Works with any agent that supports SKILL.md skills.
What this skill can do
Runs commands on your computer
This is disclosed by the author in the skill's SKILL.md or README. Expected for a coding skill.
Found in 17 places.
Show 14 more
- skills/nature-downloader/SKILL.md, line 109
python3 scripts/configure_credentials.py set elsevier - skills/nature-downloader/SKILL.md, line 322
node scripts/batch_download.mjs --topic "rice blast resistance gene" --count 10 --no-si --out "<project>" - skills/nature-downloader/docs/nature-downloader-reference-research-2026-07-15.md, line 147
- `wget` 通过字符串拼接 URL 并 `shell=True` 执行,存在命令注入面;重构应使用参数数组或纯库调用。[wget 实现](https://github.com/kermitt2/article_dataset_builder/blob/920fe298a81061e8a26d55d13829ccb - skills/nature-downloader/scripts/retry_elsevier_api.mjs, line 5
import { spawnSync } from "node:child_process"; - skills/nature-downloader/scripts/retry_elsevier_api.mjs, line 16
const result = spawnSync(process.execPath, [path.join(here, "batch_download.mjs"), ...args], { stdio: "inherit" }); - skills/nature-downloader/tests/python/test_config_credentials.py, line 21
result = subprocess.run( - skills/nature-downloader/tests/python/test_config_wizard.py, line 109
result = subprocess.run( - skills/nature-downloader/tests/python/test_config_wizard.py, line 124
result = subprocess.run( - skills/nature-downloader/tests/python/test_config_wizard.py, line 142
result = subprocess.run( - skills/nature-downloader/tests/python/test_config_wizard.py, line 160
configured = subprocess.run( - skills/nature-downloader/tests/python/test_config_wizard.py, line 169
result = subprocess.run( - skills/nature-downloader/tests/unit/batch-cli.test.mjs, line 3
import { spawnSync } from "node:child_process"; - skills/nature-downloader/tests/unit/batch-cli.test.mjs, line 15
const run = spawnSync(process.execPath, [script, "--title", "Example", "--out", out], { encoding: "utf8" }); - skills/nature-downloader/tests/unit/batch-cli.test.mjs, line 67
const run = spawnSync(process.execPath, [
Downloads and installs other software
The author does not mention this.
Found in 1 place.
Connects to the internet
This is disclosed by the author in the skill's SKILL.md or README.
Found in 26 places.
Show 17 more
- skills/nature-downloader/references/delivery-verification-and-failures.md, line 144
- Use PowerShell `Invoke-WebRequest` for simple proxy checks. - skills/nature-downloader/references/institutional-browser-workflow.md, line 149
- Runs `fetch(location.href, { credentials: "include" })` inside the page. - skills/nature-downloader/scripts/batch_download.mjs, line 379
const response = await fetch(pdfUrl, { headers: { Accept: "application/pdf, text/html, application/xml" }, signal: AbortSignal.timeout(60000) }); - skills/nature-downloader/scripts/browser_pdf_downloader.mjs, line 88
const r = await fetch(${fetchTarget}, { credentials: "include" }); - skills/nature-downloader/scripts/configure_credentials.py, line 14
import urllib.request - skills/nature-downloader/scripts/configure_credentials.py, line 109
def _validation_request(provider: str, values: dict, service: str = "fulltext") -> urllib.request.Request: - skills/nature-downloader/scripts/configure_credentials.py, line 116
return urllib.request.Request(url, headers=headers) - skills/nature-downloader/scripts/configure_credentials.py, line 120
return urllib.request.Request(url, headers={"Accept": accept}) - skills/nature-downloader/scripts/configure_credentials.py, line 122
return urllib.request.Request(url, headers={"Accept": "application/json"}) - skills/nature-downloader/scripts/configure_credentials.py, line 135
with urllib.request.urlopen(_validation_request(args.provider, values, service), timeout=30) as response: - skills/nature-downloader/scripts/lib/anti-bot.mjs, line 651
const js = `fetch('http://localhost:0/cdp',{ - skills/nature-downloader/scripts/lib/cdp-utils.mjs, line 31
const r = await fetch(u, { signal: AbortSignal.timeout(timeoutMs) }); - skills/nature-downloader/scripts/lib/cdp-utils.mjs, line 45
` Probe: curl ${proxy}/targets` - skills/nature-downloader/scripts/lib/cdp-utils.mjs, line 53
const response = await fetch(url, { - skills/nature-downloader/scripts/lib/pdf-utils.mjs, line 56
const r=await fetch(${JSON.stringify(url)},{credentials:'include'}); - skills/nature-downloader/src/validators.py, line 16
import urllib.request - skills/nature-downloader/src/validators.py, line 71
req = urllib.request.Request(
and 6 more places
Safer alternatives
Low-risk skills in the same category (coding) that look related. Check that one does what you need.
Install
Paste this into your terminal. It downloads exactly the version we scanned, not whatever is newest.
if [ -e ~/.agents/skills/'nature-downloader' ] || [ -L ~/.agents/skills/'nature-downloader' ]; then echo 'A skill folder named nature-downloader already exists — not replacing it' >&2; false; else d=$(mktemp -d) && git clone --quiet --filter=blob:none --no-checkout 'https://github.com/Yuan1z0825/nature-skills' "$d" && git -C "$d" checkout --quiet 'a1a8220366e82ecd8584ea3d7f46cb3969f4b018' -- 'skills/nature-downloader' && mkdir -p ~/.agents/skills && cp -R "$d"/'skills/nature-downloader' ~/.agents/skills/'nature-downloader' && rm -rf "$d"; fi
Codex reads ~/.agents/skills directly. For Claude Code, Cursor, Copilot, Gemini CLI, Antigravity or OpenCode, also link it. For Claude Code: ln -s ~/.agents/skills/'nature-downloader' ~/.claude/skills/'nature-downloader' (other agents: ~/.cursor/skills, ~/.copilot/skills, ~/.gemini/skills, ~/.gemini/config/skills, ~/.config/opencode/skills). Or install through the finder skill, which does both.
Badge for your README
The badge for Yuan1z0825/nature-skills shows the score of its lowest-scoring skill.

[](https://zalavijaysinh.github.io/skilltrust/repos/Yuan1z0825/nature-skills/)
Score history
| Date | Version | Score |
|---|
| 2026-11-11 | a1a8220 | 79 |
| 2026-11-08 | b6ae2ca | 79 |
| 2026-11-07 | b6ae2ca | 69 |