Show HN: Drydock – VM Sandboxes for macOS Autonomous Coding Agents Drydock, a new open-source tool, runs autonomous coding agents like Claude Code and OpenAI Codex in hardware-isolated VMs on macOS, preventing compromised agents from accessing API keys, filesystems, or the internet. The alpha release (v0.1.4) requires macOS 26+ on Apple silicon and uses a deny-by-default egress policy with short-lived, budget-capped tokens. The project is single-maintainer and has not undergone a third-party security audit. drydock runs autonomous coding agents Claude Code or OpenAI Codex , per-task selectable on your own Mac — not someone's cloud — each task sealed in its own hardware-isolated VM . It starts from the assumption that the agent is already compromised: your real API key never enters the sandbox a host-side gateway hands it short-lived, budget-capped tokens , egress is deny-by-default , and the only thing that crosses back out is a git diff you approve before it reaches origin. Most agent tooling tries to keep the agent well-behaved — permission prompts, output filters, policy. drydock takes the opposite stance: contain the blast radius so a hostile agent a poisoned repo, a malicious dependency, a prompt-injection that turns a fetched URL into a shell command can't reach your key, your filesystem, your push credentials, or the open internet — regardless of what it tries. Status: working alpha v0.1.4 .The full task lifecycle works end-to-end — submit → isolated VM → gated diff → push — and drydock ships through a Homebrew tap. It is pre-1.0 and single-maintainer: only main is supported, behavior and config can change between minor versions, and it hasn't been hardened by real-world use.There has been no third-party security audit— the security model is written down in detail in the threat model , so read that and decide for yourself before trusting it.Hard requirement: macOS 26+ on Apple silicon— it runs on Apple's container runtime itself 1.0 , so it won't run anywhere else. Security claims: THREAT MODEL.md /sricola/drydock/blob/main/THREAT MODEL.md . Website: https://sricola.github.io/drydock/ https://sricola.github.io/drydock/ Prerequisites anything you don't already have brew install --cask container brew install squid The PR/MR adapters call gh , glab , or tea — install whichever your repos use, and run their respective auth login before submitting a task. brew tap sricola/drydock brew trust sricola/drydock personal taps require explicit trust brew install drydock drydock init Pulls a pre-built Apple-silicon binary from the latest tagged release currently v0.1.4 ; no Go toolchain required. brew install go git clone https://github.com/sricola/drydock && cd drydock make install PREFIX=/usr/local by default make install PREFIX=$HOME/.local …or a user-owned prefix drydock init Either way, drydock init walks the remaining prereqs container service, drydock-egress network, sandbox + anchor images and reports per-step status. Idempotent — re-run any time. At least one vendor key is required. Both are host-only — they never go to disk and never enter the VM: export ANTHROPIC API KEY=sk-ant-... required for Claude Code tasks export OPENAI API KEY=sk-... required for Codex tasks drydock start foreground; ^C to stop. backgrounds via & or your launchd plist. Quick liveness: drydock status brokerd up in flight 0 running · 0 awaiting egress · 0 awaiting diff · 0 pushing tasks 0 total · 0 in last 24h audit dir ~/.drydock/audit First time? Walk through examples/hello-task.md /sricola/drydock/blob/main/examples/hello-task.md — a copy-paste first task that exercises every layer, fits inside the default budget, and tells you exactly what each step proves. In one shell, fire the task. It blocks until the agent runs and you approve the diff typical: a few seconds to a few minutes, plus your review time : drydock submit \ --repo git@github.com:your-org/your-repo \ --instruction "Add a one-line comment to README.md explaining the project." A macOS notification fires when the diff is ready. In another shell: drydock pending awaiting tasks egress + diff gates both shown drydock review