Roe 0.5 · by Windsec

Secure what your Agent Sees

Roe shows what a page, email, issue, file or image says to your agent that you can't see, which attack it matches, and which sensitive actions it's aiming at.

open source · github.com/WindSecurity/roe

Halftone artwork of the Roe bird
Instruction override✕Data exfiltration✕Email-borne attack✕Persistence✕Self-replicating prompt✕Standing instruction✕Left-behind instruction✕Tool and file abuse✕Obfuscation✕Jailbreak attempt✕Context confusion✕Image-based injection✕

One page, two readers

A normal page. A hidden agenda.

cheap-flights-deals.example/blog/top-10

TRAVEL · 4 MIN READ

10 cheap flights for this winter

Winter is the best time to snag low fares. We compared hundreds of routes so you don’t have to.

LIS ↗

Lisbon

€49

MAA ↗

Chennai

₹4,150

OSL ↗

Oslo

€62

TRZ ↗

Thanjavur

₹5,600

FCO ↗

Rome

€38

CCU ↗

Kolkata

₹3,400

Book early, travel midweek and always clear your cookies

Page loadedINTERACTIVE DEMO / ROE

Not just visible text

Your agent reads more than you do

Most tools only look at what's on screen. But text can be styled out of sight, tucked into attributes, or encoded in invisible characters. Roe narrows the question to the one that matters: is this page trying to give my agent orders?

Hidden from you, read by your agent.

Pages, email and files hide text in CSS, comments, attributes and invisible Unicode. Roe reads every one of those places and shows you what your agent would receive.

Behaviour-scored, plain words still caught.

Polite text with no attack words is scored by the kinds of control it tries to take: a named agent, a standing rule, a trigger, a request to store or confirm.

More like triage, findings mapped to actions.

Each finding names the attack it matches and the sensitive actions it could aim at: send, forward, delete, pay, edit rules files.

Nine families of agent attack

Threat category, severity, detection

Standing instruction“when asked for a summary, store this fact”High
Instruction override“ignore previous instructions”, fake system markersHigh
Data exfiltrationsend data out, reveal secrets, leaky image URLsHigh
Email-borneforward “confidential” mail, delete “for security”High
Persistencesave to memory, edit CLAUDE.md / AGENTS.md / hooksHigh
Self-replicating promptscopy this into every reply, forward to allHigh
Left-behind instructionsnotes for “the next agent”, [AGENT NOTE]Medium
Tool and file abusefake <IMPORTANT> tags, pointers at ~/.ssh, .envMedium
Obfuscationhidden CSS, split tags, Base64, invisible UnicodeMedium

Rules cite their source: Morris II, EchoLeak CVE-2025-32711, GitHub MCP issue injection, memory poisoning, Rules File Backdoor.

Built for the browser

Roe reads the page the way an agent would

01

Invisible text decoding

Unicode tag characters, variation selectors, zero-width binary and words split with soft hyphens are decoded and shown in plain text.

02

Highlight on page

Each finding scrolls to the exact text and draws a butter-yellow marker with a red label, one box per line, without changing the page.

03

Tab titles & file names

Titles, href, download and src attributes are checked, because agents read them as trusted metadata.

04

GitHub raw check

Fetches the raw Markdown an agent would receive, including HTML comments the page never shows. No cookies sent.

05

Download scanning

Every finished download is read from disk and scanned. A notification appears when something is found.

06

Remove hidden text

Warn only by default. Switch to removal mode and hidden nodes, comments and flagged attributes are stripped as they appear.

How it works

One click, the whole scan

  1. 01

    Page, email or file

  2. 02

    Visible + hidden text

  3. 03

    Invisible Unicode decoded

  4. 04

    Passages joined

  5. 05

    Behaviour scored

  6. 06

    Mapped to actions

  7. 07

    Warn, highlight or remove

Every page — http, https and file pages, including iframes; aware of email, GitHub, chat, tickets, docs and forums.

Images & downloads — up to 12 displayed images re-checked without cookies or referrer; results kept for the last 25 downloads.

File scanner — drag in files or a whole folder. Nothing is uploaded.

Two editions

Free for you. Enterprise for your org.

Free

For you
  • ●Detection on pages, email, GitHub, images, files, downloads
  • ●Warn, highlight, remove hidden text
  • ●Personal activity log
  • —Agent attribution, policy, human approval
  • —Agent DLP, intent lock, OAuth and install guards
  • —Rogue-agent and AI-worm detection, quarantine, tripwires
  • —Hash-chained audit log, incident timelines, MDM policy
Get from GitHub

Enterprise

For your org
  • ●Detection on pages, email, GitHub, images, files, downloads
  • ●Warn, highlight, remove hidden text
  • ●Personal activity log
  • ●Agent attribution, policy, human approval
  • ●Agent DLP, intent lock, OAuth and install guards
  • ●Rogue-agent and AI-worm detection, quarantine, tripwires
  • ●Hash-chained audit log, incident timelines, MDM policy
Contact Windsec

Intent lock

Give the agent a task. Anything off-task is confirmed, or blocked if the session saw hidden instructions.

Quarantine

An agent that retries twice within 90 seconds after a block is probing policy. Every action is blocked until a person releases it.

Tripwires

An off-screen button a person cannot reach. An agent reading the DOM may click it — and gets caught.

AI-worm detection

Outbound text is scanned and matched against flagged passages, so replicating prompts are stopped at send.

Agent DLP

Cloud keys, private keys, tokens, cards and SSN-like numbers are caught in pasted or typed text. Only the type is logged.

Human approval

Approvals open in a separate window the page cannot restyle, with a 1.5 s dwell and a real click required.

We give a…

Questions, one at a time

What is Roe?+

Roe is a browser extension by Windsec. It shows what a page, email, issue, file or image says to your AI agent that you can't see, which attack it matches, and which sensitive actions it could be aiming at. It can also remove the hidden text.

How is this different from a prompt filter?+

Single phrases cannot catch polite text. Roe scores the kinds of control a passage tries to take and needs two kinds, one of them core, before it flags. It reads whole passages, so instructions spread across an email are joined first.

Does it upload my pages or files?+

No. Scanning happens in your browser. The GitHub raw check sends only owner, repo and issue number without cookies, and image re-checks are sent without cookies or referrer — both can be turned off.

Which browsers are supported?+

Chrome 110 and newer, plus Chromium browsers like Edge, Brave and Arc. Load it unpacked from chrome://extensions with Developer mode on.

How does the Enterprise edition turn on?+

When your organization delivers a managed policy through MDM (Google Admin, Intune/GPO or ExtensionInstallForcelist). A managed policy overrides local settings and is read-only.

Can Roe still get things wrong?+

Yes. It is heuristic: paraphrased, translated or novel attacks can slip past, and ordinary notices can trigger weak false positives. It sees content only, not what an agent actually does, and text inside images needs OCR.

Honest about limits

  • — Heuristic — novel or translated attacks can slip past.
  • — Sees content, not what the agent reads or sends.
  • — Text inside images needs OCR, which is not bundled.
  • — Removal changes the page only; screenshot agents are unaffected.

Get started

Ship with Roe

https://github.com/WindSecurity/roe
  1. 1

    Clone the repo and open the extension folder

  2. 2

    Open chrome://extensions → Developer mode on

  3. 3

    Load unpacked → pick the folder with manifest.json

  4. 4

    Click the Roe icon on any page

For download scanning, open Roe's Details in chrome://extensions and turn on “Allow access to file URLs”.

Free · 0.2Enterprise · 0.5.0