The person approved something else
Approve says yes to a description. The details change after the click.
Underwrit binds approval to the exact arguments. Any change, no run.
A checkpoint between AI agents and their tools. Routine actions pass, risky ones wait for the right people, and every decision is sealed into a record anyone can verify offline.
Agents now send email, move money and change production. Here is where approvals and audit logs break.
Approve says yes to a description. The details change after the click.
Underwrit binds approval to the exact arguments. Any change, no run.
A hidden line in a ticket steers what the agent does next.
Underwrit checks who named the recipient. A stranger? A person decides.
Whoever runs the database can rewrite history unseen.
Underwrit chains and signs every entry. One changed byte fails the check.
A $4,800 refund. Policy: over $1,000 needs two people. Press play.
The runtime sends the call to Underwrit before any tool runs.
Underwrit sees it before anything happens, not after.
Customer and amount came from the user. But $4,800 is over the limit.
We call this influence is not authority: content can suggest, only people can decide.
Verdict: held. The agent pauses; two named people are asked in the console, Slack or Teams.
Verdicts: allowed, recorded, held or denied.
Priya and Sam approve this exact call, this policy version, until 15:00.
The overlap in our logo is this moment: two people agreeing.
A changed amount is refused. The matching claim runs once.
An approval is a contract, not a flag.
Signed by your plane, cosigned by witnesses, timestamped.
Signed with Ed25519, witnessed, timestamped with RFC 3161.
The pack carries its own verifier. No account, no network, no trust needed. Then edit one byte and run it again.
Or drop the pack on the browser verifier, linked under Get started.
Templates, your limits, plain words. Same call, same verdict, every time.
45 templates, each also a signed pack past the first seven: coding agents, package installs, MCP servers, Kubernetes, Terraform, cloud IAM, CI/CD, refunds, AP2 mandates, accounts payable, Slack and Teams, CRM, support, HR, finance, data retention, incident response, SOC 2, GDPR, PCI DSS, HIPAA, the EU AI Act, DORA and SEC 17a-4. Templates never switch enforcement on and never loosen what you already wrote. A new environment starts monitoring only, and the what-if replays your recorded traffic under a draft before you apply it.
Every entry fingerprints the one before it. Edit one and the chain breaks. Try it.
Editing the record breaks the chain. Editing the software that writes it shows too: every pack carries a signed statement of the build that made it, and the verifier warns about a modified build or an install over its free limit.
Their own workspace: pick a framework, draw a reproducible sample, test, sign.
controls mapped, from access to change management.
Annex A controls for an AI management system.
articles on record-keeping and human oversight.
subcategories across Govern, Measure and Manage.
The mappings are our reading of each framework, not a certification. Whether a control is in scope, and whether the evidence is enough, is the auditor's call.
The data plane decides next to your agents. The control plane is never in the path.
Next to your agents. Decides every call.
Fleet policy, organisations, witness.
A sidecar, the gateway you already run, or twenty lines of SDK.
Each one carries its plan. The free console shows the paid ones locked, never hidden. How each one works.
Built after 1.0 and arriving with the next release. Adaptive campaigns, injection tests, replays and provider checks call your agent or model endpoint; those calls were tested against stand-ins. Preview: the Teams bot and the durable engines are tested against stand-ins of each service, and the confidential gate's attestation is simulated. Partner: the witness network needs independent operators, and Warranty cover needs a carrier; neither is offered yet. Export mappings are our reading of each text.
The product comes licensed. Checking a record or calling a plane is public and MIT.
docker run --rm ghcr.io/underwrit-io/underwrit:0.6.0 quickstartDrop the pack on the browser verifier, where nothing is uploaded, or run the same checks from the public verifier repository with Python's standard library.
git clone https://github.com/underwrit-io/verifier && python3 verifier/python/verify.py session.zipThe Python client asks a data plane before each tool call, claims approvals and records outcomes. The TypeScript client is npm install underwrit-client.
pip install underwrit-clientThe suite ships with the product: python3 -m underwrit eval. Our own cases, so a floor, not an audit.
attacks stopped with the reference policy, across the OWASP agentic risks and data exfiltration.
honest look-alike actions allowed. The one hold: restarting a production pod, held as irreversible.
tampered evidence packs caught, including a deleted decision with the log key in the attacker's hands.
policy template checks pass. The suite found a real spend-limit bug, now fixed.
Everything that decides, records and verifies is free for one environment and one team.
For one team putting its first agents in front of real tools. Self-hosted.
Request the free editionFor one team taking its agents from staging to production. We host the control plane.
Start with StarterFor a team whose agents run in many places and need the controls marked Team. We host the control plane.
Request a trialFor regulated companies with many teams. On Underwrit Cloud or self-hosted under a licence.
Talk to usAn environment is one data plane deployment, however many replicas it runs. The limit is checked only when a second team or environment is created. That request is refused with a link to the plans. Nothing already running is slowed, stopped or cut off.
In the free console you see every page, including Fleet, Keys and witnesses and the auditor workspace. Organisation needs a paid plan, and paid features on Assurance, Partners, Incidents and Policy lab show locked with what they do and a See plans link.
402 · a second environment needs a licenceSee plans| Where the plans differ Prices in US dollars, before tax. | Free$0 | Starter$99 / month or $990 / year | Team$490 / month or $4,900 / year · 14-day trial | Enterprisefrom $4,000 / month, billed yearly |
|---|
| Every feature | Free$0 | Starter$99 / month | Team$490 / month | Enterprisefrom $4,000 / month |
|---|
✓ included · – not included. An environment is one data plane deployment with its own record, for example staging or production, however many replicas it runs. A team is one organisation's set of members and roles. A self-hosted install that reaches a second environment or team asks for a licence; what already runs keeps running. Paid self-hosted installs get a signed licence key, checked offline.
A checkpoint between your AI agents and the tools they use, which decides whether each action may run, gets the right people to approve the risky ones, and keeps a signed record that anyone can check.
Routine actions are decided on your own data plane in milliseconds and go straight through. Only actions your policy holds wait, and they wait for a person, not for us. The hosted service is never in the path of a decision.
No. Arguments, sessions and the record stay on your data plane. The hosted control plane receives policy versions, usage counts and the size and root fingerprint of your log, which is what a witness needs. It has no place to store an argument.
The data plane, control plane, console, gateway, integrations, policies, templates and evaluations, free for one environment and one team. The evidence format and the verifier are MIT licensed and public, so anyone can check a pack without our software. A second environment or team needs a paid plan, as do members, SAML and SCIM, and the hosted service. Of the features built after 1.0, these are free too: passkey-signed approvals, observed outcomes, free policy packs, durable-workflow adapters, enrolling in the witness network, checking agent passports and the certification badge. Nothing that is already running is cut off.
Underwrit works end to end today, and we are hardening it with early users before general availability. Expect changes before then. The evidence format is versioned, so packs you make during the beta stay verifiable with the public verifier.
No. Underwrit is proprietary software under the Underwrit Software Licence, free to use for one team and one environment. What you need to check a record without us is public under the MIT licence: the evidence format, the verifiers and the client libraries, in github.com/underwrit-io/verifier.
Request it from the Get started section, or write to admin@underwrit.io. You get the package and a licence for one team and one environment. Install it on your own machine or cluster; nothing about your agents leaves it.
Once a day, each plane sends a signed check-in: an install id, whether it is a data or control plane, its version and edition, the licence id and its limits, how many teams and environments it counts against them, and whether its build is the one we signed. A data plane also sends the install id of the control plane it takes policy from, and a digest of its node name (never the name, which is often a host name). Nothing about agents, decisions, arguments, policies, evidence or people. Set UNDERWRIT_CHECKIN=off to stop it; the licence then relies on an audit instead. The licence explains both.
Two need an outside partner: the public witness network has no independent operators yet, and Underwrit Warranty needs an insurance carrier, so cover is not offered. Three are previews: the Teams bot and the Restate, DBOS and Inngest adapters are tested against stand-ins of each service, and the confidential gate simulates attestation instead of checking a hardware vendor's chain. Regulator export and framework mappings are our reading; your counsel decides what is filed.
Yes. A risk statement, an export, a certification result and an agent passport are each signed with your plane's key, and the public MIT verifiers check them offline. Issuing them depends on your plan; checking them never does.
Yes, and new environments do. Underwrit records what would require approval and what it would block, without blocking anything, and the console says so on every page where it matters, so you can read the report, tune the policy, and then switch enforcement on per environment.
Starter if one team needs Free's features in more than one place, such as staging and production: up to three environments on Underwrit Cloud for $99 a month. Team when you need more environments than that, or the features marked Team, such as connector certification, incident regressions, PagerDuty and Jira routing, or a named sponsor per agent. Moving up keeps everything you have.
Yes. Companies with fewer than 25 people pay half price for Team for the first year: $245 a month, or $2,450 for the year. Write to admin@underwrit.io from your company address.
Your account becomes read-only. Nothing is deleted, and you can still export every evidence pack. Your data planes keep deciding from their last policy.
No. Underwrit gives your auditor evidence mapped to those frameworks and a workspace to test it. The auditor decides what is in scope and whether the evidence is enough.