Redan runs AI coding agents inside microVMs with network-layer secret injection. Agents get a real dev environment but never see your credentials.
AI agents need API keys to be useful and sandboxes to be safe. Some agents ship built-in sandboxing, but each one does it differently. Redan provides a single, hardened execution layer that works with any agent: Claude Code, Pi, OpenCode, or whatever comes next.
A microVM boots in under a second. All network traffic routes through a TLS MITM proxy on the host that injects and scrubs secrets.
Each session runs in a libkrun microVM with its own kernel. No shared filesystem, no shared memory with the host.
Secrets are injected into HTTP headers by the proxy. The guest never sees real values, only placeholders.
No outbound connections unless you allow them. Wildcard patterns, private IP blocking, domain fronting protection.
Every connection, injection, and scrub event is logged. Structured JSON-lines for compliance and debugging.
Don't know what hosts your agent needs? Run once with --discover and redan prints a suggested allowlist.
Sub-second VM startup via libkrun. No daemon, no background service. Single binary, runs inline.
Everything between the agent and the internet is controlled by redan.
Guest VM (libkrun, <1s boot) โ โ virtio-fs (project dir, read-write) โ virtio-net (ethernet over unix socket) โผ smoltcp (userspace TCP/IP on host) โ โโโ UDP :53 โ synthetic DNS (no queries leave the host) โโโ TCP :80 โ rejected (HTTPS only) โโโ TCP :443 โ TLS MITM proxy โ โโโ SNI extraction โโโ ephemeral cert (per-session CA) โโโ secret injection (headers only, host-allowlisted) โโโ request forwarded to real upstream โโโ response scrubbed of secret values โโโ streamed back to guest
Works with Claude Code out of the box. Bring your own agent too.
Terminal
# Generate config and devcontainer redan init --claude # Build the image redan image import myproject --devcontainer .devcontainer/redan # Run the agent redan exec
Or configure manually with a redan.toml:
redan.toml
# Already have a Dockerfile? image = "claude-code" interactive = true [network] allow = ["api.anthropic.com", "*.npmjs.org"] [secrets.ANTHROPIC_API_KEY] value = "sk-ant-..." hosts = ["api.anthropic.com"] [mount.workspace] source = "."
Redan is BSD-3-Clause licensed. The full proxy, VM lifecycle, secret providers (including Vault), and all security logic ship in the open core.
This is alpha software. It works end-to-end, from redan init
through interactive Claude Code sessions with network policy enforcement,
but has not been through an independent security audit.
Read the security model.