A self-hosted sandbox that boots a real virtual machine for AI agents. Hardware-isolated by Firecracker. No containers. No cloud.
Your AI talks to BunkerVM over MCP. BunkerVM boots a Firecracker MicroVM and relays commands over vsock. The agent never touches your host.
Claude, GPT, LangGraph
Host process
Alpine Linux sandbox
Eight MCP tools give full Linux environment access — including file transfer between host and VM. All commands run inside the VM — never on your host.
Run any shell command — Python, bash, curl, whatever the agent needs.
Create or overwrite files inside the VM filesystem.
Read file contents back from the VM to the agent.
Browse the VM directory tree.
Check VM health — CPU, RAM, disk, uptime.
Upload files from your host into the VM.
Download files from the VM back to host.
Wipe everything. Clean slate in seconds.
Containers share your kernel. A VM escape is orders of magnitude harder than a container escape.
Add this to your config file. On first run, BunkerVM downloads the micro-OS automatically.
{
"mcpServers": {
"bunkervm": {
"command": "wsl",
"args": ["-d", "Ubuntu",
"--", "sudo",
"python3", "-m",
"bunkervm"]
}
}
}
{
"mcpServers": {
"bunkervm": {
"command": "sudo",
"args": ["python3",
"-m",
"bunkervm"]
}
}
}
BunkerVM speaks the Model Context Protocol.
It works, but it's early.
LangGraph, OpenAI Agents SDK, CrewAI — install the extras, import the toolkit. Every tool call is logged.
from langchain_openai import ChatOpenAI from langgraph.prebuilt import create_react_agent from bunkervm.langchain import BunkerVMToolkit toolkit = BunkerVMToolkit() # auto-connects to running VM agent = create_react_agent(ChatOpenAI(model="gpt-4o"), toolkit.get_tools()) result = agent.invoke({ "messages": [("human", "Write a script that finds primes under 50, run it")] })
from agents import Agent, Runner from bunkervm.openai_agents import BunkerVMTools agent = Agent( name="coder", tools=BunkerVMTools().get_tools(), ) result = Runner.run_sync(agent, "Find primes under 50")
from crewai import Agent, Task, Crew from bunkervm.crewai import BunkerVMCrewTools coder = Agent( role="Engineer", tools=BunkerVMCrewTools().get_tools(), ) Crew(agents=[coder], tasks=[task]).kickoff()
$ pip install bunkervm[all] # LangGraph + OpenAI + CrewAI → write_file: /tmp/primes.py ← wrote 312 bytes → run_command: python3 /tmp/primes.py ← 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 🤖 The prime numbers under 50 are: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47.
One command to install. One config to connect.