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 AgentComputerAI/torch --skill scrapegit clone --depth 1 https://github.com/AgentComputerAI/torchWrote 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/agentcomputerai/torch/scrape)<a href="https://agentmods.dev/skills/agentcomputerai/torch/scrape"><img src="https://agentmods.dev/badge/skills/agentcomputerai/torch/scrape/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/agentcomputerai/torch/scrape"><img src="https://agentmods.dev/badge/skills/agentcomputerai/torch/scrape.svg" alt="Reviewed on agentmods" width="80" 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.00041 | $0.03464 |
| Opus 5.5 | $0.00016 | $0.01386 |
| Sonnet 5.5 | $0.00008 | $0.00693 |
| Haiku 4.5 | $0.00004 | $0.00346 |
Grade A, and why
scrape scanned grade A with 2 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 1mo 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.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
- Phase 0 (curl): 2 minutes max Runs shell commandslowCapability
Expected in a hook, worth knowing in a rule or an instructions file.
import { spawn } from "node:child_process"; How it starts
The opening of the file, as written. The whole thing — 289 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Goal of a first-time scrape
You are a scout, not a crawler. On a site that does not already have a skill in skills/sites/<slug>/, the goal is to prove a strategy works on a small sample (5-20 items) and write a reusable playbook — NOT to extract every row on the site. Full crawls come on re-runs once the skill exists.
Budget
- ~5 minutes total wall clock for a new-site scrape. The user is watching a clock you cannot see.
- Per-phase time boxes:
- Phase 0 (curl): 2 minutes max
- Phase 1 (framework recon): 3 minutes max
- Phase 2 (browser): 5 minutes max
- Once extraction works on even 5 valid items, STOP. Commit to that approach, write the skill, ship. Do not switch strategies to find a cleaner one. Do not chase pagination unless explicitly asked. Every extra minute you spend "improving" a working scrape is a minute spent not writing the skill.
- After two failed strategies on the same page, stop escalating. Write a skill documenting what you tried and which layer failed. A half-skill is more valuable than a timeout with nothing saved.
Background execution
Run scrapers as background processes, not synchronous bash. You have pi-processes tools — use them. Synchronous bash node scrape.js blocks the turn, makes you blind to progress, and prevents steering. Background execution lets you watch logs, catch errors early, and kill a run once you have enough data.
Pattern:
- Write
scrape.js - Spawn it as a background process, tag it with the slug
- Tail its log output
- As soon as you see the first 5 items extract cleanly, you can either let it finish or kill it
- Read
./output/<slug>.json, verify, write the skill
Naming invariants
Derive the slug ONCE at the start of the scrape from the brand/site name. Lowercase [a-z0-9-] only, no dots, no TLDs, no www. prefix. Examples: amazon, hackernews, mcmaster, digikey.
- Output file:
./output/<slug>.json— one file per scrape, no variants - Skill file:
./skills/sites/<slug>/SKILL.md— directory name === slug === frontmattername: - Scratch files during exploration: prefix with
_scratch_so they're easy to delete
What ships with it
3 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.
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.
- 1mo ago First seen · 289 lines · 41 tokens per session scan A 6943e63156ec
scrape is a skill published in the GitHub repository AgentComputerAI/torch (5 stars, last pushed 6mo ago), licensed MIT. It adds 41 tokens to every session and 3,464 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 2 findings (makes network calls, runs shell commands). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
chrome-extension
Use when building or shipping a Manifest V3 browser extension and hitting its quirks — service worker dying and losing state, permission warnings, a Chrome Web Store rejection, content-script/worker/popup messaging, or an MV2-to-V3 migration. NOT a generic web app (that is nextjs), NOT a desktop shell (that is…
data-scraper
Use when data lives on a website with no usable API — listings, prices, public records — and the scrape must stay legal and not get blocked: legal gate, extraction path, durable selectors, pacing, resilience. NOT parsing bytes you already hold into fields (that is structured-extraction), NOT a documented API or key…
nodejs
Use when building or operating a plain Node.js / Express 5 backend service: project layout, async correctness, central error middleware, fail-fast config, graceful shutdown on SIGTERM. NOT DI modules/providers/guards (that is nestjs), NOT the type system or tsconfig (that is typescript), NOT REST contract design (that…
checking-a-page
Check that a web page you wrote or changed actually works, by opening it in a browser and driving every control on it. Use after creating or editing an HTML page, or the JavaScript or CSS that a page loads.
browser-qa
Testing web apps through a real browser: reconnaissance before acting, selector discovery, state capture, console errors and screenshot evidence. Use on a web surface end to end, or to reproduce a front-end bug.
browser-automation
A browser-automation workflow that detects the terminal environment and chooses a browser control tool. It supports opening pages, taking snapshots, clicking, filling fields, and other checks.