Let your AI work.
Keep control.

A protection layer for the AI you ship.
Catch risky prompts, shape every policy, and trace every decision. All on your terms.

Self-hostedProvider-independent
Product previewOverview
Illustrative data

Overview

Live request throughput, enforcement decisions, and gateway health.

Sample workspace
Requests
12.8K

342 sent to review

Block rate
1.7%

218 blocked

Median latency
42 ms

p95 81 ms · p99 124 ms

Queue
0

2/16 workers active

Classification volume

RequestsBlocked

Gateway

Connected
Status
ok
Concurrency
16
Accepted jobs
12,840
Failed jobs
0
Provider circuit
Closed
218 blocked·342 sent to review
Local preview · no live trafficExplore Overview and Activity
Keep the intelligence. Define the boundaries.See how it works

Your stack.
One new boundary.

TSTypeScriptPythonRustCLIDockerPostgreSQL

Fast on the obvious.
Thoughtful on the rest.

Every request follows a clear path. Resolve known patterns locally, evaluate nuanced input in one model call, and return a decision your application can act on.

Local first

Catch what you already know.

Literal matches and RE2 rules handle known phrases, secret patterns, and tool context before inference.

Matched locally. Zero model calls.
Context aware

Ask better questions.

Write detectors in plain language. System One evaluates every enabled question together in a single request.

One call. All configured signals.
Policy driven

Make the outcome explicit.

Set your thresholds, weights, and failure behavior. Return an allow, review, or block decision with its trace.

AllowReviewBlock

Your policy.
Down to the last signal.

Security should be something your team can inspect and improve. Pyro keeps the controls close to the decisions they make.

Fine-grained control

The right boundary
for every application.

Tune review and block thresholds. Choose how signals combine. Import a profile, make it yours, and export it as readable YAML. Use the dashboard or CLI to manage the same profiles and local rules.

Explore protection profiles
balanced-assistantExample policy
Decision strategymaximum
AllowReviewBlock
Sample risk 0.68review
Move a threshold. See the decision change.
Infrastructure you own

A small layer.
A clear separation.

Run the gateway, dashboard, and PostgreSQL on your infrastructure. Keep your application independent of the model provider.

Your applicationHTTP API
pyroYour infrastructure
Local rulesKnown patterns
No local matchRule matched
System OneAll detectors · one call
Local decisionNo model call
Decision + signals + trace context

Semantic checks use your configured model provider.

Visibility without the guesswork.

Search by application, outcome, profile, or custom label. Follow a trace back to the rule or detector that made the call.

Activity · signals · trace IDs

Test a policy before enforcing it.

Compare up to three shadow profiles against the same traffic. See how a new threshold would change decisions.

Shadow evaluation · side-by-side results

Keep the rest of your stack in sync.

Route decisions to signed webhooks. Filter events, inspect deliveries, and retry failures from the dashboard or terminal.

HMAC signatures · delivery history

A few lines.
A lot more control.

Start in your terminal, then bring the same policy into your application. Classify with the CLI, use a typed client, or call the HTTP API directly. Your code enforces the decision.

  • Text, conversations, tool context, and JSON
  • Immediate decisions or background jobs
  • Application keys, custom labels, and trace IDs
  • Profiles, webhooks, and live activity from the CLI
Start with the CLICLI and SDKs available from source. Node.js 22+ for the CLI.
pyro.shTerminal
# Use your application's PYRO_API_KEY.pyro classify "Summarize this document." \  --profile balanced-assistant \  --labels '{"environment":"production"}'# Evaluate a request in the background.pyro jobs create "Summarize this document." \  --profile balanced-assistant# Stream decisions for your application.pyro events --count 10

Open by design.
Yours to run.

Apache 2.0, all the way through.

Inspect the source. Adapt the rules. Build on your terms.

Raw prompt storage is opt-in.

Store hashes and decision metadata by default.

Explore the source

More possibility.
Less left to chance.

Build with Pyro

Your infrastructure. Your policies. Your call.