Confined agents · Isolated browsers · Secure demos · Reviewed changes

Integrated Sandbox for AI Coding Agents

Give a coding agent full autonomy inside a secure, disposable environment. The agent, shell, dependencies, and browser all run together within one isolated boundary without credential leak.

curl -fsSL https://h5i.dev/install.sh | sh
Apache 2.0 · one Rust binary · no daemon, no SaaS · read the manual · source
500+GitHub stars 45+forks 15+contributors Apache 2.0open source, no lock-in

One box for the whole agent workflow.

Run the agent, test what it builds, share the result, and review the work without moving any part of the workflow outside the sandbox.

Run coding agents in secure sandboxes
Give Claude Code, Codex, and their child processes room to work inside a disposable boundary. Start lightweight in under 200 ms, or choose a rootless container or microVM when stronger isolation matters.
lightweight · container · microVM
Test web apps in isolated browsers
Run Chromium or the lightweight pure-Rust browser beside the dev server, inside the same boundary. The agent can drive it while you watch the viewport and take over.
Chromium · h5i-browser-light · h5i box view
Share demo services securely with others
Share a web app straight from its box over an end-to-end encrypted P2P connection, or create a browser-ready demo link for anyone else.
h5i box share · P2P | tunnel
Review agent changes and activity
Inspect what changed, what ran, and what was denied before anything returns to your repository. The evidence comes from the boundary, not from the agent describing itself.
patch.diff · report.md · receipt.json

The fleet and one box's evidence; then what that box's browser did, every row labelled with who observed it. Nothing here is a score, and every route is a GET: the console watches, it cannot drive a box. The layout is real, the fleet in it an example. Watch a box from create to export.

Coding agents cross every boundary in the development workflow.

A coding agent does more than run shell commands. It installs untrusted code, starts servers, drives a browser, and hands results to other people. Securing only the command line leaves the rest of that workflow exposed.

Autonomy comes bundled with host access
Run an agent directly on your laptop and it inherits your repositories, SSH keys, cloud credentials, and everything its dependencies can reach. Per-command approval just turns you into the security boundary.
Testing escapes into your real browser
If the dev server is isolated but the browser is not, testing crosses the boundary again. Your real profile, cookies, extensions, and local network become part of the agent's test environment.
Sharing a demo creates another exposure
To show a local result, you usually deploy a second copy, expose a host port through a tunnel, or ask someone else to reproduce it. Each option creates another environment or trust boundary to manage.
An agent summary is not an audit trail
"The tests pass" does not show what actually ran, which destinations were denied, what the page reported, or exactly which changes are about to return to your repository.

One secure path from task to reviewed result.

h5i (pronounced high-five) puts the whole session inside one disposable box. Creating the environment, testing in a browser, sharing a demo, and bringing the work back are explicit stages of the same local-first workflow.

01

Create the right boundary →

Start from a repository or pull request and choose the isolation the task needs: lightweight OS controls, a rootless container, or a microVM with its own kernel. An unavailable tier fails closed.

$ h5i box create fix-auth --profile agent-claude
under 200 ms lightweight · container · microVM
02

Build and test inside it →

The agent, child processes, dependencies, dev server, and browser run in the same boundary. Host files, browser profiles, and credentials stay outside.

$ h5i box view fix-auth
agent + toolchain + dev server + browser · one boundary
03

Share only the demo service →

Expose one port from the box without exposing your laptop. Use an end-to-end encrypted P2P connection when both sides have h5i, or generate a browser-ready demo link for everyone else.

$ h5i box share fix-auth --port 3000
encrypted P2P · add --tunnel for a browser-ready link
04

Review, then take the work →

Inspect the proposed diff and the boundary's record of what ran and what was denied. Only then apply the snapshot to the parent branch.

$ h5i box propose fix-auth
review diff · export receipt · apply snapshot

Frequently asked questions

The short answers. The manual has the long ones.

What is h5i?
h5i (pronounced high-five) is an integrated sandbox for AI coding agents. It gives a coding agent a complete, disposable development environment inside a single security boundary: the agent, workspace, shell, dependencies, dev server and an isolated browser all run together inside it, while your host files and credentials stay outside. When the work is done h5i exports a reviewable patch and execution logs. One Rust binary, Apache 2.0, local-first, with no hosted sandbox and no SaaS account.
How fast does an h5i sandbox start?
The lightweight tiers start in under 200 ms, which is what makes a box worth creating for an everyday agent task rather than only for a risky one. workspace and process are the fast path: they are a git worktree plus, at process, a Landlock and seccomp policy applied to a supervised process tree. container and microvm are deliberately slower, because one starts a container and the other boots a kernel. Pick the tier by the trust the run needs, not by the clock.
Does h5i support microVM isolation?
Yes. isolation = microvm boots a guest with its own kernel through microsandbox (msb), from the same OCI images the container tier uses. It is the one tier where the boundary is a hypervisor rather than a policy applied to a host process, so it is the rung to reach for when a shared kernel is not an acceptable assumption. It needs hardware virtualization on the host: /dev/kvm on Linux, Apple Silicon on macOS.
Can an AI agent use a browser inside the sandbox?
Yes. A browser box runs headless Chrome and a fresh profile inside the boundary, next to the dev server, so localhost means the same thing to both. The agent drives it from a CLI and reads an accessibility tree rather than raw HTML, clicking by handle. You can watch the same viewport over a loopback-only forward and take control at any point, which invalidates the references the agent held so it has to re-snapshot before acting. The page’s console errors and failed requests land in the execution log.
How is this different from just running the agent in a container?
A container is one of the five tiers h5i can use, and on its own it is the weakest at the thing that matters most here. Its egress allowlist is an HTTP proxy, so it only binds tooling that respects proxy settings. h5i’s supervised tier puts the box in a private network namespace and enforces the allowlist with nftables rules pinned to resolved IPs, plus a seccomp gate on socket(): a program that ignores proxy settings still cannot reach an off-list address. On top of that you get the copy-in workspace, the credential broker, the browser, and the output gate, which a bare container does not give you.
Do my credentials go into the box?
No. The model API key stays on the host; a reverse proxy injects it into outbound requests, scoped per runtime, so a Claude box cannot reach an OpenAI credential. Any other service works the same way as a policy entry rather than a feature. The per-box copy of your agent’s HOME config has credential-shaped entries stripped at any depth, keeping only the runtime’s own token, which it cannot function without.
What do I actually get out of a run?
Three files, after you inspect them: a path-validated patch.diff, a report.md ordered by how much each section deserves your attention, and a receipt.json of observed execution. Together they answer what changed, what ran, and what was denied. Export is a step a human takes, so the agent has no direct write path back to your repository.
Can the agent tamper with the receipt?
It cannot rewrite what is already recorded. The box’s only write window under its own directory is a staging spool; the receipt log and the stored payloads are siblings of that spool, outside every grant it has. The box stages a record, the host ingests it, and ordering and timestamps are the host’s. What an agent can still do is stage extra records or stop writing, and both are visible: a gap between host-observed exits and box-reported commands is itself a finding. We do not claim more than that.
Can it stop the agent leaking my source code?
No, and we will not imply otherwise. Containment stops the agent from touching your host. It does not stop it putting private code in a prompt to the model API. That is a separate control: a self-hosted model, or a profile with no model egress at all.
Does it need root, or a VM?
Neither, for the tiers most runs use. h5i uses Landlock, seccomp and unprivileged user namespaces, adding rootless Podman if you have it; only the microvm tier needs hardware virtualization. h5i box probe reports what your host can actually enforce, and runs a functional self-test rather than reading capability bits. An explicitly requested tier the host cannot satisfy fails closed: h5i never silently downgrades.
What are the limits?
Below the microvm tier the kernel is shared, so this is good against a runaway agent and careless dependency code, and is not a claim against a targeted kernel exploit. Chrome runs with its own sandbox off, because h5i’s seccomp policy denies the namespace syscalls it needs. The box is the boundary, not Chrome. The viewport is a page, not a desktop. And it is Linux first: rootless Podman on Linux and WSL2, with macOS confining through Seatbelt. The manual keeps the full list.
Is h5i free and open source?
Yes. Apache 2.0, written in Rust, local-first, with no lock-in, no hosted sandbox and no SaaS account required.
What happened to the provenance features?
h5i began as a provenance system: prompt versioning, AI-aware blame, an audit scan, a multi-agent orchestra, a dashboard. Those are gone. The boundary was always the part worth having, and the product is being rebuilt around it. ROADMAP.md is the plan of record: what stays, what was cut, and what is still coming.

Local-first. An integrated sandbox for agents.

Full autonomy inside a box that holds nothing of yours, and a reviewed patch on the way out. Apache 2.0. No SaaS, no lock-in.

curl -fsSL https://h5i.dev/install.sh | sh