A filter that sits ahead of your agent. Always ON.
Sunglasses is a filter that sits ahead of your agent. Always ON. Every input your agent would read — emails, web pages, tool responses, RAG chunks, peer-agent messages — the filter scans first. If hostile, your agent never sees it.
Local. No cloud. No API key. No telemetry. Your agent talks to Sunglasses over local stdio or in-process Python calls.
Three decisions. Block, warn, or allow.
The filter runs on every untrusted input. Each scan returns exactly one decision.
Hostile content detected. The agent never acts on it. Your agent sees a safe error instead of the attack.
Suspicious but not conclusive. Flagged and logged, passed through with a warning. Useful for fuzzy matches.
Clean input. Agent proceeds as normal. No overhead, no friction, no false positive.
Wire it into YOUR stack
One filter. Many wiring options. Pick the page that matches the agent you use.
Claude Code / Claude Desktop
One command registers the local scan server. Then require a scan before Claude acts on untrusted files, web content, or tool output.
Wire it up →Cursor, Cline, Windsurf & Zed
One canonical MCP setup for the VS Code-family editors. Scan files, terminal output, and web fetches before the agent acts.
Wire it up →OpenClaw
Register Sunglasses as a third-party MCP server, then scan channel messages, tool results, and handoffs before the runtime acts.
Wire it up →Warp terminal
Terminal output is a top attack surface. Route command results and repo files through the scan tool before the agent acts.
Wire it up →Hermes-Agent
A pre-read guard for unattended cycles: scan inbox messages, web extracts, and file reads before the agent makes a plan.
Wire it up →LangChain
The real SunglassesScanTool — scan retrieved docs, tool output, and user input at the boundary.
CrewAI
The real sunglasses_scan tool — scan handoffs and tool results before the next agent acts.
Microsoft AutoGen
Scan group-chat messages, task summaries, and forged approvals before they reach the next agent.
Wire it up →OpenAI Agents SDK
Guard Runner.run() input and tool output with a local SunglassesEngine scan.
Custom Python agent
Drop engine.scan() in front of any LLM or tool call — the canonical route for any stack.
Same filter underneath. Different wiring based on your stack.
See it work in 3 seconds
Install Sunglasses and run the built-in demo. 10 real attack scenarios get blocked with category + severity reported for each.
python3 -m venv sunglasses-env source sunglasses-env/bin/activate pip install sunglasses sunglasses demo
Windows: replace source sunglasses-env/bin/activate with sunglasses-env\Scripts\activate.
FAQ
What is Sunglasses?+
How does Sunglasses work?+
engine.scan() first. The scan returns one of three decisions — block, warn, or allow — based on 1089 patterns across 65 categories. Average scan time is 0.26ms.What does Sunglasses detect?+
What agents does Sunglasses work with?+
Do I need an API key or cloud service?+
Is the filter mandatory or optional?+
SunglassesScanTool) and CrewAI (sunglasses_scan); every other agent wires in over the MCP server or a direct SunglassesEngine().scan() call. Importing or registering makes scanning available; it becomes mandatory when your workflow requires the scan at each untrusted-input boundary before the agent acts.