
gs-fulltext
Get full-text access links for a Google Scholar paper - PDF, DOI, Sci-Hub, and publisher links. Use when user wants to read or download a paper's full text.
- Installs
- 291
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/cookjohn/gs-skills --skill gs-fulltext- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads gs-fulltext automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Google Scholar Full Text Access
Resolve and present all full-text access options for a paper found in Google Scholar search results.
Arguments
$ARGUMENTS can be:
- A
data-cidfrom a previous search result - A result number (e.g.,
3) referring to a previous search result
Prerequisites
This skill works best after a previous gs-search or gs-advanced-search call, which already extracts fullTextUrl and href for each result. If those are available, use them directly.
Steps
Step 1: Collect links from search results
From the previous search result, extract these fields for the target paper:
fullTextUrl: direct PDF/HTML link (from.gs_ggs a)href: link to the paper's publisher page (from.gs_rt a)dataCid: cluster ID
If no previous search context is available, search for the paper first using gs-search.
Step 2: Resolve additional links (evaluate_script)
Navigate to the Google Scholar results page (if not already there), then extract full-text links for the specific paper:
async () => {
const cid = "DATA_CID_HERE";
// Find the result item by data-cid
const item = document.querySelector(`.gs_r.gs_or.gs_scl[data-cid="${cid}"]`);
if (!item) return { error: 'not_found', message: 'Paper not found on current page. Try searching again.' };
const titleEl = item.querySelector('.gs_rt a');
const title = titleEl?.textContent?.trim() || item.querySelector('.gs_rt')?.textContent?.trim() || '';
const paperUrl = titleEl?.href || '';
// Full-text PDF/HTML link (shown on the right side of results)
const fullTextEl = item.querySelector('.gs_ggs a') || item.querySelector('.gs_or_ggsm a');
const fullTextUrl = fullTextEl?.href || '';
const fullTextType = fullTextEl?.querySelector('span.gs_ctg2')?.textContent?.trim() || '';
// Meta info for context
const meta = item.querySelector('.gs_a')?.textContent || '';
const parts = meta.split(' - ');
const authors = parts[0]?.trim() || '';
const journalYear = parts[1]?.trim() || '';
// Try to extract DOI from paper URL
let doi = '';
if (paperUrl.includes('doi.org/')) {
doi = paperUrl.replace(/^https?:\/\/(dx\.)?doi\.org\//, '');
}
// Build access links
const links = {};
if (fullTextUrl) {
links.fullText = fullTextUrl;
links.fullTextType = fullTextType || (fullTextUrl.endsWith('.pdf') ? '[PDF]' : '[HTML]');
}
if (paperUrl) {
links.publisher = paperUrl;
}
if (doi) {
links.doi = `https://doi.org/${doi}`;
links.scihub = `https://sci-hub.ru/${doi}`;
} else if (paperUrl) {
// Sci-Hub also works with direct URLs
links.scihub = `https://sci-hub.ru/${paperUrl}`;
}
return {
dataCid: cid,
title,
authors,
journalYear,
doi,
fullTextUrl,
fullTextType,
paperUrl,
links
};
}
Step 3: Report
## Full Text Links — {title}
**Authors:** {authors} | {journalYear}
**Direct Full Text:**
{links.fullText ? "- " + links.fullTextType + " " + links.fullText : "No direct full text link available"}
**Publisher Page:**
{links.publisher ? "- " + links.publisher : "N/A"}
**DOI:**
{links.doi ? "- " + links.doi : "No DOI detected"}
**Sci-Hub:**
{links.scihub ? "- " + links.scihub : "N/A"}
Step 4: Open full text (optional)
If the user wants to read the paper immediately, use mcp__chrome-devtools__new_page to open the preferred link in this priority:
fullTextUrl(direct PDF/HTML, usually free)- DOI link (may require subscription)
- Sci-Hub link (fallback)
- Publisher page
Notes
- This skill uses 1-2 tool calls:
evaluate_script(if already on results page) ornavigate_page+evaluate_script - Google Scholar's full-text links (
.gs_ggs) are usually free/open-access PDFs - DOI may not always be extractable from the paper URL
- Sci-Hub works with both DOI and direct URL
- Opening full text in a new tab adds 1 more tool call (
new_page)
FAQ
What does the gs-fulltext skill do?
Get full-text access links for a Google Scholar paper - PDF, DOI, Sci-Hub, and publisher links. Use when user wants to read or download a paper's full text.
How do I install gs-fulltext?
Run npx skills add https://github.com/cookjohn/gs-skills --skill gs-fulltext in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/gs-fulltext/ (personal) or .claude/skills/gs-fulltext/ (project).
Which AI agents can use gs-fulltext?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is gs-fulltext safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains gs-fulltext?
It is published by cookjohn in cookjohn/gs-skills. It has 291 recorded installs.
More from cookjohn/gs-skills
gs-search
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.
gs-export
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.
gs-navigate-pages
cookjohn/gs-skills
Navigate Google Scholar search result pages. Use when user wants to see more results or go to a specific page.
Popular education & science skills
teach
mattpocock/skills
Teach the user a new skill or concept, within this workspace.
scaffold-exercises
mattpocock/skills
Create exercise directory structures with sections, problems, solutions, and explainers that pass linting. Use when user wants to scaffold exercises, create exercise stubs, or set up a new course section.
paper-context-resolver
lllllllama/rigorpilot-skills
Rigor Paper Context helper for README-first deep learning repo reproduction. Use only when the README and repository files leave a narrow reproduction-critical gap and the task is to resolve a specific paper detail such as dataset split, preprocessing, evaluation protocol, checkpoint mapping, or runtime assumption from primary paper sources while recording conflicts. Do not use for general paper summary, repo scanning, environment setup, command execution, title-only paper lookup, or replacing README guidance by default.
caveman-learn
juliusbrussee/caveman
Act on a Caveman learn report - review the ranked token sinks, apply cost-lowering fixes with per-edit consent, and report what those fixes returned. Use when asked to lower an agent's token cost, what caveman has saved, to trim a heavy CLAUDE.md, or to offload re-pasted context into cavemem.
gsap-plugins
greensock/gsap-skills
Official GSAP skill for GSAP plugins — registration, ScrollToPlugin, ScrollSmoother, Flip, Draggable, Inertia, Observer, SplitText, ScrambleText, SVG and physics plugins, CustomEase, EasePack, CustomWiggle, CustomBounce, GSDevTools. Use when the user asks about a GSAP plugin, scroll-to, flip animations, draggable, SVG drawing, or plugin registration.
teach-impeccable
pbakaus/impeccable
DEPRECATED: Use /impeccable teach instead. This command has been folded into the impeccable skill.