The sandbox test we promised on 6 November
The allow-list was empty. Everything got through.
We wrote ten read-only checks that a working day here depends on: reach GitHub, the npm registry, the Vercel and Supabase APIs and our own production site, list the SSH folder, read our secrets file, write to the home folder and write to the project folder. Outside the sandbox, all ten worked. Then we ran the same ten inside a Claude Code session with the sandbox on, refusing to start without it and refusing unsandboxed retries, in the bypass mode our agents use. The file side behaved as documented. Writing to the home folder was refused as a read-only file system, and that alone broke npm, which keeps its cache there, and the GitHub command line, which could no longer reach its stored login. Writing inside the project worked. But the SSH folder was still listable and our secrets file was still readable, because the sandbox does not hide credentials unless you tell it to. The network side is the surprise. With an empty allow-list, the Vercel API, the Supabase API and our production site all answered. Anthropic’s documentation explains why: in bypass mode, a connection to a host outside the allow-list is allowed without a prompt, unless strictAllowlist, or allowManagedDomainsOnly in managed settings, is on. We ran it a third time with strictAllowlist and only GitHub and npm allowed. This time the sandbox refused api.github.com, api.vercel.com, api.supabase.com and app.brevdigital.com, and named each one. If your developers run agents with the prompt off and switch the sandbox on without that one key, the network boundary they think they have is not there.
How we run many agents at once