Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add instructions/nalyk/gsccli/claude-mdgit clone --depth 1 https://github.com/nalyk/gsccliWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/instructions/nalyk/gsccli/claude-md)<a href="https://agentmods.dev/instructions/nalyk/gsccli/claude-md"><img src="https://agentmods.dev/badge/instructions/nalyk/gsccli/claude-md.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.02150 | $0.02150 |
| Opus 5 | $0.01075 | $0.01075 |
| Sonnet 5 | $0.00430 | $0.00430 |
| Haiku 4.5 | $0.00215 | $0.00215 |
Grade C, and why
gsccli CLAUDE.md scanned grade C with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Recursive force deletehighDestructive command
rm -rf with a variable or a broad path is one typo away from removing the wrong tree.
- Content-addressable. SHA-256 over the request payload → `~/.gsccli/cache/<hash>.json`. Wipe with `rm -rf ~/.gsccli/cache`. How it starts
The opening of the file, as written. The whole thing — 102 lines — stays where its author put it; the contents beside it link to each section on GitHub.
gsccli — Operating Contract
TypeScript ESM CLI for Google Search Console + Indexing API. Senior-grade workflow tooling on top of every GSC API endpoint: auto-pagination, client-side sort, period comparison, parallel batch URL inspection, file-backed query cache, validation guards. Claude operates this repo mostly autonomously.
The 10 rules that break things silently
- Imports end in
.js, never.ts—import { foo } from './bar.service.js'. ESM +moduleResolution: bundlerrequires it. Hard build break if violated. - Every command
.action()starts withresolveGlobalOptions(command)— single place where flags + env + project.gsccli.json+ global~/.gsccli/config.jsonare reconciled (in that priority order). - Service results return
ReportData({headers, rows, rowCount}) — even single-value or"Deleted X"responses get coerced into a 1×N row. Formatters depend on it. handleError(err)is terminal (: never) — never wrap, never rethrow, nevertry-around it. It is the leaf of every action.- Pipeline order is inviolable: Commander →
resolveGlobalOptions+validate→ service →ReportData→formatOutput→writeOutput. No layer-skipping. - API clients only via the singletons in
searchconsole.service.ts/indexing.service.ts— directgoogle.webmasters({...})/google.indexing({...})bypasses the auth chain and cache. validate(schema, opts)is terminal —process.exit(1)onZodError. Don't catchZodErroroutsidevalidate. New options need a schema insrc/validation/schemas.ts.- New CLI config key = update
CLIConfiginterface,CONFIG_KEYSmap, ANDLOCAL_BY_DEFAULT_KEYS(when site-related/per-project) insrc/types/config.ts. OtherwisesetConfigValuerejects them anddefaultScopeFormis-routes them. - stderr = status (
logger/ora). stdout = data (writeOutput). Mixing breaks--format json | jqpiping AND breaks the MCP server (which speaks JSON-RPC on stdout). - New top-level command =
program.addCommand(createXxxCommand())insrc/index.tsor it's invisible at the CLI surface.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 5d ago First seen · 102 lines · 2,150 tokens per session scan C e28f7d20c784
gsccli CLAUDE.md is an instructions file published in the GitHub repository nalyk/gsccli (5 stars, last pushed 2mo ago), licensed MIT. It adds 2,150 tokens to every session, about $0.0107 per session on Opus 5. A static security scan graded it C with 1 finding (recursive force delete). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other instructions, from other repositories
google-search-console-mcp CLAUDE.md
Claude Code instructions for FlorianBruniaux/google-search-console-mcp, covering claude.md, docs, commands, requires python 3.11+ and install (dev mode with test deps).
OpenGSC AGENTS.md
AGENTS.md instructions for fenjo26/OpenGSC: This version has breaking changes — APIs, conventions, and file structure may all differ from your training data. Read the relevant guide in nodemodules/next/dist/docs/ before writing any code. Heed deprecation notices.
OpenGSC CLAUDE.md
Claude Code instructions for fenjo26/OpenGSC, a project described as: Self-hosted Google Search Console dashboard — rank tracking, keyword research, AI-visibility audits and an AI SEO content suite. Includes a 46-tool MCP server, so Claude Code or Cursor works with your SEO data directly. No subscription: your VPS…
mcp-gsc CLAUDE.md
Instructions for AminForou/mcp-gsc, covering claude.md, what this is, running locally, auth and key environment variables.
crawlseo AGENTS.md
AGENTS.md instructions for crawlseo/crawlseo, a project described as: Open-source SEO monitoring. GSC + Site Crawler + Core Web Vitals in one dashboard.
seo-page-creator-agent AGENTS.md
Instructions for aiapplications001-art/seo-page-creator-agent, covering seo page creator agent, agent operating notes and useful commands.