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 Agents365-ai/cloakFetch --skill cloak-fetchgit clone --depth 1 https://github.com/Agents365-ai/cloakFetchWrote 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/agents365-ai/cloakfetch/cloak-fetch)<a href="https://agentmods.dev/skills/agents365-ai/cloakfetch/cloak-fetch"><img src="https://agentmods.dev/badge/skills/agents365-ai/cloakfetch/cloak-fetch/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/agents365-ai/cloakfetch/cloak-fetch"><img src="https://agentmods.dev/badge/skills/agents365-ai/cloakfetch/cloak-fetch.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.00128 | $0.02546 |
| Opus 5.5 | $0.00051 | $0.01018 |
| Sonnet 5.5 | $0.00026 | $0.00509 |
| Haiku 4.5 | $0.00013 | $0.00255 |
Grade A, and why
cloak-fetch 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 2mo 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: Use as a fallback when a web page won't load via WebFetch, curl, or any HTTP client because it's behind anti-bot protection — Cloudflare, DataDome, Akamai Bot Manager, PerimeterX/HUMAN, Imperva/Incapsula, F5 How it starts
The opening of the file, as written. The whole thing — 156 lines — stays where its author put it; the contents beside it link to each section on GitHub.
cloak-fetch — bot-protection / WAF fetch fallback
When a normal HTTP fetcher fails because the target site uses bot protection or WAF screening, route the same URL through CloakBrowser (a real Chromium with anti-bot patches at the C++ level and a genuine TLS/JA3 fingerprint) and return clean markdown via trafilatura. The agent never has to tell the user "the page is unfetchable" — it can try this skill first.
The underlying engine doesn't care which vendor is blocking the request — Cloudflare, DataDome, Akamai, PerimeterX, Imperva, Distil, Kasada, AWS WAF, or a no-name WAF rule. They all eventually let a real browser through, and CloakBrowser is a real browser.
When to trigger
Use immediately after any of these symptoms from a recent fetch tool call:
| Symptom in tool output | Likely cause |
|---|---|
HTTP 403, 403 Forbidden, HTTP 429 |
Bot protection or rate-limit block |
| Empty body / a few hundred bytes of nothing on a content-rich URL | Silent WAF / TLS-fingerprint reject |
| Page rendered as a near-empty shell with a JS challenge script | SPA-only page or anti-bot challenge |
Resource was not loaded, net::ERR_HTTP2_PROTOCOL_ERROR |
Upstream blocked the fetch handshake |
Access denied, Blocked, You don't have permission |
Generic WAF / bot detection |
Vendor-specific signatures
If the failure string roughly matches one of these, it's a CloakBrowser case — don't waste another round-trip on a plain HTTP client:
| Vendor | Telltale strings / headers |
|---|---|
| Cloudflare | Just a moment..., Enable JavaScript and cookies to continue, cf-ray: header, __cf_bm cookie, Attention Required! | Cloudflare, Sorry, you have been blocked |
| DataDome | blocked by DataDome, <title>blocked</title>, dd-cookie / datadome cookie, <head>...captcha-delivery.com, geo-block style 403 with empty body |
| Akamai Bot Manager | Access Denied with Reference #18. (long hex.epoch.hex) ID, <TITLE>Access Denied</TITLE> + Akamai <HTML><HEAD> boilerplate, Pragma: akamai-x-cache, akamai-bot-manager cookie |
| PerimeterX / HUMAN | Please verify you are a human, Access to this page has been denied because we believe you are using automation tools, _px* cookies (_pxhd, _px3), <title>Human Verification</title> |
| Imperva / Incapsula | Incapsula incident ID:, Request unsuccessful. Incapsula incident ID, _Incapsula_Resource, visid_incap_* cookie, X-Iinfo header |
| F5 / Distil | Pardon Our Interruption, As you were browsing something about your browser made us think you were a bot, distil_r_captcha, D_RID cookie |
| Kasada | <head> containing ips.js, x-kpsdk-cd / x-kpsdk-cr response headers, 429 with empty body + kasada reference |
| AWS WAF | Request blocked + <aws-waf-token>, awswaf cookie, body referencing aws-waf-token |
| Sucuri | Sucuri WebSite Firewall - Access Denied, <title>Sucuri WebSite Firewall - CloudProxy</title>, X-Sucuri-ID / X-Sucuri-Cache header, sucuri-cf-id cookie (very common on self-hosted WordPress) |
| reCAPTCHA / hCaptcha passive triggers | Interstitial that displays without user interaction — page replaced with g-recaptcha/h-captcha div and no real content. (See "When NOT to trigger" for interactive checkbox/slider cases.) |
| TLS / JA3 fingerprint reject | Connection drops, empty body, ERR_HTTP2_PROTOCOL_ERROR, SSL_ERROR_ZERO_RETURN on a site that loads fine in a normal browser |
What ships with it
2 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.
- 2mo ago First seen · 156 lines · 128 tokens per session scan A 1fb5a455f6e6
cloak-fetch is a skill published in the GitHub repository Agents365-ai/cloakFetch (48 stars, last pushed 5mo ago), licensed MIT. It adds 128 tokens to every session and 2,546 once invoked, about $0.0005 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-30.
cloak-fetch compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| cloak-fetchAgents365-ai/cloakFetch | Skill | 48 | 5mo ago | MIT | A | 128 | Claude Code |
| interactive-loginyc-software/qm | Skill | 16k | yesterday | MIT | A | 46 | Claude Code, Codex |
| pinchtab-mcppinchtab/pinchtab | Skill | 11k | 10d ago | MIT | A | 52 | Claude Code, Codex |
| azure-messaging-webpubsub-javamicrosoft/skills | Skill | 3.2k | yesterday | MIT | A | 43 | Claude Code |
| cua-driverdavidondrej/skills | Skill | 4.3k | 3d ago | MIT | A | 68 | Claude Code, Codex |
| open-design-browsercompozy/compozy | Skill | 2.8k | yesterday | MIT | A | 56 | Claude Code, Codex |
| southwestborski/travel-hacking-toolkit | Skill | 895 | yesterday | MIT | A | 40 | Claude Code |