Literature Downloader
Lucaswangzcx/literature-downloader-skill
中文文献检索、筛选、批量采集和合法全文获取助手。用于用户需要查找论文、下载可合法获取的 PDF/HTML/XML 全文、生成关键词和检索式、查询 DOI/PMID、筛选高影响因子或高分区期刊、检查开放获取、做引用链扩展、批量文献候选表、下载日志、去重清单、Zotero/BibTeX 整理,或解决文献难下载问题;禁止绕过付费墙、盗版下载、共享账号或规避版权限制。
Export Google Scholar paper(s) to Zotero via BibTeX. An agent skill from cookjohn/gs-skills.
$ npx skills add cookjohn/gs-skills --skill gs-export -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install cookjohn/gs-skills gs-export --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/cookjohn/gs-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/gs-export .claude/skills/gs-export && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "gs-export" agent skill from https://github.com/cookjohn/gs-skills/tree/master/skills/gs-export into .claude/skills/gs-export/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gs-export", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/cookjohn/gs-skills/tree/master/skills/gs-exportType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add cookjohn/gs-skills --skill gs-export -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install cookjohn/gs-skills gs-export --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cookjohn/gs-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/gs-export .agents/skills/gs-export && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "gs-export" agent skill from https://github.com/cookjohn/gs-skills/tree/master/skills/gs-export into .agents/skills/gs-export/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gs-export", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add cookjohn/gs-skills --skill gs-export -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install cookjohn/gs-skills gs-export --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cookjohn/gs-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/gs-export .cursor/skills/gs-export && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "gs-export" agent skill from https://github.com/cookjohn/gs-skills/tree/master/skills/gs-export into .cursor/skills/gs-export/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gs-export", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/cookjohn/gs-skills.git --path skills/gs-export--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add cookjohn/gs-skills --skill gs-export -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install cookjohn/gs-skills gs-export --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cookjohn/gs-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/gs-export .gemini/skills/gs-export && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "gs-export" agent skill from https://github.com/cookjohn/gs-skills/tree/master/skills/gs-export into .gemini/skills/gs-export/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gs-export", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install cookjohn/gs-skills gs-exportInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add cookjohn/gs-skills --skill gs-export -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/cookjohn/gs-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/gs-export .github/skills/gs-export && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "gs-export" agent skill from https://github.com/cookjohn/gs-skills/tree/master/skills/gs-export into .github/skills/gs-export/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gs-export", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add cookjohn/gs-skills --skill gs-export -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install cookjohn/gs-skills gs-export --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cookjohn/gs-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/gs-export .opencode/skills/gs-export && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "gs-export" agent skill from https://github.com/cookjohn/gs-skills/tree/master/skills/gs-export into .opencode/skills/gs-export/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gs-export", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
gs-exportExport Google Scholar paper(s) to Zotero via BibTeX. An agent skill from cookjohn/gs-skills.
Gs Export is an agent skill from cookjohn/gs-skills. Export Google Scholar paper(s) to Zotero via BibTeX. Gets citation data from Google Scholar's cite dialog, then pushes to Zotero desktop. Supports single or batch export.
Its SKILL.md is about 1.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts (for example `scripts/push_to_zotero.py`).
It sits in Research & Science, covering Citation management and Academic paper search. It works with Zotero and LaTeX. The repository describes itself as: Google Scholar skills for Claude Code — search, citation tracking, full-text access, and Zotero export via Chrome DevTools MCP. The licence is MIT.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit df03c99. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
pythonbashFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
scholar.google.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Gs Export loads about 1.2k tokens when it runs. Until then it costs about 45 tokens; SKILL.md has 363 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from cookjohn/gs-skills at commit df03c99, republished under its MIT licence (© cookjohn). 363 words, ~1,224 tokens.
.claude/skills/gs-export/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Export Google Scholar paper citation data via BibTeX extraction and push to Zotero desktop.
$ARGUMENTS contains one or more data-cids (space-separated), e.g.:
TFS2GgoGiNUJ — single paperTFS2GgoGiNUJ abc123XYZ def456UVW — batch exportFor each data-cid, perform 3 tool calls to bypass CORS:
async () => {
const cid = "DATA_CID_HERE";
const resp = await fetch(
`https://scholar.google.com/scholar?q=info:${cid}:scholar.google.com/&output=cite`,
{ credentials: 'include' }
);
const html = await resp.text();
const doc = new DOMParser().parseFromString(html, 'text/html');
// Extract export links
const links = Array.from(doc.querySelectorAll('#gs_citi a')).map(a => ({
format: a.textContent.trim(),
url: a.href
}));
// Extract citation format texts
const citations = Array.from(doc.querySelectorAll('#gs_citt tr')).map(tr => {
const cells = tr.querySelectorAll('td');
return {
style: cells[0]?.textContent?.trim() || '',
text: cells[1]?.textContent?.trim() || ''
};
});
const bibtexLink = links.find(l => l.format === 'BibTeX');
return { cid, bibtexLink: bibtexLink?.url || '', links, citations };
}Use mcp__chrome-devtools__navigate_page:
bibtexLink URL from step 1a (on scholar.googleusercontent.com)This bypasses CORS restrictions that block fetch() to googleusercontent.com.
async () => {
return { bibtex: document.body.innerText || document.body.textContent || '' };
}Save the BibTeX data as JSON, then call the push script:
python "E:/gscholar-skills/.claude/skills/gs-export/scripts/push_to_zotero.py" /tmp/gs_papers.jsonBefore calling the script, construct a JSON file at /tmp/gs_papers.json containing paper data parsed from BibTeX. Parse the BibTeX yourself and create the JSON array:
[
{
"pmid": "",
"title": "The title from BibTeX",
"authors": [
{"lastName": "Smith", "firstName": "John"}
],
"journal": "Journal Name",
"journalAbbr": "",
"pubdate": "2022",
"volume": "14",
"issue": "4",
"pages": "1054",
"doi": "",
"pdfUrl": "https://example.com/paper.pdf",
"abstract": "",
"keywords": [],
"language": "en",
"pubtype": ["Journal Article"]
}
]IMPORTANT: Set pdfUrl from the search result's fullTextUrl field (the PDF link extracted by gs-search). The Python script will download the PDF and upload it to Zotero via /connector/saveAttachment (Zotero 7.x ignores attachments in saveItems). PDF download may fail for some publishers (403, JS-redirect); these are reported as "PDF skip".
BibTeX fields mapping:
@article{key, → itemType: journalArticle@inproceedings{key, → itemType: conferencePaper@book{key, → itemType: booktitle={...} → titleauthor={Last1, First1 and Last2, First2} → authors arrayjournal={...} → journalyear={...} → pubdatevolume={...} → volumenumber={...} → issuepages={...} → pagespublisher={...} → (included in extra or publisher field)Single paper:
Exported to Zotero from Google Scholar:
Title: {title}
Authors: {authors}
Journal: {journal} ({year})
Data-CID: {dataCid}Batch:
Exported {count} papers to Zotero from Google Scholar:
1. {title1} ({journal1}, {year1})
2. {title2} ({journal2}, {year2})
...For multiple papers, process sequentially to avoid CAPTCHA:
evaluate_script (cite dialog) + navigate_page (BibTeX URL) + evaluate_script (read BibTeX) + bash python (Zotero push)scholar.googleusercontent.com — CORS blocks fetch(), so we use navigate_page to bypasspush_to_zotero.py for Zotero Connector API communicationnavigate_page with type back© cookjohn, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (scripts) in skills/gs-export of cookjohn/gs-skills.
Open the folder on GitHubat commit df03c99
Gs Export next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Gs Export this skillcookjohn/gs-skills | 523 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Literature DownloaderLucaswangzcx/literature-downloader-skill | 234 | — | ~1.4k | Automated safety check: Pass | MIT | |
| Citation Managementneflibata-feng/MyArxiv-Agent | 126 | 20 repos | ~8.1k | Automated safety check: Notes | MIT | |
| Zotero CLI54yyyu/zotero-mcp | 5.3k | — | ~2k | Automated safety check: Pass | MIT | |
| Literature Review AgentAr9av/PaperOrchestra | 676 | 2 repos | ~5.2k | Automated safety check: Pass | Custom licence | |
| Deeppapernote917Dhj/DeepPaperNote | 1.2k | 1 repos | ~5.9k | Automated safety check: Pass | MIT |
Lucaswangzcx/literature-downloader-skill
中文文献检索、筛选、批量采集和合法全文获取助手。用于用户需要查找论文、下载可合法获取的 PDF/HTML/XML 全文、生成关键词和检索式、查询 DOI/PMID、筛选高影响因子或高分区期刊、检查开放获取、做引用链扩展、批量文献候选表、下载日志、去重清单、Zotero/BibTeX 整理,或解决文献难下载问题;禁止绕过付费墙、盗版下载、共享账号或规避版权限制。
neflibata-feng/MyArxiv-Agent
Comprehensive citation management for academic research. An agent skill from neflibata-feng/MyArxiv-Agent.
54yyyu/zotero-mcp
Reads and edits a Zotero library from the shell with zotero-cli: search by keyword or meaning, read PDF text, manage tags, notes and collections, and export bibliographies.
Ar9av/PaperOrchestra
Step 3 of the PaperOrchestra pipeline (arXiv:2604.05018). An agent skill from Ar9av/PaperOrchestra.
917Dhj/DeepPaperNote
Generate a high-quality deep-reading note for a single paper and write it into an Obsidian-style vault.
ustc-ai4science/academic-search
A skill your agent uses when the user asks to search or review academic papers, retrieve scholarly metadata or citation counts, validate or deduplicate scholarly records, find an author's…
cookjohn/gs-skills
Perform advanced Google Scholar search with filters - author, journal, date range, exact phrase, title-only.
cookjohn/gs-skills
Find papers that cite a given Google Scholar paper. An agent skill from cookjohn/gs-skills.
cookjohn/gs-skills
Get full-text access links for a Google Scholar paper - PDF, DOI, Sci-Hub, and publisher links.
cookjohn/gs-skills
Navigate Google Scholar search result pages. An agent skill from cookjohn/gs-skills.
cookjohn/gs-skills
Search Google Scholar for academic papers by keywords. An agent skill from cookjohn/gs-skills.
Categories
Export Google Scholar paper(s) to Zotero via BibTeX. An agent skill from cookjohn/gs-skills. Gs Export is an agent skill from cookjohn/gs-skills. Export Google Scholar paper(s) to Zotero via BibTeX.
Gs Export fits situations like: tasks that involve Citation management; tasks that involve Academic paper search.
Run `npx skills add cookjohn/gs-skills --skill gs-export -a claude-code`. Or copy the skill folder (skills/gs-export in cookjohn/gs-skills) into .claude/skills/gs-export in your project. Claude Code loads it when a task matches its description.
Run `npx skills add cookjohn/gs-skills --skill gs-export -a codex`. Or copy the skill folder (skills/gs-export in cookjohn/gs-skills) into .agents/skills/gs-export in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add cookjohn/gs-skills --skill gs-export -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/gs-export, .gemini/skills/gs-export, .github/skills/gs-export and .opencode/skills/gs-export in your project.
Going by SKILL.md and its folder, Gs Export needs Python for the scripts in its folder and the command-line tools its instructions call (python and bash). Our summary lists: Python 3.
SKILL.md names 1 domain. In commands or code: scholar.google.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Gs Export is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.2k tokens (SKILL.md is roughly 4.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Gs Export: Literature Downloader (Lucaswangzcx/literature-downloader-skill, 234 stars), Citation Management (neflibata-feng/MyArxiv-Agent, 126 stars), Zotero CLI (54yyyu/zotero-mcp, 5.3k stars) and Literature Review Agent (Ar9av/PaperOrchestra, 676 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
cookjohn (a GitHub user) maintains it in cookjohn/gs-skills, which has 523 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on March 13, 2026.
Source: cookjohn/gs-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.