Stop using Docker to sandbox AI agents.
Most people are protecting the wrong thing.
Docker and devcontainers strip away a lot of what makes an agent useful. Auth has to be forwarded, API keys end up in environment variables, updating means rebuilding images, and everything still shares the same kernel.
VMs give stronger isolation, but every task starts from a blank slate. You lose the local context sitting on your machine and pay a cold start penalty every time.
firejail and seccomp help, until the agent needs to install packages, run build tools, or do anything outside a carefully curated syscall list.
Then there are approval prompts. They work for a single agent. Once you have ten agents running in parallel, everybody eventually clicks "allow all" and moves on with their day.
The assumption behind all of these approaches is that the agent needs the sandbox.
I think the code needs the sandbox.
The agent is something you chose, configured, authenticated, and connected to your tools. The risky part is the model-generated shell command that just got written five seconds ago. That command might contain a bug, a prompt injection, or something outright hostile.
Temenos (
github.com/vitalops/temenos) splits the system at exactly that boundary.
The agent stays on the host with access to auth, MCP servers, updates, and model APIs.
Execution happens inside a rootless gVisor sandbox with its own userspace kernel. The host filesystem only appears where you explicitly mount it. Network access can be switched off with a flag.
The separation is enforced by the toolchain itself.
Claude starts without Bash, Read, Write, Edit, or any other tool that can directly touch the host. The execution path available to the model goes through the sandbox.
That means scaling to fleets of agents without living inside approval dialogs.
```
pip install "temenos[all]"
cd ~/code/my-repo
temenos claude
``
Trust the agent.
Contain the code it generates.
Everything else falls out naturally from that.