Color-matched text
Contrast between the text and its nearest background under 1.15:1.
contrast < 1.15:1A page can carry instructions meant for a model and hidden from you: white text on white, a div parked 9,999 pixels off-screen, a 1px font, an HTML comment. CloakScan outlines each one on the page, lists it in plain language, and can copy the page's visible text with the hidden parts stripped.
Each detector is a structural check on the page you're on. The detection test runs all six against a fixture page in headless Chromium.
Contrast between the text and its nearest background under 1.15:1.
contrast < 1.15:1Absolutely or fixed-positioned and more than 200px outside the viewport.
> 200px off-screenA font size of 1px or less, or a 1x1 box with overflow hidden.
≤ 1pxaria-hidden="true" on text addressed to a model or overriding one. The phrasing rule is ADR-003; English only.
Comments carrying the same instruction phrasing.
<!-- -->U+200B, U+200C, U+200D, U+FEFF or U+2060 inside ordinary text.
U+200B · U+FEFFThree clicks. Nothing runs before the first one.
activeTab, scripting and storage. No host_permissions, no background script.
A test fails if any file in the extension contains fetch(, XMLHttpRequest, WebSocket, sendBeacon or EventSource.
The last scan stays in chrome.storage.local on your device. Nothing is sent anywhere. Read the privacy policy.
Node 22 or newer. To try it without installing anything, open the live demo.
# 1. Install dev dependencies $ npm install # 2. Copy the extension into dist/extension/ $ npm run build # 3. In Chrome: chrome://extensions, turn on Developer mode, # Load unpacked, pick dist/extension/ # 4. Tests and lint (headless Chromium, installed once) $ npx playwright install chromium $ npm test && npm run lint
Not in the Chrome Web Store yet. This is the working prototype, loadable unpacked. The store package is next on the roadmap.