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 bgauryy/octocode --skill octocode-scrapinggit clone --depth 1 https://github.com/bgauryy/octocodeWrote 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/bgauryy/octocode/octocode-scraping)<a href="https://agentmods.dev/skills/bgauryy/octocode/octocode-scraping"><img src="https://agentmods.dev/badge/skills/bgauryy/octocode/octocode-scraping/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/bgauryy/octocode/octocode-scraping"><img src="https://agentmods.dev/badge/skills/bgauryy/octocode/octocode-scraping.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00089 | $0.01355 |
| Opus 5 | $0.00044 | $0.00678 |
| Sonnet 5 | $0.00018 | $0.00271 |
| Haiku 4.5 | $0.00009 | $0.00136 |
Grade A, and why
octocode-scraping 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 12d 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 — 59 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Octocode Scraping
Flow: FRAME → POLICY → ROUTE → FETCH → CORPUS → SEARCH → CITE → RECOVER.
FRAME before the first fetch: fix target URL/domain, goal, depth, and output shape — vague ask → references/user-inputs.md.
Defaults: one public URL, --mode html, omit --provider (keyless cdp→direct), session .octocode/tmp/scrape/{sessionId}, compact stdout. Search corpus before refetch. Live interaction → chrome-devtools on one port, then har-ingest + corpus-run into the same session. Ask before auth, hosted spend, crawl widen, CAPTCHA/MFA, destructive actions. Cite paths + URL metadata — not raw dumps.
Stop when: two same-class failures (report evidence, route tried, sanitized status, next approval); hosted 403 (wrong key or credits gone — status only, no retry); CAPTCHA/MFA, auth wall, or cookie/profile transfer needed; still blocked after one cdp try (ask before --provider scrapingant); personal data, form submits, purchases, sends, deletes, or account changes in scope; the saved corpus already proves the claim (cite it, do not refetch); crawl widen before reports/summary.md is useful. Recovery table: references/failure-recovery.md.
Route (pick one)
| Need | Do | Skip |
|---|---|---|
| Vague scrape | --mode html, omit --provider |
markdown / auto hosted |
| See auto pick | scripts/provider-check.mjs |
guessing |
| Fetch/crawl | scripts/fetch.mjs |
deprecated scrapingant-fetch |
| Corpus on disk | corpus-inspect → find helpers → corpus-run |
blind refetch |
| Live click/DOM/auth | chrome-devtools | --provider cdp alone for interaction |
| Page health | chrome measure + measure-query |
hosted scrape for scores |
| CDP → corpus | scripts/har-ingest.mjs --from-cdp-dir |
new sessionId |
| Prove field | scripts/corpus-run.mjs --regex|--script |
reopen browser |
| Still blocked | evidence + ask → --provider scrapingant |
silent spend |
Scripts (Node, no install; every one takes --help)
| When | Run |
|---|---|
| fetch / crawl / extract a URL — the owner of every network call | scripts/fetch.mjs --url <u> [--mode html] [--crawl --same-domain --max-pages <n>] [--no-raw] |
| want the fetch plus an immediate corpus brief in one shot | scripts/fetch-and-brief.mjs --url <u> (wraps fetch.mjs → corpus-inspect.mjs) |
| before routing or hosted spend: which provider auto-wins, credits left | scripts/provider-check.mjs [--provider <p>], scripts/provider-usage.mjs — sanitized, never prints the key |
| read a saved session first, then search it | scripts/corpus-inspect.mjs --session-dir <d> [--page <n>], then scripts/corpus-find.mjs --session-dir <d> --query <t> |
| pull static DOM, assets, or graph paths out of the corpus (live DOM → chrome-devtools) | scripts/dom-find.mjs --kind form/button/table, scripts/resource-list.mjs --kind asset/external, scripts/graph-navigate.mjs --from <nodeId> — each with --session-dir <d> |
| prove one field locally instead of reopening a browser | scripts/corpus-run.mjs --session-dir <d> --roots cdp,extracts --regex <re> (or --script <file>, --concat-parts) |
| bridge chrome-devtools artifacts into this session, or hand a packet back | scripts/har-ingest.mjs --session-dir <d> --from-cdp-dir <run>; reverse with --export-packet |
| need field names before an extraction | scripts/schema-helper.mjs --intent "extract pricing and features" |
| an old transcript uses the legacy names | deprecated shims scripts/scrapingant-fetch.mjs, scripts/scrapingant-check.mjs, scripts/scrapingant-usage.mjs forward to fetch.mjs / provider-check.mjs / provider-usage.mjs — call the new names |
| editing or extending a script | shared modules in scripts/lib/ (providers registry, client fetch, corpus, analyzers, extractors, text, args, bridge); env/key resolution vendored in scripts/octocode-config.mjs; JSON contracts in scripts/schemas/ |
What ships with it
40 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.
- docs/ADDING_A_VENDOR.md 4.0 KB
- docs/PROVIDERS.md 2.3 KB
- README.md 965 B
- references/browser-scraping.md 1.9 KB
- references/data-contract.md 2.4 KB
- references/extraction-quality.md 1.1 KB
- references/failure-recovery.md 1.5 KB
- references/providers.md 1.0 KB
- references/route-selection.md 1.0 KB
- references/scraping-policy.md 1.3 KB
- references/scrapingant.md 1.7 KB
- references/session-corpus.md 1.4 KB
- references/user-inputs.md 1.1 KB
- references/website-analysis.md 2.9 KB
- scripts/corpus-find.mjs 4.0 KB runs code
- scripts/corpus-inspect.mjs 2.0 KB runs code
- scripts/corpus-run.mjs 8.8 KB runs code
- scripts/dom-find.mjs 2.1 KB runs code
- scripts/fetch-and-brief.mjs 1.4 KB runs code
- scripts/fetch.mjs 4.6 KB runs code
- scripts/graph-navigate.mjs 2.7 KB runs code
- scripts/har-ingest.mjs 13 KB runs code
- scripts/lib/analyzers.mjs 14 KB runs code
- scripts/lib/args.mjs 5.4 KB runs code
- scripts/lib/bridge.mjs 9.7 KB runs code
- scripts/lib/client.mjs 12 KB runs code
- scripts/lib/corpus.mjs 19 KB runs code
- scripts/lib/extractors.mjs 10 KB runs code
- scripts/lib/providers.mjs 1.5 KB runs code
- scripts/lib/text.mjs 3.8 KB runs code
- scripts/provider-check.mjs 2.1 KB runs code
- scripts/provider-usage.mjs 1.4 KB runs code
- scripts/README.md 1.2 KB
- scripts/resource-list.mjs 2.2 KB runs code
- scripts/schema-helper.mjs 2.0 KB runs code
- scripts/schemas/graph.schema.json 2.5 KB
- scripts/schemas/provider.schema.json 2.3 KB
- scripts/scrapingant-check.mjs 436 B runs code
- scripts/scrapingant-fetch.mjs 418 B runs code
- scripts/scrapingant-usage.mjs 436 B runs code
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.
- 12d ago First seen · 59 lines · 89 tokens per session scan A 19c2243e3b32
octocode-scraping is a skill published in the GitHub repository bgauryy/octocode (932 stars, last pushed today), licensed MIT. It adds 89 tokens to every session and 1,355 once invoked, about $0.0004 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-30.
Other skills, from other repositories
create-handler
Create a new API handler following the handler pattern. Use when the user asks to create an endpoint, handler, or route.
architecture-docs
Workflow for creating and maintaining architecture documentation. Use when the user needs to document system architecture or make ADRs.
component-creation
Step-by-step workflow for creating accessible, tested UI components. Use when the user asks to create a new UI component.
fix-tests
Systematic workflow for diagnosing and fixing failing tests. Use when the user reports failing tests or asks to fix test failures.
code-review
Structured workflow for conducting thorough code reviews. Use when the user asks to review code, a PR, or specific files.
infrastructure
Workflow for provisioning cloud infrastructure using IaC. Use when the user needs to create or modify cloud resources.