Sunglasses is a good tool, and this page starts by saying so. Sunglasses (sunglasses.dev) is a respected open-source input firewall: it scans what goes into an agent before the model ever sees it. It runs entirely on the device — no cloud, no API keys, no telemetry, content is never uploaded — and it is MIT-licensed and fully open source. It reads more input formats than most: text, code, images (OCR + EXIF), PDFs, audio and video via transcription, and QR codes, matching 1,546 patterns across 118 categories. And it is genuinely easy to adopt: a CLI, a Python library, a Claude Code pre-tool-use hook, an MCP server, a GitHub Action for pull-request scanning, and a browser demo.
The divergence is where enforcement sits. Sunglasses is an input firewall — it inspects the content flowing in, and its own README says output scanning is planned for v0.5 and later. Today it is input only. MoorAI enforces across the whole span — prompt / file / output / index / session / tool — so it also reviews the model's output and decides the tool call itself at the action boundary (allow / ask / deny). That is the headline difference: MoorAI can stop the action even after a jailbreak has already succeeded. In one measured run, 12 of 12 malicious tool calls were stopped at the action layer under an enforcing policy on Claude Code.
There is also an honesty note about openness, because it cuts against the easy pitch: both agents are now MIT-licensed, so on the agent the license is parity, not a MoorAI edge. Sunglasses is fully open source; MoorAI is open-core — an MIT agent plus a separate proprietary managed console. Sunglasses is the more open project. So this is not “which is better.” Sunglasses is a fast, open, multimodal filter on the way in. MoorAI is a runtime enforcer on the way in, out, and at the tool call — with content-free evidence for a team. (as of September 2026)
Enforcement span and enterprise evidence. Sunglasses inspects the input; MoorAI also reviews the output and decides the tool call at the moment it fires, then emits a redacted signal a team can audit centrally. Several Sunglasses rows are marked — unconfirmed where its published material does not document a capability either way — not ✗.
| MoorAI | Sunglasses | |
|---|---|---|
| Reviews the model's output, not just the input | ✓reviews prompt + output | ✗input only; output scanning planned v0.5+ (their README) |
| Enforcement span — prompt / file / output / index / session / tool | ✓input AND output AND tool/action | ◐input across many formats, but input-only surface today |
| Runtime action enforcement — allow / ask / deny decided at the tool-call boundary | ✓action-boundary decision; 12 of 12 malicious tool calls stopped | ◐Claude Code pre-tool-use hook scans tool input; conservative blocking |
| Stops the action after a jailbreak has already succeeded | ✓enforces at the action layer regardless of upstream bypass | ◐pattern matches escalate to human review; only cryptographic facts hard-block |
| Content-free emission to a SIEM — category · risk · keyed one-way hash | ✓redacted signals only, keyed one-way hash | ◐local-only, no upload — strong local guarantee, not a central audit trail |
| Central policy / posture / compliance console + fleet management | ✓managed console (the proprietary layer) | ✗per-developer local tool / library |
| Compliance mapping — rule-base crosswalk to OWASP LLM Top 10 / MITRE ATLAS / STRIDE | ✓67-threat rule-base, published crosswalk | —not documented in their material |
| Positioned against ISO 42001 / EU AI Act / NIST AI RMF / ASD harness guidance | ✓explicit regulatory mapping | —unconfirmed |
| Locked-split public benchmark with a refusal baseline (AMTSO-graded) | ✓86.4% on a locked held-out set, 3.32% false positives | ◐publishes recall/precision on a clean-code regression corpus (their numbers) |
Sunglasses and MoorAI share a lot of DNA, and it is fairer to state it as agreement than to mark it absent. Both run on the device, both keep content off the network, both are MIT-licensed and readable, both plug into Claude Code, both ship an MCP server and a CLI, and both are pattern-first at their core. Anyone evaluating the two should expect a real, substantial overlap here.
| MoorAI | Sunglasses | |
|---|---|---|
| Runs entirely on the device — content stays local | ✓ | ✓ |
| No cloud, no API keys, no telemetry required to run | ✓ | ✓ |
| MIT-licensed, open-source agent you can read | ✓ | ✓ |
| Claude Code hook integration | ✓ | ✓ |
| Ships an MCP server | ✓ | ✓ |
| CLI scan (moorai scan / sunglasses scan) | ✓ | ✓ |
| Pattern / regex-based detection at the core | ✓ | ✓ |
| Detection of prompt-injection and secret / credential exposure | ✓ | ✓ |
This is the honest half of the page. Sunglasses is ahead in real, checkable ways, and a buyer should weigh them. It reads more input formats than MoorAI, it is fully open source rather than open-core, it is easier to drop into a developer's workflow, and it publishes a larger raw pattern library. If the requirement is “a fast, fully open, multimodal filter on everything an agent ingests,” that is Sunglasses's job and it does it well.
| MoorAI | Sunglasses | |
|---|---|---|
| Multimodal input scanning — image OCR + EXIF, PDF, audio / video transcription, QR codes | ◐on-device image OCR; no audio / video / QR / EXIF parity | ✓text, code, images (OCR+EXIF), PDFs, audio/video, QR |
| Fully open source — no proprietary component | ◐open-core: MIT agent + proprietary managed console | ✓MIT-licensed, fully open (relicensed to MIT in v0.3.0) |
| Larger published pattern library | ◐67-threat rule-base across 17 categories | ✓1,546 patterns across 118 categories (their count) |
| Low-friction dev adoption — pip library, GitHub Action for PR scanning, browser demo | ◐CLI + MCP + browser extension; narrower distribution | ✓pip, GitHub Action, browser demo |
| GitHub Action that scans pull requests in CI | —not documented today | ✓first-party GitHub Action |
Where MoorAI is stronger. Runtime enforcement and content-free evidence. Sunglasses is a filter on the way in; MoorAI is an enforcer on the way in, on the way out, and at the tool call. It reviews the model's output, not just the input, and it decides the tool call at the action boundary — allow, ask or deny — so it can stop an action even after a jailbreak has already succeeded (measured: 12 of 12 malicious tool calls stopped at the action layer under an enforcing policy on Claude Code). For teams, it emits only category · risk · keyed one-way hash to a SIEM — a central audit trail without shipping anyone's prompt content — and maps its 67-threat rule-base to the OWASP LLM Top 10, MITRE ATLAS and STRIDE, positioned against ISO 42001, the EU AI Act and NIST AI RMF. Its recall is measured on a locked held-out set with a refusal baseline, not on a corpus it tuned against.
Where Sunglasses is stronger. Openness, multimodal reach, and adoption. Sunglasses is fully open source where MoorAI is open-core, so there is no proprietary layer to trust. It reads more of what an agent ingests — images with OCR and EXIF, PDFs, audio and video via transcription, and QR codes — where MoorAI does image OCR but not the rest. It is easier to adopt: pip install, a GitHub Action for pull-request scanning, and a browser demo. And it ships a larger raw pattern library — 1,546 patterns across 118 categories. Sunglasses reports its own numbers — 97.4% recall, 86.1% precision, 0 false positives on a clean-code regression corpus, and roughly 0.7ms on short inputs; those are their figures on their test, not a head-to-head against MoorAI.
Use both, honestly. They are more complementary than opposed. Run Sunglasses as a fast, fully open, multimodal filter on everything an agent ingests — in the editor, in the CLI, and on every pull request. Run MoorAI where the requirement is to govern the tool call at call time, to review the model's output, and to produce a central audit trail that contains no one's prompt content at all. One firewalls the input; the other enforces the action and proves it in the open.
Sunglasses capabilities are drawn from its published material at sunglasses.dev and github.com/sunglasses-dev/sunglasses, as of September 2026; competitor features change, so verify specifics against their current documentation. Quoted metrics (97.4% recall, 86.1% precision, 0 false positives, ~0.7ms) are Sunglasses's own, measured on their own corpus, and are not a head-to-head against MoorAI. ◐ = partial — present but narrower than the other column. — = unconfirmed, not necessarily absent: it marks a capability Sunglasses's material does not clearly document either way. MoorAI's 12 of 12 figure is from its own AMTSO-graded testing; MoorAI marks reflect shipped capability. Sunglasses is a trademark of its respective owner; this is an independent capability comparison, not an endorsement or an affiliation.