22
33# ArcBox
44
5- ** Sandboxed execution engine for AI agents, containers, and virtual machines .**
5+ ** A fast, open-source container runtime for macOS .**
66
7- ** Built from scratch in Rust -- from hypervisor to CLI .**
7+ ** Built from scratch in Rust. Drop-in Docker, native Kubernetes, and full Linux VMs .**
88
9- [ ![ License] ( https://img.shields.io/badge/license-MIT%2FApache--2.0-blue.svg )] ( LICENSE )
10- [ ![ Rust] ( https://img.shields.io/badge/rust-1.85 +-orange.svg )] ( https://www.rust-lang.org )
9+ [ ![ License] ( https://img.shields.io/badge/license-MIT%2FApache--2.0-blue.svg )] ( LICENSE-MIT )
10+ [ ![ Rust] ( https://img.shields.io/badge/rust-1.96 +-orange.svg )] ( https://www.rust-lang.org )
1111[ ![ Desktop] ( https://img.shields.io/github/v/release/arcboxlabs/arcbox-desktop?label=desktop&color=green )] ( https://github.com/arcboxlabs/arcbox-desktop/releases )
1212[ ![ Discord] ( https://img.shields.io/discord/1234567890?logo=discord&label=discord&color=5865F2 )] ( https://arcbox.link/discord )
1313[ ![ Telegram] ( https://img.shields.io/badge/telegram-chat-26A5E4?logo=telegram )] ( https://arcbox.link/telegram )
1414[ ![ Docs] ( https://img.shields.io/badge/docs-arcbox.dev-blueviolet?logo=gitbook )] ( https://arcbox.link/docs )
1515
1616</div >
1717
18- ---
19-
2018## Why ArcBox
2119
22- Computer Use is the next frontier for AI -- agents that can write files, run code, browse the web, and operate a real machine. But giving an agent a full computer means giving it a full attack surface. Containers share the host kernel; a single exploit and the agent is out.
20+ ArcBox is an open-source alternative to Docker Desktop and OrbStack on macOS.
21+ OrbStack set the bar for running Docker on a Mac quickly and with little overhead,
22+ but it is closed-source. ArcBox is open source under MIT/Apache-2.0, written from
23+ scratch in Rust, and aims to match it.
24+
25+ The same runtime gives each AI agent, CI job, or piece of untrusted code its own
26+ real microVM. The sandbox you run locally is the same primitive ArcBox Platform
27+ runs in the cloud, so you can build against local sandboxes and scale to a fleet
28+ without changing your code. ArcBox is in public beta. Join us on
29+ [ Discord] ( https://arcbox.link/discord ) , or
30+ [ open an issue] ( https://github.com/arcboxlabs/arcbox/issues ) .
2331
24- ArcBox solves this with Firecracker-style microVMs that boot their own Linux kernel in under 200ms. Each sandbox is a real computer -- real filesystem, real network, real process tree -- with VM-level isolation that containers can't provide. And when you just need Docker, ArcBox is a drop-in replacement for Docker Desktop.
32+ ## Quick start
33+
34+ ``` bash
35+ # Install with Homebrew
36+ brew install --cask arcboxlabs/tap/arcbox
2537
26- ## Three-Tier Runtime
38+ # or with the install script
39+ curl -fsSL https://get.arcbox.dev | bash
2740
28- | Tier | Isolation | Boot Time | Overhead | Use Case |
29- | ------| -----------| -----------| ----------| ----------|
30- | ** Container** | Namespace + chroot | Instant | ~ 1 MB | Standard Docker workloads |
31- | ** Sandbox** | microVM (own kernel) | <200ms | ~ 10-30 MB | Untrusted code, CI/CD, AI agents |
32- | ** Machine** | Independent VM | ~ 1.5s | ~ 200 MB | Full Linux dev environment |
41+ # Start the daemon and enable Docker compatibility
42+ abctl daemon start
43+ abctl docker enable
3344
45+ # Run a container
46+ docker run -d -p 8080:80 nginx
47+ curl http://localhost:8080
3448```
35- Host
36- ├── arcbox daemon (Docker API + gRPC)
37- │
38- ├── System VM (Container + Sandbox tiers, shared kernel)
39- │ └── arcbox-agent
40- │ ├── Container Runtime ── namespace + chroot
41- │ └── Sandbox Runtime ─── KVM microVM (<200ms boot)
42- │
43- ├── Machine VM "ubuntu-dev" (independent kernel + rootfs)
44- └── Machine VM "alpine-test"
49+
50+ Run ` abctl doctor ` to check the runtime, and ` abctl --help ` to see every command.
51+
52+ ## Containers
53+
54+ ArcBox is a drop-in Docker engine. It exposes a Docker-compatible socket and
55+ proxies to a guest ` dockerd ` , so the Docker CLI, your scripts, and your Compose
56+ files work without changes.
57+
58+ ``` bash
59+ abctl docker enable # creates and activates the "arcbox" Docker context
60+ docker run -d -p 8080:80 nginx
61+ docker compose up
62+ docker build -t myapp .
4563```
4664
47- ### Sandbox — Computer Use Runtime
65+ Containers, images, Compose, port forwarding, bind mounts, named volumes, and
66+ interactive ` exec ` all work today.
4867
49- Give an AI agent a real computer it can't break out of.
68+ ### amd64 and arm64 images
5069
51- - ** <200ms cold boot** -- KVM microVM with minimal device model (virtio-MMIO only, no PCI/ACPI/BIOS)
52- - ** <50ms warm start** -- snapshot/restore for instant sandbox cloning
53- - ** VM-level isolation** -- each sandbox runs its own kernel; a vulnerability in one cannot escape to others
54- - ** Real computer** -- real filesystem, real networking, real process tree -- not a simulated shell
55- - ** Disposable** -- spin up, let the agent work, tear down; no state leaks between sessions
56- - ** Docker-compatible** -- ` docker run --runtime=sandbox untrusted-image `
70+ ArcBox runs ` linux/amd64 ` images on Apple Silicon next to native arm64. x86-64 is
71+ translated inside the guest by [ FEX] ( https://github.com/FEX-Emu/FEX ) , an
72+ open-source emulator, with nothing to configure.
5773
58- ### Container
74+ ``` bash
75+ docker run --platform linux/amd64 alpine uname -m
76+ # x86_64
77+ ```
5978
60- Drop-in Docker engine replacement. Point your existing Docker CLI at ArcBox:
79+ ### Native Kubernetes
80+
81+ A local k3s cluster, managed by the daemon, with host integration for ` kubectl ` .
6182
6283``` bash
63- arcbox docker enable
64- docker run -d -p 8080:80 nginx
84+ abctl k8s start
85+ abctl k8s kubeconfig >> ~ /.kube/config
86+ kubectl get nodes
6587```
6688
67- ### Machine
89+ ### Migrate from Docker Desktop or OrbStack
6890
69- Full Linux VMs with persistent storage, SSH access, and their own init system .
91+ Import your workloads from another local runtime .
7092
7193``` bash
72- arcbox machine create dev --distro ubuntu
73- arcbox machine ssh dev
94+ abctl migrate from docker-desktop
95+ abctl migrate from orbstack
7496```
7597
76- ## Quick Start
98+ ## Sandboxes
99+
100+ ArcBox can also run disposable microVMs, each with its own kernel, for AI agents,
101+ untrusted code, and CI jobs. You can snapshot a booted, idle sandbox and restore
102+ copies of it to skip a cold boot.
77103
78104``` bash
79- # Install
80- curl -sSL https://install.arcbox.dev | sh
105+ abctl sandbox create --memory 512
106+ abctl sandbox run < id> -- ./untrusted-binary
107+ abctl sandbox checkpoint < id> --name clean # capture a ready snapshot
108+ abctl sandbox restore clean # start a new sandbox from it
109+ ```
81110
82- # Start the daemon
83- arcbox daemon start
111+ Create, run, exec, snapshot, and restore work today. We are aiming for cold boots
112+ under 200 ms, near-instant restore from a snapshot, and roughly 10–30 MB of
113+ overhead per sandbox.
84114
85- # Enable Docker compatibility
86- arcbox docker enable
115+ ## Bring your own machine
87116
88- # Run a container
89- docker run -d -p 8080:80 nginx
90- curl http://localhost:8080
117+ ArcBox Platform turns hardware you already own into cloud capacity. Enroll your
118+ Macs and Linux machines into a fleet, and they become on-demand compute for your
119+ team's sandboxes, builds, and CI, at the cost of your own hardware instead of
120+ premium cloud pricing. Apple Silicon is first-class, so the Mac capacity that the
121+ big clouds meter at a steep markup is simply yours to pool. (In development.)
122+
123+ ## Machines
124+
125+ When you want a complete environment instead of a container, ArcBox can create
126+ full Linux VMs, each with its own kernel, persistent disk, and a distro you
127+ choose.
128+
129+ ``` bash
130+ abctl machine create dev --distro ubuntu
131+ abctl machine start dev
132+ abctl machine list
91133```
92134
93- ## What Works Today
94-
95- - ** Container lifecycle** -- ` run ` , ` stop ` , ` rm ` , ` logs ` , ` exec ` , ` inspect `
96- - ** Image management** -- pull from Docker Hub and OCI registries (ARM64)
97- - ** Port forwarding** -- ` -p 8080:80 ` maps host ports into containers
98- - ** Volume mounts** -- bind mounts and named volumes
99- - ** Networking** -- internet access, DNS resolution, inter-container DNS
100- - ** Docker Compose** -- ` docker-compose up/down ` for multi-container stacks
101- - ** Context switching** -- ` arcbox docker enable/disable ` to toggle with Docker Desktop
102- - ** Machine management** -- ` create/start/stop/rm/ls/inspect/exec/ssh `
103- - ** 40+ Docker API endpoints** -- Docker Engine API v1.43 compatible
104-
105- ## Performance
106-
107- Custom VirtIO stack, zero-copy networking, purpose-built VirtioFS.
108-
109- | Metric | Container | Sandbox | Machine |
110- | --------| -----------| ---------| ---------|
111- | Boot | Instant | <200ms cold / <50ms warm | ~ 1.5s |
112- | Memory | ~ 1 MB | ~ 10-30 MB | ~ 200 MB |
113- | File I/O (vs native) | >90% | >85% | >90% |
114-
115- | | ArcBox | E2B (Firecracker) | Docker Desktop |
116- | --| --------| -------------------| ----------------|
117- | Sandbox boot | <200ms | ~ 150ms | N/A |
118- | Container boot | Instant | N/A | Instant |
119- | Idle memory | <150 MB | Cloud-only | 1-2 GB |
120-
121- ## Known Limitations
122-
123- | Feature | Status |
124- | ---------| --------|
125- | ` docker build ` | Not yet -- use ` docker buildx ` or pre-built images |
126- | Sandbox runtime (` --runtime=sandbox ` ) | Designed, not yet implemented |
127- | Machine distro management | Designed, not yet implemented |
128- | x86/amd64 images (Rosetta) | Not yet -- ARM64 only |
129- | Linux host | macOS first, Linux planned |
130- | GUI | CLI only -- desktop app planned |
135+ Creating, starting, and managing Ubuntu and Alpine machines works today. Shell
136+ and SSH access into a running machine is coming.
137+
138+ ## Built from scratch
139+
140+ Most of ArcBox's performance-critical code is custom rather than vendored:
141+
142+ - A VMM on Hypervisor.framework, with manual vCPU execution and a device model we
143+ maintain ourselves.
144+ - VirtIO devices: ` virtio-net ` , ` virtio-blk ` , ` virtio-fs ` , ` virtio-console ` ,
145+ ` virtio-vsock ` , and a balloon device.
146+ - A macOS networking datapath in userspace: DHCP, DNS forwarding, TCP via
147+ ` smoltcp ` , and host socket proxying, with no ` pf ` NAT or ` utun ` device.
148+ - VirtioFS/FUSE filesystem sharing, and a vsock guest agent that speaks protobuf.
149+ - x86 translation through FEX, so ` linux/amd64 ` images run on Apple Silicon.
150+
151+ These are the numbers we are working toward, with OrbStack for comparison:
152+
153+ | Metric | ArcBox | OrbStack |
154+ | --------| --------| ----------|
155+ | Cold boot | <1.5 s | ~ 2 s |
156+ | Warm boot | <500 ms | <1 s |
157+ | Idle memory | <150 MB | ~ 200 MB |
158+ | File I/O (vs native) | >90% | 75–95% |
159+ | Network throughput | >50 Gbps | ~ 45 Gbps |
160+
161+ ## Desktop app
162+
163+ ArcBox Desktop is a native SwiftUI app. It talks to the daemon over gRPC and uses
164+ the Docker-compatible API for Docker resources. It covers Docker (containers,
165+ images, volumes, networks) and Kubernetes (pods, services), and includes log
166+ streaming, a terminal, and a file browser for a container's filesystem. Source:
167+ [ arcboxlabs/arcbox-desktop] ( https://github.com/arcboxlabs/arcbox-desktop ) .
168+
169+ ## What's next
170+
171+ - Shell and SSH access for machines
172+ - Faster x86 translation
173+ - Linux host support (macOS first)
174+ - Wider Docker Engine API coverage
131175
132176## Requirements
133177
134- - macOS 13 (Ventura) or later
135- - Apple Silicon (M1/M2/M3/M4) -- Intel support in progress
136- - Docker CLI installed (ArcBox replaces the engine, not the CLI)
178+ - macOS on Apple Silicon. Intel support is in progress.
179+ - The Docker CLI. ArcBox replaces the engine, not the CLI; ` abctl docker setup `
180+ can install it for you.
137181
138182## Contributing
139183
140- See [ CONTRIBUTING.md] ( CONTRIBUTING.md ) for build instructions, code standards,
141- and development setup.
184+ See [ CONTRIBUTING.md] ( CONTRIBUTING.md ) for build instructions, code standards, and
185+ development setup. The runtime is open source under MIT/Apache-2.0. Personal use
186+ is free, and commercial use is free during the public beta.
142187
143188## License
144189
@@ -148,6 +193,6 @@ and development setup.
148193
149194<div align =" center " >
150195
151- ** [ Website] ( https://arcbox.dev ) ** · ** [ Docs] ( https://arcbox.link/docs ) ** · ** [ Discord] ( https://arcbox.link/discord ) **
196+ [ Website] ( https://arcbox.dev ) · [ Docs] ( https://arcbox.link/docs ) · [ Discord] ( https://arcbox.link/discord )
152197
153198</div >
0 commit comments