For developers

Build AI you can turn loose.

Trinitite is the control plane for everything your AI does. Wrap it once and every call, tool, and command runs through a Guardian Agent that fixes the wrong moves before they happen. Keep your model. Keep your keys.

works with any provider · SDK, proxy, MCP, CLI, or your network

control plane
live
SDKyour appProxyone base_urlMCPagent toolsCLIagent shellNetworkSWG or oursGUARDIANVERDICTallowfixmaskblockask
wrap once · governed everywhere

The big idea

Wrap it once. Governed everywhere.

Most tools stop at the API call. Trinitite governs the whole surface: your models, the tools and commands your agents use, and the AI traffic crossing your network. One control plane, one result.

2
lines of code to wrap what you already run
5
surfaces governed: SDK, proxy, MCP, CLI, and network
providers and tools, keep your model and your keys

Where it plugs in

Five ways in. One control plane.

Start with two lines of code or one line of config. The network door means even the AI apps you did not build get governed the same way.

SDK wrap

Wrap the AI you already use

Keep your model and your keys. Wrap your client in two lines and every answer runs the rails first.

tr.client("openai")

Drop-in proxy

Change one line, write no code

Already have an OpenAI client? Point it at us with one base url. Nothing else changes.

OPENAI_BASE_URL=…/v1/proxy

MCP tools

Govern every tool your agent calls

Register your MCP servers and each tool call is checked before it fires, not after the damage.

scope.mcp.register("zendesk")

CLI firewall

Give an agent a shell without the fear

Safe commands just run. Risky ones get held for a human. Your agent gets hands, you keep the brakes.

scope.cli.allow(["git status"])

Network + SWG

Govern all the AI traffic on your network

Not just the apps you built. Plug into your Secure Web Gateway, or run our lightweight gateway, and every AI request on the network is governed the same way.

your SWG · or our gateway

Already have an OpenAI client? Change one line:OPENAI_BASE_URL=https://api.trinitite.ai/v1/proxy

See the drop-in guide

How a call flows

One trip through the rails.

Follow a single request. The same path runs whether it is a model answer, a tool call, a shell command, or traffic on your network.

govern · receiptlive
»badge: Each agent carries its own short-lived badge, so it can only touch what it should.

Training, where we shine

Your Guardian gets smarter every day.

This is the part other tools cannot copy. Every decision your rails make becomes fuel for the next one. It is a loop, and it tightens every lap.

LAP01

Step 1 / 7 · Govern

Every call gets a verdict

Runtime enforcement decides allow, fix, mask, block, or ask on live traffic.

sharper each lap

  • Every governed decision becomes clean, labeled training data.
  • We generate variations and synthetic edge cases to cover what your traffic has not hit yet.
  • Train a custom Guardian Agent per workflow or risk, not a generic filter.
  • Red-team it with real attacks, then gate it so it only ships when it clears your bar.

One result, everywhere

The same answer shape, every time.

A model call, a tool, a command, or network traffic all hand you the same result: a verdict, a plain reason, the fix it made, and the rule it followed. Flip the tabs and watch it stay the same.

  • allowlooks good, let it through
  • fixcorrect the wrong part in place
  • maskhide secrets, restore them inside your walls
  • blockstop it before it happens
  • ask a humanpause and get a person to sign off

GovernanceResult

Model call

fix

reason

The refund was over the policy limit, so it was corrected in place.

fixed

refund $900refund $500

rule it followed

refund-policy.maxsoc2.CC6.1
same shape on every surface · logged with the reason

Test mode

Build it all before you touch prod.

Test keys mean no billing. Force any verdict to see how your app handles a block, a fix, or an ask, the same way you use Stripe test cards. Ship when it feels boring.

test_mode.py
tr = Trinitite(env="test")           # test keys, no billing

resp = tr.client("openai").chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Refund order #4821"}],
    force_verdict="blocked",         # like a Stripe test card
)

r = tr.result(resp)                  # a full, real result. nothing charged.

Questions

Built for builders.

  • Do I have to change my model?

    No. You keep the model and provider you already use. Wrap your client in a couple of lines, or just change your base url, and everything else keeps working.

  • Is it only my API calls that get governed?

    No, and this is the point. The same rails cover your model calls, your MCP tool calls, the shell commands your agents run, and even the AI traffic crossing your network through a Secure Web Gateway. You can plug into your own gateway or run our lightweight one.

  • What does the Guardian Agent actually do?

    It reads every answer, tool call, and command your AI is about to make and picks one of five: allow it, fix it, mask it, block it, or ask a human. It runs before anything happens, so a bad move never fires.

  • Can I train it on my own rules?

    Yes, and it gets better over time. Every governed decision becomes clean training data. We generate extra hard cases, train a custom Guardian for each workflow or risk, red-team it, and gate it before it ships.

  • Can I try it without touching production?

    Yes. Test mode uses test keys with no billing, and you can force any verdict to see how your app handles it, the same way you use Stripe test cards.

  • What do I get back on every call?

    A verdict, a plain-English reason, the fix it applied if any, and the exact rule it followed. The same shape comes back whether it was a model call, a tool call, a command, or network traffic.