Before your agent does something irreversible, make it ask permission

delete_production_resource is about to run. Should it?

One function call. Stateless, ~1.2ms policy evaluation. A signed receipt on every decision.

pip install mizaranpm install @mizara/sdk
Agentauthorize()ALLOWDENYREDACTRE_ROUTEYour APIs

Try it now

Run authorize() in your browser

Live

Powered by the published Mizara SDK. Runs locally in your browser.

DENY deletes against production, ALLOW everywhere else.

Edit the highlighted values below and hit Run.

policy.jsoneditable
authorize() calleditable
Runs locally. No network call.
result
DENY0.827msProduction deletion requires approval.
{
  "status": "DENY",
  "evaluation_metadata": {
    "triggered_rule_id": "rule_block_prod_delete",
    "policy_bundle_version": "pol_infra_guard_v1",
    "policy_version": null,
    "execution_time_ms": 0.827
  },
  "enforcement": {
    "action_halted": true,
    "user_facing_error": "Production deletion requires approval."
  },
  "cryptographic_receipt": {
    "id": "rcpt_0736da3d28bb3e4e",
    "hash": "e9599c2732dc559987a3afdc42f029507e0c7246914bf422eff3ab847517b862",
    "signature": "1f5c8c743548c47fbd4265a4679bdef7f55a27df5810d0029fc463c5dbe101d4838764b774d090ea3dcbbeb73f6b59395e4d3c33f615460453b4d449c8683e06",
    "algorithm": "ed25519",
    "public_key": "7c19147650e8e38bf46c6a2424c96680c52354fea1aee43000d72bf01212ab1a"
  }
}
Signed with a demo key generated in your browser for this session - production receipts are signed server-side and independently verifiable via GET /api/v1/public-key.

How it works

The gap between authenticated and authorized

Rules in plain JSON. No Rego, no Cedar syntax. Every decision - including ALLOWs - produces a cryptographically signed receipt, verifiable offline.

authorize.ts
const result = await mizara.authorize({
actor: { id: 'agent_v4' },
action: { name: 'delete_production_resource' },
resource: { attributes: { environment: 'production' } }
})

What it looks like

One policy check. Every consequential action.

The same authorize() call protects infrastructure changes, external communications, financial actions, and sensitive data.

authorize()
await mizara.authorize({
  action:   { name: 'terminate_compute_instance' },
  resource: { attributes: { environment: 'production' } }
})
DENYTerminating a production instance requires approval.

Performance

Designed for the critical path

Mizara evaluates synchronously, stateless, with no database query mid-request - so authorization never adds visible latency to agent execution. Real numbers from the production engine:

Mizara stateless engine~1.2ms
Traditional DB authorization check~85ms
System prompt guardrail400ms–1.2s*

Bar width is log-scaled. * system prompt is non-deterministic and cannot be relied on for enforcement

Request path

Agent

about to take an action

authorize()

one call, ~1.2ms

Policy engine

stateless, no DB query

Signed receipt

SHA-256 + Ed25519

For your compliance team

A log file can be edited.
A signed receipt cannot.

Every authorize() call produces a SHA-256 hash of the full decision payload, signed with Ed25519. Anyone can verify it offline with the public key alone - no live call back to Mizara, no trust required. That is what a SOC2 / EU AI Act auditor actually needs - not an append-only log file.

SOC2 readyEU AI ActTamper-evidentEd25519 signed

Receipt verification

Decision payload hashed with SHA-256
Hash signed with Ed25519 - verifiable offline
Receipt includes rule ID, actor, timestamp
ALLOW decisions are receipted, not just DENYs
Any tampered record fails hash verification

Decision console

Every authorization decision. Searchable. Auditable. Exportable.

Mizara dashboard Decisions panel showing a live stream of signed receipts by status and Evidence Vault export controls

Works with

Python
TypeScript
LangGraph
OpenAI Agents SDK
Anthropic
MCP

Start in 60 seconds

Sign up with your email. Get an API key. Make your first authorize() call.

v0.7.1 npm·v0.7.0 PyPI·Apache 2.0 - self-host or use the API·No credit card. No sales call.
Get your API key →