Agent skill

Gs Search

by cookjohn in cookjohn/gs-skills

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

MITAuto-check passedResearch & Science

Install Gs Search

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

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

GitHub CLI
$ gh skill install cookjohn/gs-skills gs-search --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-search .claude/skills/gs-search && 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-search
GitHub stars
525
Token cost
~1k tokens
SKILL.md length
198 words
Files
1
Skills in repo
6
Repo updated
First seen
Licence
MIT

At a glance

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

  • Works in 4 steps: Navigate → Extract results (evaluate_script) → Report → …
  • The user wants to search Google Scholar
  • SKILL.md covers Arguments, Steps, CAPTCHA Handling and Notes
  • Reaches scholar.google.com

What it does

Gs Search is an agent skill from cookjohn/gs-skills. Search Google Scholar for academic papers by keywords. Returns results with title, authors, journal, year, citation count, and full-text links. Use when the user wants to search Google Scholar.

Its SKILL.md is about 1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Research & Science, covering Academic paper search and Citation management. 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

  • The user wants to search Google Scholar
  • Tasks that involve Academic paper search
  • Tasks that involve Citation management

Example prompts

  • “/gs-search”

Workflow steps

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

  1. Navigate
  2. Extract results (evaluate_script)
  3. Report
  4. Follow-up

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

    No scripts in the folder and no shell commands in SKILL.md (its code samples are javascript).

    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 Search loads about 1k tokens when it runs. Until then it costs about 51 tokens; SKILL.md has 198 words of instructions outside code blocks.

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

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); files beside SKILL.md are not scanned.

SKILL.md

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

Download SKILL.mdSave it as .claude/skills/gs-search/SKILL.md (or your agent's skills folder).
name
gs-search
description
Search Google Scholar for academic papers by keywords. Returns results with title, authors, journal, year, citation count, and full-text links. Use when the user wants to search Google Scholar.
argument-hint
[search keywords]

Search Google Scholar for papers using keyword(s). Returns structured result list via DOM scraping.

Arguments

$ARGUMENTS contains the search keyword(s).

Steps

1. Navigate

Use mcp__chrome-devtools__navigate_page:

  • url: https://scholar.google.com/scholar?q={URL_ENCODED_KEYWORDS}&hl=en&num=10
2. Extract results (evaluate_script)

Wait for results to load, check for CAPTCHA, then scrape the DOM:

javascript
async () => {
  // Wait for results or CAPTCHA
  for (let i = 0; i < 20; i++) {
    if (document.querySelector('#gs_res_ccl') || document.querySelector('#gs_captcha_ccl')) break;
    await new Promise(r => setTimeout(r, 500));
  }

  // CAPTCHA check
  if (document.querySelector('#gs_captcha_ccl') || document.body.innerText.includes('unusual traffic')) {
    return { error: 'captcha', message: 'Google Scholar requires CAPTCHA verification. Please complete it in your browser, then tell me to continue.' };
  }

  const items = document.querySelectorAll('#gs_res_ccl .gs_r.gs_or.gs_scl');
  const results = Array.from(items).map((item, i) => {
    const titleEl = item.querySelector('.gs_rt a');
    const meta = item.querySelector('.gs_a')?.textContent || '';
    // Parse "Author1, Author2 - Journal, Year - publisher"
    const parts = meta.split(' - ');
    const authors = parts[0]?.trim() || '';
    const journalYear = parts[1]?.trim() || '';
    const citedByEl = item.querySelector('.gs_fl a[href*="cites"]');
    const relatedEl = item.querySelector('.gs_fl a[href*="related"]');
    const versionsEl = item.querySelector('.gs_fl a[href*="cluster"]');

    return {
      n: i + 1,
      title: titleEl?.textContent?.trim() || item.querySelector('.gs_rt')?.textContent?.trim() || '',
      href: titleEl?.href || '',
      authors,
      journalYear,
      citedBy: citedByEl?.textContent?.match(/\d+/)?.[0] || '0',
      citedByUrl: citedByEl?.href || '',
      dataCid: item.getAttribute('data-cid') || '',
      fullTextUrl: (item.querySelector('.gs_ggs a') || item.querySelector('.gs_or_ggsm a'))?.href || '',
      snippet: item.querySelector('.gs_rs')?.textContent?.trim()?.substring(0, 200) || '',
      relatedUrl: relatedEl?.href || '',
      versionsUrl: versionsEl?.href || '',
      versions: versionsEl?.textContent?.match(/\d+/)?.[0] || ''
    };
  });

  const totalText = document.querySelector('#gs_ab_md')?.textContent?.trim() || '';
  const currentUrl = window.location.href;
  return { total: totalText, resultCount: results.length, currentUrl, results };
}
3. Report

Present results as a numbered list:

Searched Google Scholar for "$ARGUMENTS": {total}

1. {title}
   Authors: {authors} | {journalYear}
   Cited by: {citedBy} | [Full text]({fullTextUrl})
   Data-CID: {dataCid}

2. ...

Always show the dataCid — it's the unique identifier used for citation export and "cited by" tracking.

If fullTextUrl is available, highlight it (means open-access PDF/HTML).

4. Follow-up

When the user wants to:

  • See more results: use gs-navigate-pages to go to next page
  • See who cited a paper: use gs-cited-by with the data-cid
  • Export to Zotero: use gs-export with the data-cid(s)

CAPTCHA Handling

If the result contains {error: 'captcha'}:

  1. Tell the user: "Google Scholar is requesting CAPTCHA verification. Please complete it in your browser."
  2. Wait for user confirmation
  3. Retry the evaluate_script extraction

Notes

  • This skill uses 2 tool calls: navigate_page + evaluate_script
  • Google Scholar has NO public API — all data extraction is via DOM scraping
  • data-cid is the primary identifier (cluster ID) — used across all GS skills
  • Keep request frequency low to avoid triggering CAPTCHA
  • Default num=10 results per page (max 20)

© 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

Just SKILL.md in skills/gs-search of cookjohn/gs-skills.

Open the folder on GitHubat commit df03c99

Compare with similar skills

Gs Search 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 Search compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Gs Search this skillcookjohn/gs-skills525—~1kAutomated safety check: PassMIT
Literature Reviewneflibata-feng/MyArxiv-Agent12620 repos~5.9kAutomated safety check: NotesMIT
Openalex Databaseneflibata-feng/MyArxiv-Agent12612 repos~3kAutomated safety check: PassCustom licence
Citation ManagementK-Dense-AI/claude-scientific-writer2.4k2 repos~3.9kAutomated safety check: NotesMIT
Preprint Search on bioRxivLigphiDonk/Oh-my--paper73812 repos~3.7kAutomated safety check: PassMIT
Citation Managementneflibata-feng/MyArxiv-Agent12619 repos~8.1kAutomated safety check: NotesMIT

Similar skills

  • Literature Review

    neflibata-feng/MyArxiv-Agent

    Conduct comprehensive, systematic literature reviews using multiple academic databases (PubMed, arXiv, bioRxiv, Semantic Scholar, etc.).

    126 GitHub starsUsed in 20 repos~5.9k tokens
    Research & ScienceAuto-check: notes
  • Openalex Database

    neflibata-feng/MyArxiv-Agent

    Query and analyze scholarly literature using the OpenAlex database.

    126 GitHub starsUsed in 12 repos~3k tokens
    Research & ScienceAuto-check passed
  • Citation Management

    K-Dense-AI/claude-scientific-writer

    Finds papers in OpenAlex, PubMed and Google Scholar, turns DOIs, PMIDs and arXiv IDs into clean BibTeX, and validates citations for a manuscript or thesis.

    2.4k GitHub starsUsed in 2 repos~3.9k tokens
    Research & ScienceAuto-check: notes
  • Preprint Search on bioRxiv

    LigphiDonk/Oh-my--paper

    Searches bioRxiv life sciences preprints by keyword, author, date range or category with a Python script, returning JSON metadata and optional PDF downloads.

    738 GitHub starsUsed in 12 repos~3.7k tokens
    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 19 repos~8.1k tokens
    Research & ScienceAuto-check: notes
  • Peer Review

    K-Dense-AI/claude-scientific-writer

    Prepare evidence-bounded, constructive peer-review drafts and structured manuscript assessments.

    2.4k GitHub starsUsed in 2 repos~3.1k tokens
    Research & ScienceAuto-check: notes

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.

    525 GitHub stars~1.2k tokensUpdated 7 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.

    525 GitHub stars~935 tokensUpdated 7 mo ago
    Auto-check passed
  • Gs Export

    cookjohn/gs-skills

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

    525 GitHub stars~1.2k tokensUpdated 7 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.

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

    cookjohn/gs-skills

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

    525 GitHub stars~901 tokensUpdated 7 mo ago
    Auto-check passed

Questions about Gs Search

What does Gs Search do?

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

When should I use Gs Search?

Gs Search fits situations like: the user wants to search Google Scholar; tasks that involve Academic paper search; tasks that involve Citation management.

How do I install Gs Search in Claude Code?

Run `npx skills add cookjohn/gs-skills --skill gs-search -a claude-code`. Or copy the skill folder (skills/gs-search in cookjohn/gs-skills) into .claude/skills/gs-search in your project. Claude Code loads it when a task matches its description.

How do I install Gs Search in Codex?

Run `npx skills add cookjohn/gs-skills --skill gs-search -a codex`. Or copy the skill folder (skills/gs-search in cookjohn/gs-skills) into .agents/skills/gs-search in your project. Codex loads it when a task matches its description.

Can I use Gs Search 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-search -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-search, .gemini/skills/gs-search, .github/skills/gs-search and .opencode/skills/gs-search in your project.

What does Gs Search need to run?

SKILL.md names no scripts, command-line tools or credentials: Gs Search is instructions for the agent only.

Does Gs Search 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 Search 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. Review the folder before installing.

What licence does Gs Search use?

Gs Search 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 Search use?

About 1k tokens (SKILL.md is roughly 4.1k 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 Search?

Skills that share tags, products or a category with Gs Search: Literature Review (neflibata-feng/MyArxiv-Agent, 126 stars), Openalex Database (neflibata-feng/MyArxiv-Agent, 126 stars), Citation Management (K-Dense-AI/claude-scientific-writer, 2.4k stars) and Preprint Search on bioRxiv (LigphiDonk/Oh-my--paper, 738 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Gs Search?

cookjohn (a GitHub user) maintains it in cookjohn/gs-skills, which has 525 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.