provos/ironcurtain
A secure* runtime for autonomous AI agents. Policy from plain-English constitutions. (*https://ironcurtain.dev)
IronCurtain – Secure Runtime for Autonomous AI Agents
What it is – IronCurtain is a research‑prototype platform that lets you run LLM‑driven agents (e.g., Claude Code, Goose, Codex) while keeping the host system safe. You write a short, human‑readable constitution that states what the agent may or may not do. IronCurtain uses an LLM‑based compiler to turn that text into a deterministic policy, validates the policy with generated test scenarios, and then enforces the rules at runtime for every tool call the agent makes.
Why it matters – Current agent frameworks give the model full user privileges (filesystem, network, credentials). A single prompt‑injection or drift can cause destructive actions. IronCurtain’s model‑context‑protocol (MCP) interposition and V8/Docker sandboxing provide defense‑in‑depth: the agent is treated as untrusted, and all external effects are mediated by a policy engine that can allow, deny, or escalate to the human.
Key concepts
- Constitution → compiled policy – Write intent in plain English; the system annotates MCP tools, compiles if/then rules, resolves dynamic lists, generates test scenarios, and verifies the policy before use.
- Policy engine – Runs outside the sandbox; every MCP request (filesystem, git, network, package install, etc.) passes through it.
- Escalation UI – When a rule requires human approval, IronCurtain shows an overlay in the terminal multiplexer (Ctrl‑A command mode) or via a web UI, allowing one‑key approve/deny/whitelist.
- Two agent modes –
- Builtin Agent (Code Mode) – IronCurtain’s own LLM writes TypeScript that executes in a V8 isolate.
- Docker Agent Mode – An external LLM runs inside a Docker container with no public network; all its API calls are MITM‑proxied and all MCP calls are policy‑checked.
- Personas & Skills – Named policy profiles (personas) bundle a constitution, compiled rules, workspace, and semantic memory. SKILL.md packages can be mounted read‑only into every Docker session to give agents domain‑specific guidance.
- Workflows – Pre‑built multi‑agent pipelines (e.g., vulnerability discovery, design‑and‑code) orchestrate several agents, each with its own policy, and expose a web UI for monitoring and human gates.
How to get started
- Install the CLI globally:
npm install -g @provos/ironcurtain(requires Node 24/26). - Export an LLM API key (
ANTHROPIC_API_KEY,OPENAI_API_KEY, orGOOGLE_GENERATIVE_AI_API_KEY). - Run
ironcurtain setup– the wizard creates~/.ironcurtain/config.jsonand helps you add a GitHub token, web‑search provider, etc. - Launch the recommended terminal multiplexer:
ironcurtain mux. The agent appears in a PTY; any tool call that needs approval pops up an inline picker. - (Optional) Customize the policy:
ironcurtain customize-policy→ edit the generatedconstitution-user.md→ironcurtain compile-policyto rebuild the deterministic rules.
Running modes
ironcurtain start "<prompt>"– one‑shot task, builtin agent or Docker agent via--agentflag.ironcurtain mux– full interactive TUI with escalation handling.ironcurtain daemon --web‑ui– background service for scheduled jobs and a browser‑based UI.ironcurtain workflow start <name> "<goal>"– launch a defined multi‑agent workflow.
Status – Labeled Research Prototype. The API, configuration format, and overall architecture are expected to evolve. The project includes CI, npm publishing, and a growing set of documentation (SANDBOXING.md, WORKFLOWS.md, etc.).
Where to learn more – Official site: https://ironcurtain.dev (includes the “What do we mean by secure?” FAQ). The repository contains detailed design docs, a demo GIF, and a web UI for workflow inspection.
Related
- Project
- Project
- Project
- Project
- Project