Agent skill

Gs Export

by cookjohn in cookjohn/gs-skills

Export Google Scholar paper(s) to Zotero via BibTeX. An agent skill from cookjohn/gs-skills.

MITAuto-check passedResearch & Science

Install Gs Export

skills CLI
$ npx skills add cookjohn/gs-skills --skill gs-export -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install cookjohn/gs-skills gs-export --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ 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-src

Use ~/.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/

Facts

Skill name
gs-export
GitHub stars
523
Token cost
~1.2k tokens
SKILL.md length
363 words
Files
2 (incl. scripts)
Skills in repo
6
Repo updated
First seen
Licence
MIT

At a glance

Export Google Scholar paper(s) to Zotero via BibTeX. An agent skill from cookjohn/gs-skills.

  • Works in 3 steps: Get BibTeX for each paper → Parse BibTeX and push to Zotero → Report
  • Tasks that involve Citation management
  • SKILL.md covers Arguments, Steps, Batch Export Optimization and Notes
  • Runs Python scripts from its folder; calls python and bash; reaches scholar.google.com

What it does

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.

When your agent uses it

  • Tasks that involve Citation management
  • Tasks that involve Academic paper search

Example prompts

  • “/gs-export”

Requirements

  • Python 3

Workflow steps

3 steps, taken from the step headings in SKILL.md.

  1. Get BibTeX for each paper
  2. Parse BibTeX and push to Zotero
  3. Report

What it can do on your machine

Read from SKILL.md and the folder at commit df03c99. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Ships 1 file in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python
    • bash

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • scholar.google.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

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.

Always · name and description, kept in context so the agent knows when to use it
~45
When it runs · the whole SKILL.md, loaded when a task matches
~1.2k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from cookjohn/gs-skills at commit df03c99, republished under its MIT licence (© cookjohn). 363 words, ~1,224 tokens.

Download SKILL.mdSave it as .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.
name
gs-export
description
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.
argument-hint
[data-cid or space-separated data-cids]

Google Scholar Export to Zotero

Export Google Scholar paper citation data via BibTeX extraction and push to Zotero desktop.

Arguments

$ARGUMENTS contains one or more data-cids (space-separated), e.g.:

  • TFS2GgoGiNUJ — single paper
  • TFS2GgoGiNUJ abc123XYZ def456UVW — batch export

Steps

Step 1: Get BibTeX for each paper

For each data-cid, perform 3 tool calls to bypass CORS:

javascript
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 };
}
1b. Navigate to BibTeX URL (navigate_page)

Use mcp__chrome-devtools__navigate_page:

  • url: the bibtexLink URL from step 1a (on scholar.googleusercontent.com)

This bypasses CORS restrictions that block fetch() to googleusercontent.com.

1c. Read BibTeX content (evaluate_script)
javascript
async () => {
  return { bibtex: document.body.innerText || document.body.textContent || '' };
}
Step 2: Parse BibTeX and push to Zotero

Save the BibTeX data as JSON, then call the push script:

bash
python "E:/gscholar-skills/.claude/skills/gs-export/scripts/push_to_zotero.py" /tmp/gs_papers.json

Before 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:

json
[
  {
    "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: book
  • title={...} → title
  • author={Last1, First1 and Last2, First2} → authors array
  • journal={...} → journal
  • year={...} → pubdate
  • volume={...} → volume
  • number={...} → issue
  • pages={...} → pages
  • publisher={...} → (included in extra or publisher field)
Show full SKILL.md (137 more words)Show less
Step 3: Report

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})
  ...

Batch Export Optimization

For multiple papers, process sequentially to avoid CAPTCHA:

  1. Get all BibTeX links in one evaluate_script call (fetch all cite dialogs)
  2. Navigate to each BibTeX URL one at a time
  3. Collect all BibTeX entries
  4. Push all to Zotero in a single batch

Notes

  • Single paper export uses 3-4 tool calls: evaluate_script (cite dialog) + navigate_page (BibTeX URL) + evaluate_script (read BibTeX) + bash python (Zotero push)
  • Batch export: 2N+1 tool calls (N papers: N navigate + N evaluate + 1 bash)
  • BibTeX links are on scholar.googleusercontent.com — CORS blocks fetch(), so we use navigate_page to bypass
  • Reuses push_to_zotero.py for Zotero Connector API communication
  • Google Scholar BibTeX does NOT include abstract or DOI — these fields will be empty in Zotero
  • After export, navigate back to Google Scholar page: navigate_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

Files

SKILL.md and 1 other file (scripts) in skills/gs-export of cookjohn/gs-skills.

  • SKILL.md
  • scripts/push_to_zotero.py

Open the folder on GitHubat commit df03c99

Compare with similar skills

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.

Gs Export compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Gs Export this skillcookjohn/gs-skills523—~1.2kAutomated safety check: PassMIT
Literature DownloaderLucaswangzcx/literature-downloader-skill234—~1.4kAutomated safety check: PassMIT
Citation Managementneflibata-feng/MyArxiv-Agent12620 repos~8.1kAutomated safety check: NotesMIT
Zotero CLI54yyyu/zotero-mcp5.3k—~2kAutomated safety check: PassMIT
Literature Review AgentAr9av/PaperOrchestra6762 repos~5.2kAutomated safety check: PassCustom licence
Deeppapernote917Dhj/DeepPaperNote1.2k1 repos~5.9kAutomated safety check: PassMIT

Similar skills

  • Literature Downloader

    Lucaswangzcx/literature-downloader-skill

    中文文献检索、筛选、批量采集和合法全文获取助手。用于用户需要查找论文、下载可合法获取的 PDF/HTML/XML 全文、生成关键词和检索式、查询 DOI/PMID、筛选高影响因子或高分区期刊、检查开放获取、做引用链扩展、批量文献候选表、下载日志、去重清单、Zotero/BibTeX 整理,或解决文献难下载问题;禁止绕过付费墙、盗版下载、共享账号或规避版权限制。

    234 GitHub stars~1.4k tokensUpdated 5 mo ago
    Research & ScienceAuto-check passed
  • Citation Management

    neflibata-feng/MyArxiv-Agent

    Comprehensive citation management for academic research. An agent skill from neflibata-feng/MyArxiv-Agent.

    126 GitHub starsUsed in 20 repos~8.1k tokens
    Research & ScienceAuto-check: notes
  • Zotero CLI

    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.

    5.3k GitHub stars~2k tokensUpdated today
    Research & ScienceAuto-check passed
  • Literature Review Agent

    Ar9av/PaperOrchestra

    Step 3 of the PaperOrchestra pipeline (arXiv:2604.05018). An agent skill from Ar9av/PaperOrchestra.

    676 GitHub starsUsed in 2 repos~5.2k tokens
    Research & ScienceAuto-check passed
  • Deeppapernote

    917Dhj/DeepPaperNote

    Generate a high-quality deep-reading note for a single paper and write it into an Obsidian-style vault.

    1.2k GitHub starsUsed in 1 repo~5.9k tokens
    Research & ScienceAuto-check passed
  • Academic Search

    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…

    665 GitHub stars~1.1k tokensUpdated 1 mo ago
    Research & ScienceAuto-check passed

More from cookjohn/gs-skills

  • Gs Advanced Search

    cookjohn/gs-skills

    Perform advanced Google Scholar search with filters - author, journal, date range, exact phrase, title-only.

    523 GitHub stars~1.2k tokensUpdated 6 mo ago
    Auto-check passed
  • Gs Cited By

    cookjohn/gs-skills

    Find papers that cite a given Google Scholar paper. An agent skill from cookjohn/gs-skills.

    523 GitHub stars~935 tokensUpdated 6 mo ago
    Auto-check passed
  • Gs Fulltext

    cookjohn/gs-skills

    Get full-text access links for a Google Scholar paper - PDF, DOI, Sci-Hub, and publisher links.

    523 GitHub stars~1.1k tokensUpdated 6 mo ago
    Auto-check passed
  • Gs Navigate Pages

    cookjohn/gs-skills

    Navigate Google Scholar search result pages. An agent skill from cookjohn/gs-skills.

    523 GitHub stars~901 tokensUpdated 6 mo ago
    Auto-check passed
  • Gs Search

    cookjohn/gs-skills

    Search Google Scholar for academic papers by keywords. An agent skill from cookjohn/gs-skills.

    523 GitHub stars~1k tokensUpdated 6 mo ago
    Auto-check passed

Works with

Questions about Gs Export

What does Gs Export do?

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.

When should I use Gs Export?

Gs Export fits situations like: tasks that involve Citation management; tasks that involve Academic paper search.

How do I install Gs Export in Claude Code?

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.

How do I install Gs Export in Codex?

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.

Can I use Gs Export in Cursor, Gemini CLI or GitHub Copilot?

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.

What does Gs Export need to run?

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.

Does Gs Export access the network?

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.

Is Gs Export safe to install?

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.

What licence does Gs Export use?

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.

How many tokens does Gs Export use?

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.

What are the alternatives to Gs Export?

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.

Who maintains Gs Export?

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.