Skip to content
A sandboxed runtime for untrusted AI agents

Security-first AI agents you actually run yourself.

Run autonomous AI assistants on infrastructure you control, reachable from the chat apps you already use. Every agent runs sealed off from the network and cannot change its own configuration without a human approving it. Isolation you can prove, not just promise.

OpenSSF Best Practices: passing OpenSSF Scorecard score Releases: cosign signed

Open source, self-hosted, and built to be verified. If the threat model earns it, give it a star or browse the examples.

$ git clone https://github.com/IronSecCo/ironclaw.git && cd ironclaw && \
  bash container/build.sh && docker compose -f docker-compose.demo.yml up --build -d

Zero credentials. No model key. Then open http://127.0.0.1:8787/ui/ and say hi — a real per-session sandbox launches and replies. Requires only Docker.

GitHub stars OpenSSF Best Practices: passing OpenSSF Scorecard score CodeQL workflow status Releases: cosign signed SBOM: SPDX and CycloneDX SLSA build provenance License: AGPLv3

Alpha software — the gVisor seal is Linux-only. See project status →

IronClaw live-containment demo (real terminal recording): a jailbroken agent's three escape attempts — reaching the network, reading a host secret, and seizing the host via the Docker socket — are each BLOCKED, and the run ends with a containment summary that 3 of 3 attempts were denied.
What it is

A secured alternative to running agents wide-open

Most ways to run an AI agent assume the agent is trustworthy. IronClaw assumes the opposite — that the agent, and the box it runs on, could be compromised at any moment — and builds hard, provable walls anyway. You get the same "talk to it in Slack, it gets work done" experience, without handing an LLM a shell on your machine.

Sealed sandboxes, not trust

Each agent runs with network=none in a gVisor (runsc) sandbox — read-only rootfs, dropped capabilities, no host network. It reaches the model only through a host-side proxy it never holds the key to.

A human approval gateway with no bypass

An agent cannot change its own persona, tools, packages, wiring, permissions, or mounts. Every capability change is held at a deterministic gateway until a human approves it, and every decision lands in an append-only audit log.

A release you can verify, end to end

Every release is re-derivable from a known commit and ships cosign signatures, SBOMs (SPDX + CycloneDX), and build-provenance attestations. Installers verify the SHA256SUMS manifest before executing anything.

Talk to it where you already work — 12 channel adapters (Slack, Discord, Telegram, and more). Bring your own model: Anthropic, OpenAI, Bedrock, Azure, Gemini, Vertex, OpenRouter, and local Ollama.

How it works

Three steps, one choke point

You message your agent

A message arrives over a channel you connected (Slack, Discord, Telegram, …). The control-plane spins up a fresh, per-conversation sandbox to handle it.

The agent works — sealed off

Inside a network=none gVisor sandbox, the agent reads, writes, schedules, and drafts a reply. It reaches the model only through the host proxy, and the outside world only through an audited, broker-mediated egress allowlist.

Sensitive changes wait for you

Anything that would change what the agent can do is parked at the approval gateway. You approve or reject; the result is applied and written to the audit log. Nothing bypasses that choke point.

message → gateway (HELD) → approve → applied → audit log

Why you can trust it

Built to be checked, not taken on faith

Runtime trust

  • network=none per-session sandboxes; model access via host proxy only.
  • gVisor (runsc) seal in production — read-only rootfs, dropped caps, nosuid,nodev,noexec.
  • Mandatory human-approval gateway, deny-by-default; agents can't reconfigure themselves.
  • Append-only audit log of every gateway decision.

Supply-chain trust

  • OpenSSF Best Practices: passing (live badge).
  • OpenSSF Scorecard + CodeQL run continuously in CI.
  • Reproducible builds — every release re-derivable from a known commit.
  • cosign-signed SHA256SUMS, SBOMs (SPDX + CycloneDX), and SLSA build-provenance; installers verify before executing.
"A release a user cannot verify is not a secured release." — the bar IronClaw holds itself to
See it work

See it actually work — no key, no signup

The fastest way to believe any of this is to watch an agent reply on your own machine. The offline mock-agent runs the full engage → sandbox → reply path with no model key and no account — it launches a real per-conversation sandbox container and routes the reply back through the encrypted per-session queue.

Zero-credential chat demo terminal session: one command (docker compose -f docker-compose.demo.yml up -d) starts the offline mock-agent control-plane with no API key; a chat message engages the agent, which launches a real per-session sandbox container (ic-sbx-…); the reply flows back through the encrypted per-session queue.
A faithful re-enactment of the commands below. Animation respects prefers-reduced-motion.
git clone https://github.com/IronSecCo/ironclaw.git && cd ironclaw
bash container/build.sh    # build the sandbox image once (~1–2 min)
docker compose -f docker-compose.demo.yml up --build -d    # start the demo control-plane

Then open http://127.0.0.1:8787/ui/ → Chat tab → "Mock Agent (offline)" → say hi. If prompted for a token, paste ironclaw-demo. Tear down with docker compose -f docker-compose.demo.yml down.

The demo relaxes the seal for convenience — it uses runc (shared host kernel), not gVisor, and a well-known token. The approval gateway, encrypted per-session queues, and host-side credential custody are unchanged. The production docker compose up is the hardened, gVisor posture.

…and the whole journey, end to end

Where the clip above stops at "it replies," this one keeps going: the one credential step (the key stays host-side), then a first real agent task — held at the approval gateway, approved by a human, and written to the append-only audit log.

End-to-end IronClaw walkthrough in three acts. Act 1: one command starts the offline mock-agent and it replies with no API key. Act 2: connect a real provider by exporting a host-side, redacted ANTHROPIC_API_KEY and starting the real control-plane (each session sealed with gVisor and network=none). Act 3: the agent submits a persona change that is HELD at the human-approval gateway, a human approves it, and the submit, approve, apply trail lands on the append-only audit log.
Zero-cred demo → connect a real provider → first approved task. Faithful re-enactment; the animation freezes on the final frame under prefers-reduced-motion.
FAQ

Straight answers

Is it really free / open source?

Yes — IronClaw is open source under AGPLv3, with a commercial license available for teams that can't meet AGPL's terms. Self-hosting needs no account and no payment.

Do I have to hand over my API keys?

Model credentials are held host-side only and never enter a sandbox. The demo needs no key at all; a real agent reaches a provider through the host proxy.

Does the security actually hold on my OS?

The full gVisor (runsc) seal is Linux-only. The whole host side runs natively on macOS, but a real agent sandbox there falls back to runc inside Docker Desktop's Linux VM — a weaker, kernel-shared boundary. Run production on Linux.

Is it production-ready?

It's alpha. The control-plane, gateway, and encrypted-queue core have real coverage (800+ Go tests plus a black-box parity suite); channel adapters, some tools, and a live sandbox launch are exercised more lightly. Don't point it at anything you can't afford to lose yet.

How do I know the binary I download is the one you built?

Every release ships cosign signatures, SBOMs, and build-provenance attestations, and the installers verify the SHA256SUMS manifest before running anything. The release runbook walks through verifying it yourself.

How is this different from running an agent framework directly?

Most frameworks trust the agent. IronClaw seals it off from the network and makes every capability change pass a human approval gateway. See the comparison page.

Run a sealed agent in the next five minutes.

One command, no credentials. If you like what you see, the production path is Linux + gVisor — and every step of it is documented.

Read the comparison →