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 imdbgit 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/imdb)<a href="https://agentmods.dev/skills/agentcomputerai/torch/imdb"><img src="https://agentmods.dev/badge/skills/agentcomputerai/torch/imdb/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/imdb"><img src="https://agentmods.dev/badge/skills/agentcomputerai/torch/imdb.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.00077 | $0.01712 |
| Opus 5.5 | $0.00031 | $0.00685 |
| Sonnet 5.5 | $0.00015 | $0.00342 |
| Haiku 4.5 | $0.00008 | $0.00171 |
Grade A, and why
imdb scanned grade A 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 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.
description: Proven scraping playbook for imdb.com. Next.js SPA behind CloudFront + AWS WAF (x-amzn-waf-action challenge on raw curl). Real Chrome via the real Chrome debug port sails past the challenge on first navigati How it starts
The opening of the file, as written. The whole thing — 129 lines — stays where its author put it; the contents beside it link to each section on GitHub.
IMDb (imdb.com)
Full catalog (charts, titles, names) is a Next.js app served via CloudFront with an AWS WAF challenge on bare curl requests. A real Chrome session (the real Chrome debug port) passes the challenge silently; __NEXT_DATA__ then yields a complete, typed JSON payload that's vastly richer than the DOM.
Detection
| Signal | Value |
|---|---|
| CDN | CloudFront (via: 1.1 ...cloudfront.net) |
| Framework | Next.js (__NEXT_DATA__ present, /_next/ assets) |
| Anti-bot | AWS WAF — returns HTTP/2 202 + x-amzn-waf-action: challenge + empty body to plain curl, even with spoofed UA/headers |
| Auth | Not required for public chart/title/name pages |
| robots.txt | Allows most public paths; disallows /search/, /find, etc. |
Architecture
- Next.js SSR: every chart/title page inlines a
<script id="__NEXT_DATA__">JSON blob with the full page payload already resolved. - Chart pages (
/chart/top,/chart/moviemeter,/chart/boxoffice, …) expose the list atprops.pageProps.pageData.chartTitles.edges[].node. - Each node has
id(tconst),titleText,releaseYear,runtime,ratingsSummary(aggregateRating + voteCount),certificate,titleGenres,primaryImage, etc. — no DOM scraping needed.
Strategy used
- Phase 0 (curl): blocked.
HTTP/2 202+x-amzn-waf-action: challenge, zero body. Don't waste time tweaking headers — AWS WAF is JS-challenge based. - Phase 1 (framework): skipped as a standalone fetch path — same WAF wall — but
__NEXT_DATA__is the extraction target once the page loads in a browser. - Phase 2 (browser):
puppeteer.connect({ browserURL: the real Chrome debug port }). Real Chrome clears WAF on the first navigation with no interaction. No stealth plugin, no captcha solver, no proxy.
Stealth config that works
import puppeteer from "puppeteer-core";
const browser = await puppeteer.connect({ browserURL: "http://127.0.0.1:9222" });
const page = await browser.newPage();
await page.goto("https://www.imdb.com/chart/top/", { waitUntil: "domcontentloaded", timeout: 45000 });
await page.waitForSelector("li.ipc-metadata-list-summary-item");
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 · 129 lines · 77 tokens per session scan A 531f11d25924
imdb is a skill published in the GitHub repository AgentComputerAI/torch (5 stars, last pushed 6mo ago), licensed MIT. It adds 77 tokens to every session and 1,712 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). 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.