01
Drop — a sandbox that keeps your distro, hides your SSH keys, and makes `.git` read-only
Drop (Apache-2.0, Go, 210 stars, 367 commits, 1 contributor, created July 2025, v0.2.1 released August 24) is a rootless Linux sandbox built around the virtualenv workflow: drop init in a project creates an environment, drop run drops you into a shell in it, drop rm throws it away. The design choice that separates it from Docker is that it keeps your machine rather than replacing it. System directories are mounted from the host read-only, so every tool you already installed is there; each environment gets its own persistent home, /var and /tmp; and only the dotfiles you list in its TOML config come through, read-only. The README's own demo shows the point: ~/.bashrc is readable and not writable, and ~/.ssh does not exist. The project directory is writable except its .git subdirectory, which is read-only — which also means nothing inside the sandbox can plant a hook in .git/hooks for your unsandboxed git to execute later. It uses user, mount, PID, IPC, cgroup and network namespaces, drops all capabilities before exec, blocks access to services on localhost by default, and passes through only allowlisted environment variables. Since v0.2.0 on August 20 you can set runtime = "gvisor" (or drop run --runtime gvisor) so sandboxed processes stop issuing syscalls to the host kernel at all, with the two runtimes producing identical-looking sandboxes.
The Show HN (174 points, 59 comments) was the author's third submission, and the thread is where the threat model got stated precisely. One commenter pointed out that the read-only-everywhere, write-to-cwd default several agent harnesses ship is fine against a hallucinated rm -rf ~ and useless against a rogue npm package, which can still read your SSH key and send it somewhere. The author agreed and drew the same line: read-only protects against accidents, and hiding the key is the part that protects against malice. Asked why not a microVM, the author said a VM may become a third runtime, but the sandbox starts from your installed userland on purpose, because a stripped-down environment gets in the way of local work. A commenter who runs agents in VMs named the other side of that trade: Drop keeps an agent from deleting your files, but it does not keep the agent from uploading ones it can read.
Reach for it if you run coding agents on a Linux workstation and have been approving every command because the alternative was a container missing half your toolchain; it replaces the hand-assembled bwrap invocation you keep meaning to write. Delete the habit of running npm install for an unfamiliar repo in your real home directory. Tradeoffs: Linux only, terminal only (no GUI apps, no audio), and it cannot run inside a container or start one, so a docker compose dev stack is out; Ubuntu 24+ and Fedora need AppArmor or SELinux configuration before it will start; outbound internet is still open, so anything readable in the project directory can leave; and it is one person's isolation code — v0.1.8 in July was a security fix for capabilities not being dropped under --root, which is the right thing to disclose and a reminder that young sandboxes have young bugs.