Perseus · Available now

Ship AI to production.
Verify every call before it lands.

Where Orpheus secures how AI is built, Perseus secures how it's served. It sits in your request path and verifies every prompt, retrieval, tool call and model response at runtime — powered by the same verification engine that protects Orpheus.

FREE COMMUNITY TIER · 5,000 CHECKS/MO · NO CREDIT CARD — PYTHON & RUBY SDKs · PLAIN HTTP API
Perseus goes beyond the guardrail. A single classifier on the prompt only sees the prompt. Perseus verifies the whole transaction — what went in, what was retrieved, which tools were called, and what came back out — so you can trust what it blocks.
Why Perseus

Never look the attacker in the eye.

Your model shouldn't be the first thing to read untrusted input. Perseus takes it instead — the prompt, the retrieved context, the tool call, the response — and inspects it somewhere it can do no harm. Only what survives reaches your app.

"Ignore all previous instructions."
Commands buried in a retrieved document
A markdown image that ships your context away
A tool call no stranger should be able to make
Secrets and PII on their way out the door
A marble shield bearing the face of the Gorgon
01Your app trusts the model. It shouldn't.The problem

It reads its own attacker

Instructions hidden in a retrieved document, a support ticket or a tool response hijack the model — the user never typed a thing.

The response is a sink

A markdown image the model writes can exfiltrate your context on render. EchoLeak did exactly that to M365 Copilot — zero clicks.

Tools give it hands

Once the model can call MCP servers and internal APIs, a hijacked turn stops being a bad answer and starts being an action.

And the usual answer makes it worse: stack five guardrails at 90% accuracy each and you reject 41% of legitimate requests. Blocking is easy. Blocking only the right things is the hard part.
02A few lines around your modelSDK · API

Your model calls stay exactly as they are. Perseus checks what goes in and what comes out — the prompt, the retrieved documents, the response — from the Python or Ruby SDK, or three plain HTTP calls from any language. Works with any model, self-hosted included.

Python & Ruby SDKs: pre_verify / verify_retrieval / post_verify — one line per check, fail-open handled for you.
Plain HTTP API: three POSTs, one header. The whole wire contract fits on one screen; no SDK required.
Fail-open by default: if Perseus can't be reached, your app keeps serving and the gap is recorded.
NO REWRITE ANY MODEL FAIL-OPEN
app.py
# a RAG turn, verified end to end
verdict = perseus.pre_verify(user_message)
if verdict.blocked: return verdict.user_message

docs = retriever.search(user_message)
verdict = perseus.verify_retrieval(docs)   # catches poisoned documents
if verdict.blocked: return verdict.user_message

answer = model.generate(user_message, docs)
verdict = perseus.post_verify(answer)
✓ prompt, retrieval & output verified

A refusal returns blocked: true with a user_message ready to show — your existing response handling already covers it. The whole wire contract is public: read the integration guide.

03Verifiers built for the runtimeInput · Output · Tools

The same engine that verifies your developers' agents verifies your production traffic. Fast deterministic detectors run on the hot path; heavier LLM-powered policies run where the latency budget allows. A verifier either blocks or it doesn't — turn blocking off to watch it first, flip it on when you trust it.

Shipping today: prompt injection, PII, secrets, unsafe output, malicious tool arguments, and your own policies.
Mapped to OWASP LLM Top 10: one-click catalog presets for the risks you have to answer for.
You decide what's noise: content you've reviewed and accepted — test data, approved workflows — is one click from never alerting or blocking again.
perseus · verifiers
prompt_injection_moe input BLOCKING
unsafe_output output BLOCKING
secrets in + out BLOCKING
pii in + out BLOCKING
malicious_agent tool args BLOCKING
your-policy.pdf → verifier in + out PLAIN ENGLISH

Upload a policy document and Perseus compiles it into a live verifier — scoped to one app, or to every product in the company at once.

04Every AI transaction, on the recordEvents · Sessions · Violations

Every verification lands in a searchable stream, grouped by app, environment, session and end user — so "which customer hit this, how often, and what did we do about it" is a filter, not an investigation.

Events: every input, retrieval, tool call and completion across your apps — verified the moment it happens, in production.

Sessions, not just requests

A conversation is the unit of attack. Perseus tracks the session and the end user behind it, so a slow jailbreak across ten turns reads as one story instead of ten unrelated allows.

Tuned by you, in one click

Every violation carries an audit-trailed review, and content you've accepted for an app is one click from never alerting again — the same tuning loop Orpheus teams already run.

Your app calls a model
user prompt · retrieved context · tool call · completion
verified in the request path
Perseus verifies the transaction
inputs before the model, outputs before your users — in milliseconds
Allowed → responds
Blocked → safe fallback
Threats Perseus catches in the request path
  • Direct prompt injection: jailbreaks and system-prompt overrides, caught by an ML ensemble
  • Indirect injection: instructions smuggled in through RAG documents and tool output
  • Markdown image exfiltration: the EchoLeak and ForcedLeak class of zero-click leaks
  • Unsafe links in output: javascript: and data: URIs, SSRF and known exfil domains
  • PII disclosure: personal data leaving through prompts, context or completions
  • Secret leakage: API keys, tokens and credentials surfacing in either direction
  • Excessive agency: destructive or out-of-scope tool calls before they execute
  • MCP tool poisoning: hidden instructions in tool metadata and untrusted servers
  • Policy & compliance breaches: your own rules, written in plain English
  • Adversarial sessions: probing that only looks like an attack across many turns
Engineered to a budget

Security you don't have to apologise for.

Verification that costs a page-load is verification teams switch off. Perseus carries an explicit latency budget and skips any verifier that would breach it, rather than holding your response hostage to its own thoroughness.

Fail-open by default

If Perseus can't be reached, your app keeps serving and the gap is recorded. A security layer that can take your product down isn't one you'd leave switched on.

A budget on every verifier

Each verifier declares what it's allowed to cost. Go over and Perseus drops it from that call and tells you — one slow check never becomes your slow endpoint.

Deterministic on the hot path

Pattern and classifier checks run inline on every call. The expensive LLM-powered policies run where the budget allows, not in front of your user by default.

In active development

What lands next.

Being straight about what isn't built yet is part of being a security vendor worth trusting. These are in build now, not shipping today.

Provenance-aware runtime

A taint graph over the conversation, so untrusted content is blocked by where it came from — not just how it reads. Spotlighting research put indirect-injection success below 2%.

Cost & abuse circuit breakers

Per-app and per-end-user token budgets, plus jailbreak scoring across sessions, to stop runaway spend and sustained probing.

Streaming & multimodal

Chunk-level verification for streamed responses, and OCR and speech-to-text checks for image and audio inputs.

The perseus CLI

A codebase scanner that maps your AI attack surface to the OWASP LLM Top 10 and traces untrusted input to dangerous sinks — and knows which verifier fixes each finding, because it runs the same ones.

Put Perseus in front of your AI.

Start on the free Community tier — 5,000 verified checks a month, no credit card — or book a 30-minute walkthrough and watch your own production traffic get verified.