context-attachment-manager
Codex and Claude Code plugin (works in Claude Desktop): choose which past images go to the model with your next message. Unchecked images become placeholders, the conversation goes on, and requests st
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Browser extension that scans the page you're on for text hidden from you but readable by an AI agent.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗[!WARNING] Not in the Chrome Web Store yet. This is the working prototype, loadable unpacked. The detectors are tested against a fixture page in headless Chromium. Try them in the live demo; the store package is next on the roadmap.
If you hand pages to an agentic browser or paste them into a chatbot, the page can carry instructions meant for the model and hidden from you: white text on a white background, a div parked 9,999 pixels off-screen, a 1px font, an HTML comment. Brave showed attackers doing exactly this to Perplexity's Comet. CloakScan reads the tab you're on, outlines each piece of hidden text on the page, and lists what it found in plain language. Then it can copy the page's visible text with the hidden parts stripped, so you paste only what you actually read.
It runs when you click it and at no other time. There's no host_permissions entry, no
background script, and nothing leaves your browser.
| Technique | How it's spotted |
|---|---|
| Color-matched text | Contrast between the text and its nearest background under 1.15:1 |
| Off-screen positioning | Absolutely or fixed-positioned and more than 200px outside the viewport |
| Shrunk to invisible | Font size of 1px or less, or a 1x1 box with overflow hidden |
| Hidden from screen readers | aria-hidden="true" on text addressed to a model or overriding one (ADR-003) |
| HTML comments | Comments with the same instruction phrasing |
| Zero-width characters | U+200B, U+200C, U+200D, U+FEFF or U+2060 inside ordinary text |
# 1. Install dev dependencies (Node 22.2 or newer)
npm install
# 2. Copy the extension into dist/extension/ and zip it into dist/cloakscan-<version>.zip for the store
npm run build
# 3. In Chrome: chrome://extensions, turn on Developer mode, Load unpacked, pick dist/extension/
# 4. Tests and lint (the detection test runs in headless Chromium, installed once)
npx playwright install chromium
npm test && npm run lint
To try it without installing anything, open src/index.html in a browser, click the
CloakScan icon in the mock toolbar, then Scan this page.
| Folder | What's inside |
|---|---|
| 🧰 src/ | The extension and the demo page. |
| 📚 docs/ | The roadmap, the changelog, and the product spec and build plan. |
| 🧪 tests/ | Tests for node --test. detection.test.js loads fixtures/hidden-text.html in headless Chromium through Playwright, injects content.js, and checks all six techniques come back and nothing else does, that copy-visible-only text holds none of them, and that a clean 5,000-node page scans in under 2 seconds with no findings. manifest.test.js holds the permission list to activeTab, scripting and storage and fails on any network call under src/extension/. package.test.js runs the build and checks the store zip holds exactly the extension's files, manifest.json at its root. |
| ⚙️ .github/workflows/ | CI: npm ci, lint, the tests (headless Chromium included) and the build, on every PR and every push to main. |
| 🔒 SECURITY.md | How to report a vulnerability privately. |
| 🛡️ PRIVACY.md | The privacy policy: nothing collected, the last scan kept on the device, nothing sent. The Chrome Web Store listing will link it. |
| 🤖 AGENTS.md | Standing orders for the agent that works the roadmap each week. CLAUDE.md imports it for Claude Code. |