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
Run the agent, test what it builds, share the result, and review the work without moving any part of the workflow outside the sandbox.
paste.example.invalid:443.
This is host-observed: the proxy recorded it, not the box.
box-claimed: the box's own rendering of its page
box-claimed: the engine reports its own verbs — there is no socket for h5i to watch
box-claimed, fail-closed: the engine will not fetch what it cannot record
box-claimed, best-effort: drained from the page after the fact
what h5i refused, and why
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.
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.
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.
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.
The agent, child processes, dependencies, dev server, and browser run in the same boundary. Host files, browser profiles, and credentials stay outside.
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.
--tunnel for a browser-ready linkInspect the proposed diff and the boundary's record of what ran and what was denied. Only then apply the snapshot to the parent branch.
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.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.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.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.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.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.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