How it works

Fast when obvious. Cheap when possible. Smart when necessary.

Most messages finish in a few hundred milliseconds. Rules catch the obvious hits; a smart parallel pass handles nearly everything else; anything still uncertain gets a deeper, category-specific analysis, still under a second.

The cascade

Three lines of defense, in order.

[01]

Rules first

A living pack of common attack patterns. Deterministic match, no model, and nothing waits on the network.

reaches this stage100%
decides here
<1%
time to decide
<10ms
obvious cases
[02]

Smart, in parallel

Every enabled category is scored at once. If it isn't sure, it escalates — it does not let the case through.

reaches this stage~99%
decides here
~99%
time to decide
~0.2s
typical request
[03]

Deep analysis for hard cases

Each category has its own signals, scored by a dedicated algorithm — a structured verdict, not a free-form model guess.

reaches this stage<1%
decides here
<1%
time to decide
<1s
hard cases included

Typical requests finish in about 0.2s. The hard path is designed to stay under 1s. Shares are what we expect on ordinary product traffic, not our hard eval set.

Defaults

Defaults that work. Controls when you want them.

The complexity lives inside the system. What you see is a handful of switches.

  • policy

    Toggles, not tuning

    Eight categories. Switch any of them off, except Minors, which stays on. Changes apply on the next request.

  • decisions

    Uncertain is an honest answer

    When the guard isn't sure, it says so. You choose what happens next: escalate, block, or allow.

  • resilience

    Fail open or fail closed

    If a provider is down, your policy decides whether traffic flows or waits. Never a silent guess.

  • playground

    Try it before you wire it

    Paste a message in the playground and see the decision, the findings, and the latency against your live policy. No code.

  • agents

    Built for coding agents

    /llms.txt, OpenAPI, and problem+json errors. Point your agent at it and let it do the integration.

  • policies

    One policy per entrance

    Chat, agent tools, and public comments don't need the same rules. Give each its own policy under one project. The default works until you need more.

Observability

Know what's in your traffic.

Not just a request count. See how much was allowed, blocked, or escalated, which categories your users actually trip, and how much of your traffic needed a deeper analysis at all.

The escalation rate is the number to watch. As rules and thresholds mature it falls, and cost, latency, and data exposure fall with it.

Todayproj_01k7…dashboard preview · sample data

requests

12,481

Allowed
96.8%
Blocked
2.7%
Escalated
0.5%

decided by stage

Rules
0.5%
Smart
99%
Deep analysis
0.5%

escalation rate 0.5% ↓ 0.5 vs last week

findings by category

share of flagged traffic

  • prompt_attack
    41%
  • harassment
    22%
  • sexual
    14%
  • violence
    11%
  • self_harm
    6%
  • hate
    4%
  • illicit
    2%

sexual_minors: 0 findings today. Category stays on regardless of policy.

Put a guard in front of it. Keep building.

Nothing is billed today. Sign in, get a key, and you will hear from us before that changes.