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 skills add usetemi/skills --skill google-search-consolegit clone --depth 1 https://github.com/usetemi/skillsWrote 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/skills/usetemi/skills/google-search-console)<a href="https://agentmods.dev/skills/usetemi/skills/google-search-console"><img src="https://agentmods.dev/badge/skills/usetemi/skills/google-search-console.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.1 | $0.00049 | $0.02131 |
| Opus 5 | $0.00024 | $0.01066 |
| Sonnet 5 | $0.00010 | $0.00426 |
| Haiku 4.5 | $0.00005 | $0.00213 |
Grade A, and why
google-search-console scanned grade A with 0 findings 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 8d 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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 247 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Google Search Console
Architecture
gsc is a Python CLI wrapping two Google APIs:
- Search Console API (webmasters v3 + searchconsole v1) -- search analytics, site management, sitemaps, URL inspection
- PageSpeed Insights API (v5) -- Lighthouse lab tests for performance, accessibility, SEO, best practices
All commands output JSON to stdout. Errors go to stderr. Designed for Claude to invoke and parse programmatically.
Before First Use
- uv: Run
which uv. If missing, ask the user how they want to install it (brew install uvor follow https://docs.astral.sh/uv/getting-started/installation/). - Project sync:
uv sync --project <skill-dir> - Auth: See below.
- PageSpeed API key: See below.
Search Console Auth (OAuth)
Save your OAuth client_secret.json (downloaded from GCP) to a known path, then authenticate:
gsc auth login --client-secret /path/to/client_secret.json
A browser opens for OAuth consent. On a headless machine, open an SSH tunnel first: ssh -L 8085:localhost:8085 <this-host>, then open the printed URL on a machine with a browser. Credentials are stored at ~/.config/skills/gsc/credentials.json and auto-refresh.
If you need to create a new OAuth client, see references/setup.md for the full GCP click-path.
PageSpeed Insights API Key
Set the key once and gsc remembers it:
gsc config set pagespeed-api-key <your-key>
If you don't have a key, create one in your GCP project's Credentials page, restrict it to the "PageSpeed Insights API", and pass it to gsc config set above.
Invocation
uv run --project /path/to/skills/google-search-console gsc <command> [args]
For brevity, examples below use gsc directly.
Commands
auth -- Manage authentication
# Authenticate with OAuth
gsc auth login --client-secret ./client_secret.json --port 8085
# Check auth status
gsc auth status
# Remove stored credentials
gsc auth logout
config -- Manage settings
What ships with it
18 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- .copier-answers.yml 750 B
- .gitignore 44 B
- pyproject.toml 2.4 KB
- references/seo-playbook.md 12 KB
- references/setup.md 2.7 KB
- src/gsc/__init__.py 245 B runs code
- src/gsc/__main__.py 261 B runs code
- src/gsc/analytics.py 4.4 KB runs code
- src/gsc/auth.py 6.9 KB runs code
- src/gsc/cli.py 669 B runs code
- src/gsc/client.py 1.5 KB runs code
- src/gsc/common.py 697 B runs code
- src/gsc/config.py 3.5 KB runs code
- src/gsc/inspect_url.py 840 B runs code
- src/gsc/pagespeed.py 2.6 KB runs code
- src/gsc/sitemaps.py 2.2 KB runs code
- src/gsc/sites.py 1.2 KB runs code
- uv.lock 80 KB
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.
- 8d ago First seen · 247 lines · 49 tokens per session scan A 1781d0f452dc
google-search-console is a skill published in the GitHub repository usetemi/skills (6 stars, last pushed 1mo ago), licensed MIT. It adds 49 tokens to every session and 2,131 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
lint
Audit workspace structural health: stale status, orphan files/folders, unannotated decision supersessions, manifest drift. Read-only; --fix applies safe annotations. Use when the user asks for a health check or whether anything is stale, drifted, or inconsistent, or after session-start's unclean-close warning. Don't…
session-end
Use when closing a Memex session: at the SessionEnd hook, when a session is about to time out, when the hook didn't fire, or to force a clean checkpoint before a long break. Updates memory files, refreshes closets, verifies wikilinks.
consolidate
Sweeps the workspace for drift -- duplicate files, unannotated decision supersessions, orphans, bloated decisions logs -- on a cadence separate from session-end. Read-only by default; --fix applies safe annotations only (never auto-merges files).
reindex
Backfills or rebuilds every hub's CLOSETS.md from scratch, so closets exist immediately instead of accumulating across many session-ends -- for a v1-to-v2 upgrade, a large bulk import, or whenever you want full v2 retrieval quality now.
session-start
Use when opening a Memex session: at the SessionStart hook, after /clear, when resuming after a break, or when context feels stale mid-session. Loads tiered context and outputs a briefing.
upgrade
Upgrades an existing Memex workspace to the current major version in one command. Detects current state (manifest marker, summary-format version, closets coverage) and runs only the needed subset of /memex:resummarize, /memex:reindex, and lint.