← Developer site Brig · by osnavi
Self-hosted · No trackers
EN ▾

Run AI agents on your own terms.

Any agent. Any model. Captive to no one.

Self-hosted· Memory-safe· Model-agnostic· Swiss-rooted

Brig, by osnavi — the governance, containment & tamper-evident-audit gateway for AI agents.

▸ 12-slide overview — click or press → to begin

The wedge

Any agent. Any model. Captive to no one.

Govern any AI agent, run any model, on infrastructure you own — and swap a model the day it gets too expensive or too dumb, without changing anything else.

The gateway stays the same. Your policy, your audit, your egress controls — all unchanged. The model behind it is a single config line.

Ollama · Qwen local
DeepSeek local
vLLM / vendor API egress + audit
Brig governed unchanged

Switch the model — the governance, audit and controls don't move.

The stakes

Two captivities, one tool.

Blast radius

An ungoverned agent
  • Can delete a production database in 9 seconds — one wrong tool call, no undo.
  • Leaks secrets to the open internet — keys, tokens, customer data.
  • Is hijacked by prompt injection into running an attacker's commands.

Vendor capture

A single-vendor agent & model
  • Price & availability risk — the bill triples, the model degrades, a tier vanishes.
  • Terms you don't control — your code and infra flow through one foreign cloud.
  • Surveillance & lock-in — leaving means a migration, so you never leave.

Most tools fix one and deepen the other. Brig addresses both.

The gap

Why the usual answers fail.

Containers & VMs leak.

Shared-kernel CVEs let code escape, and egress is open by default — the agent can phone home.

Not contained
Policy can be misconfigured.

A YAML rule is only as good as the human who wrote it. One missed flag and the door is open.

Not guaranteed
A log you can't prove isn't evidence.

If the record can be edited — even by you — it can't satisfy an auditor or a regulator.

Not provable
Cloud "guardrails" tie you tighter.

A hyperscaler's built-in agent controls are a lock-in mechanism — more dependence, not sovereignty.

Not sovereign
The difference

By construction, not by policy.

The attack isn't blocked. It's impossible. Memory-safe, no-JIT sandbox · no ambient filesystem, network, or secret authority · deny-by-default capability gating.

Any agent allowed Brig Your systems
Memory-safe, no-JIT runtime

The two biggest browser-CVE classes — memory corruption and JIT bugs — deleted by construction.

No ambient authority

Sandboxed code gets no filesystem, network, or secrets unless a capability is explicitly granted.

Deny by default

Every action is denied until allowed — the safe state is the default, not an afterthought.

Full security architecture → the docs

Live demo

Allowed. Denied. Contained.

One command. ~10 seconds. No network. Ordinary work flows; dangerous actions are stopped before they touch your systems.

Allowed Denied Contained
Backed by make demo — reproducible, offline, on your machine.
brig demo
$ make demo
# egress allowlist: api.github.com · pre-approved shell: echo brig-ok
Read a file inside the workspaceALLOWED
Write a file inside the workspaceALLOWED
Write outside the workspaceDENIED
Fetch an allowlisted hostALLOWED
Exfiltrate to another hostDENIED
Sandboxed code calls fetch()CONTAINED
↳ fetch is not defined — no network in the sandbox
Pre-approved shell (HITL)ALLOWED
Unapproved shell (HITL)DENIED
# 9 decisions written to the tamper-evident audit ✓ verified
Provable audit

A log you can prove wasn't edited.

Every decision is written to a keyed (HMAC) hash-chain. Each record seals the one before it, signed with the operator's key.

Edit one record to hide a denied command — and verification catches it. Recomputing every hash fails without the operator key, so the record can't be forged, even by you.

Backed by the make demo finale — tamper, then re-verify.

Keyed hash-chain Tampering detected

#1read_file — workspaceh: 8f3a…c1
#2http_fetch — allowlistedh: 2b7e…9d
#3run_command — edited to hideh: 4c1d…7a
#4chain breaks here →h: ✗ mismatch

Change one byte at #3 and every hash after it no longer matches — and you can't recompute them without the key.

The anchor

Even truncation gets caught.

A hash-chain can't notice if you simply delete the tail — chop the last records and what remains still verifies cleanly.

So Brig signs the head of the chain with Ed25519. The auditor verifies with only the public key — never your secret — and truncation, reordering, or a forged head is caught immediately.

Backed by the make demo anchor beat.
#1 #2 #3 head · signed

The signed head pins the chain length — drop a record and the signature no longer matches.

Operator: secret key

Stays on your metal. Signs the head. Never leaves, never shared.

brig anchor-keygen
Auditor: public key

Verifies the signature alone. Catches truncation with zero trust in you.

brig verify
Showstopper

Exfiltration blocked — even to an allowlisted host.

A secret is reversed in the sandbox and POSTed to evil.example — which is deliberately on the egress allowlist — and is still blocked. The secret's provenance follows the value across the transform, not its bytes.

secret tracked reverse( ) bytes change POST → evil.example ✓ host is ALLOWLISTED BLOCKED fetch api.example → save (not secret) COMPLETED same runtime — only forbidden flows stop
The allowlist didn't stop it. The data-flow did.
Honest scope: applies to agents run through Brig's CaMeL runtime. For an external single-LLM agent over MCP, the gateway controls (gating, egress, audit) are the story. Backed by make demo-camel.
The moat

Agnostic and sovereign — the uncopyable position.

Any agent over MCP. Any model — local (Ollama / qwen2.5 — nothing leaves the machine) or vendor (under egress + full audit) — swappable in one config line. The US giants can ship guardrails; they can't be the sovereign, non-US, vendor-neutral choice.

Self-hosted

The gateway, your actions, and egress stay on your metal. Your code never leaves unless you choose a vendor model.

Model-agnostic swap

One flag selects the model. Point it at a local model for full confidentiality, or a vendor under audit — no migration.

Swiss-rooted

Independent, Swiss-rooted, anti-surveillance. A sovereignty halo no US hyperscaler can claim.

Proof, not a promise

Brig already runs a real question through a chosen model — qwen2.5, locally — selected by a single flag. Point the same flag at DeepSeek and nothing else changes.

# local — nothing leaves the machine
brig run-task --model qwen2.5

# one line later: a different model, same everything
brig run-task --model deepseek

# or a vendor, under egress + full audit
brig run-task --model vendor:…
Where it stands

It's real, and it ships.

200+ tests, all greenclippy clean · every feature combo
forbid(unsafe) · no-JITtwo biggest CVE classes deleted
Keyed audit + Ed25519 anchorstamper- & truncation-evident
OS-enforced brig run — macOS · Linux · Windowswrite-confinement proven on all three · v0.2.0
Model-agnostic ask worksreal local answers returned
Deny-by-default gatewaycapability-gated end to end

Honest limits

Today brig run confines the agent at your own user — a real boundary; isolating it as a separate, unprivileged user it can't become (privilege separation, for a hostile or multi-agent cohort) is the active next step. And we're not yet third-party pentested — design-partner stage, adversarial review welcome, a pentest the next unlock. We'd rather tell you than have you find it.

Isn't this just a sandbox?

No — a sandbox isolates one process. Brig governs every action across scoped FS, allowlisted egress, a memory-safe runtime with no shared kernel, and produces a provable, replayable audit.

Closed-source, solo — why trust you?

The gateway is open to review under agreement; a sealed source copy can be placed with a neutral third party for continuity; and the durable defense — sovereignty + speed — is one the US giants can't copy. A third-party pentest is next.

The ask

A scoped, paid pilot.

CHF 15–30k
60–90 day pilot

Deploy for one team, wire into their agent and SIEM, and deliver the tamper-evident audit + a report. Converts to an annual self-hosted, per-site license.

1
Deploy

Stand Brig up for one team, on their own infrastructure.

Week 1–2
2
Wire in

Connect their agent and SIEM; pick a model — local or vendor.

Week 2–6
3
Prove it

Deliver the tamper-evident audit and a written report.

Week 6–12
hello@osnavi.com

Brig, by osnavi — self-hosted · memory-safe · model-agnostic · Swiss-rooted. Run AI agents on your own terms.

to navigate · click to advance