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 skills/n24q02m/claude-plugins/scrape-batchnpx skills add n24q02m/claude-plugins --skill scrape-batchgit clone --depth 1 https://github.com/n24q02m/claude-pluginsWhat 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.00084 | $0.01401 |
| Opus 5 | $0.00042 | $0.00700 |
| Sonnet 5 | $0.00017 | $0.00280 |
| Haiku 4.5 | $0.00008 | $0.00140 |
Grade A, and why
scrape-batch 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 3d 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.
This is a copy
100% identical to scrape-batch — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 130 lines — stays where its author put it; the contents beside it link to each section on GitHub.
scrape-batch
Fan out extract(action="batch") over a URL list wet already knows, then
report per-URL outcomes honestly. The batch path applies per-domain
politeness (2 concurrent and 1 request/second per domain, 6 fetches in
flight overall) and returns whatever succeeded even when some URLs fail.
Use this skill when:
- The user supplies a list of URLs to read in full.
- A previous
searchreturned hits and the user wants the bodies, not the snippets. - A crawl or
extract(action="map")produced a URL set to pull down.
Do NOT use this skill when:
- There is one URL, or a handful from one domain -- call
extract(action="extract", urls=[...]), which is cached and cheaper. - The URLs are not known yet and the goal is an answer, not the pages --
use the
research-topicskill (extract(action="agent")). - The target is a whole site rather than a list -- use
extract(action="crawl")orextract(action="map"). - The user wants images or video from the pages -- use
media(action="list")thenmedia(action="download").
Steps
-
Collect and de-duplicate the URL list. Drop duplicates and fragment-only variants (
#section) -- each one costs a full fetch. Report the final count to the user before spending it. -
Split into chunks of at most 50. The cap is hard: 51 URLs returns
{"error": "Error: Maximum 50 URLs per batch (got 51)"}and nothing is fetched -- the call is refused, not truncated. -
Split further when one domain dominates. Politeness is per domain, so 40 URLs on a single host serialise to roughly one per second while 40 URLs across 20 hosts run near the global limit. A whole tool call is capped at 120 seconds (
TOOL_TIMEOUT), and hitting that ceiling returns only{"error": "... timed out after 120s ..."}-- the already-fetched pages are lost with it. Keep single-domain batches near 15-20 URLs. -
Call one chunk at a time, waiting for each to return:
extract(action="batch", urls=[...], format="markdown")formatacceptsmarkdown(default),textorhtml. Passstealth=trueonly after a normal attempt returns near-empty content for a protected site; it escalates to the heavier fetch strategies.
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.
- 3d ago First seen · 130 lines · 84 tokens per session scan A bc10527a42df
scrape-batch is a skill published in the GitHub repository n24q02m/claude-plugins (3 stars, last pushed 3d ago), licensed Apache-2.0. It adds 84 tokens to every session and 1,401 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. It is 100% identical to scrape-batch, differing in 0 lines, and is treated as a copy.
Other skills, from other repositories
citilink-connector
Use this skill when the operator needs Citilink electronics data — search or a product card. Trigger on "ситилинк", "citilink", "ситилинк цена". Always needs the operator's Chrome over CDP (Qrator rate block + gRPC-web). Skip for non-Citilink tasks.
dns-connector
Use this skill when the operator needs DNS-Shop electronics data — search or a product card. Trigger on "днс", "dns-shop", "dns", "ноутбук днс". Always needs the operator's Chrome over CDP (Qrator proof-of-work). Skip for non-DNS tasks.
ozon-connector
Use this skill when the operator needs Ozon marketplace data — product details, search, prices, ratings, or reviews. Trigger on Russian queries like "найди на озоне", "цена ozon", "отзывы на озоне", or English mentions of Ozon. Tier 1 (TLS impersonation) handles most queries with no browser; Chrome CDP is only the…
megamarket-connector
Use this skill when the operator needs Megamarket data — search the catalog or read a product card. Trigger on "мегамаркет", "megamarket", "цена мегамаркет". Always needs the operator's Chrome over CDP (ServicePipe IP block). Skip for non-Megamarket tasks.
persona-triggers
페르소나 v5 트리거 상세(AT 20패턴 + 15관점 매핑·매칭 예시). 관점·객관적·철저·깊이·검증·추천·디버깅·방향·진행·근거·출처·사례·팩트·증거 등 트리거 단어 감지 시 상세 참조.
diagnose
Diagnose unexpected behavior from Claude Code's built-in computer-use MCP server (desktop screen control). Use when: 'computer use', 'control my screen', 'screenshot is blurry', 'why is the screenshot low resolution', 'zoom in on the screen', 'screenshot capture failed', 'empty capture', 'clicks are landing in the…