mrkeyoor.com_
Wed 04 Nov 06:35 UTC
Dev Toolsevaluationupdated 04 Nov 2026

sandcastle review

Sandcastle is a TypeScript library for orchestrating coding agents such as Claude Code and Codex in sandbox environments. It combines execution providers with branch strategies that control where the agent's commits land.

Verdict

Sandcastle built in 33 seconds in the supplied sandbox run, but its test command exited 1, with 3,122 passing tests, 1 failure, 130 skips and 1 error reported. Consider it for scripted coding-agent work when you can explicitly choose containment and branch behavior. Begin with a disposable repository and a named branch, inspect the missing failure details, and verify the selected provider before letting an agent modify important code.

We ran it

Lab card: what happened when we ran sandcastleScreenshot of sandcastle (github.com/mattpocock/sandcastle)
Install✓ · 23s1069 packages · 642 MB
Build✓ · 33s
Tests✗ · 192s3122 passed · 1 failed · 130 skipped of 3253 (vitest)
Known vulns00 critical · 0 high · 0 moderate · 0 low (npm audit)
Repo437 files~74,704 lines of source · 3.8 MB · 8 CI workflows · tests dir

Answers from our run

Does sandcastle build from source?

Dependencies installed in 23 seconds (1069 packages), and the build succeeded in 33 seconds. We cloned commit 8c2c568 into a clean Debian container with 3 CPUs and no project-specific setup.

Do sandcastle's tests pass?

No. The project's own test command finished in 192 seconds and reported 3122 passed, 1 failed, 130 skipped (vitest).

Does sandcastle have known vulnerabilities in its dependencies?

npm audit found none in the dependency tree at the time of our run.

Who should not use sandcastle?

Teams requiring native sandboxes to block network access: the provider guide says networking is open, including host localhost services.

What are the alternatives to sandcastle?

Anthropic Sandbox Runtime, Bubblewrap. Sandcastle built in 33 seconds in the supplied sandbox run, but its test command exited 1, with 3,122 passing tests, 1 failure, 130 skips and 1 error reported.

SetupN/AInstallation and build were measured, but the supplied run does not establish an authenticated agent workflow with a supported provider.
Docs4/5On the stated scale from missing essentials at 1 to independently verified instructions across documented paths at 5, the supplied guides explain provider limits, authentication and branch defaults. Agent workflows were not independently exercised.
CommunityN/ADated repository and release metadata are available, but issue responsiveness and the quality of community support were not assessed.
MaturityN/AThe repository build and failed test command do not establish provider containment or production agent workflow reliability.

Who it’s for

TypeScript developers scripting repeatable coding-agent tasks with explicit sandbox and branch choices.
Teams evaluating native OS sandboxes, containers or cloud execution through one library.
Maintainers who can review generated changes before using them in a trusted workflow.

Who it’s NOT for

Teams requiring native sandboxes to block network access: the provider guide says networking is open, including host localhost services.
macOS users relying on Seatbelt to isolate Keychain access: the guide explicitly makes no such promise.
Developers requiring interactive sessions with native providers: those providers reject interactive().
Anyone expecting local bind-mount runs to use a separate branch automatically: the documented default writes directly into the host working directory.

Setup reality

The November 3, 2026 sandbox run at commit 8c2c568 installed in 23 seconds and built in 33 seconds. It recorded 1,069 dependencies and 642 MB on disk. Tests exited 1 after 192 seconds: Vitest reported 3,122 passed, 1 failed and 130 skipped of 3,253, plus 1 error. The supplied tail names tests/readme-native-picker.test.ts with one failed case but does not expose the assertion.

The quickstart requires Git, a sandbox provider and explicit agent authentication. Native Linux or WSL2 execution needs Bubblewrap; macOS uses Seatbelt and requires macOS 14 or later. Init scaffolds configuration and checks the selected native sandbox. The documented Claude Code route uses an OAuth token or Anthropic API key because native sandboxes hide stored host logins.

The recorded sandbox configuration was 3 CPUs, 8 GB RAM and image lab-node:22; actual runtime versions remain unverified. Native execution uses host tools and leaves networking open. The provider guide places WSL2 repositories on the Linux filesystem. These are documented requirements, not established causes of the test failure.

Choose the branch before giving the agent a task

Sandcastle can sandbox a coding agent while letting it write directly into your current working directory. Its branch guide makes head the default for bind-mount providers. Choosing a sandbox therefore leaves a second decision: where should the agent's changes land?

The README describes a TypeScript orchestration library. You supply an agent, select an execution provider and choose a branch strategy. Native OS providers, Docker and Podman sit alongside cloud options. Consider it when you need to script these choices around coding-agent tasks. The supplied run did not establish an authenticated agent workflow or verify a generated change.

Start an evaluation with a disposable repository and a named output branch. Check where files change and what remains after a failed run. This is a proposed acceptance check, not a test completed for this review.

What happened when we ran it

The November 3, 2026 run at commit 8c2c568 installed successfully in 23 seconds and built successfully in 33 seconds. The record lists 1,069 dependencies and 642 MB on disk. Tests failed with exit 1 after 192 seconds. Vitest reported 3,122 passed, 1 failed and 130 skipped of 3,253, plus 1 error.

The tail names tests/readme-native-picker.test.ts with one failed case. It also reports seven failed test files, 88 passed files and two skipped files out of 97. File outcomes and individual test outcomes are separate counts. Several Bubblewrap-related files show skipped cases, but the supplied excerpt contains neither the failed assertion nor the underlying error. Those names do not establish a missing package, kernel restriction or documentation defect.

The sandbox configuration recorded 3 CPUs and 8 GB RAM with image label lab-node:22. That label does not verify the actual Node or operating-system version. The supplied npm audit reported zero known vulnerabilities. This is a dependency-advisory result, not an assessment of sandbox containment.

The run establishes a successful repository build and an unsuccessful test command. It does not establish agent task quality, escape resistance or reliable commit return.

Native sandboxes leave localhost reachable

The provider guide says native sandboxes use host tools, with a private home and constrained writable paths. Linux and WSL2 use Bubblewrap; macOS uses Seatbelt. These providers avoid building a separate image.

Those providers leave networking open, including access to localhost. If a developer machine exposes a database or administration endpoint there, selecting a native sandbox does not isolate that service from the agent. The guide also says Seatbelt does not promise to keep an agent away from macOS Keychain. Evaluate another execution boundary if your workflow requires those restrictions.

Native providers do not support interactive(). The guide says that call throws rather than opening an interactive session. Check provider support before planning an interactive handoff. The common library interface does not give every provider the same capabilities.

Separate branches require an explicit choice locally

The branch guide distinguishes head, merge-to-head and named-branch strategies. Head writes directly into the host directory for bind-mount providers. Merge-to-head uses a temporary branch and merges commits back automatically; isolated providers use it by default. The branch strategy puts commits on an explicitly named branch in a Git worktree.

For an initial evaluation, choose a named branch so you can inspect the result before accepting it. A branch does not provide an approval system. The docs warn that Git commands you later run yourself are outside Sandcastle's control. Review the agent's changes before running commands that read repository configuration in a repository the sandbox has written to.

The getting-started guide requires Git, an execution provider and explicit agent authentication. Its Claude Code example uses an OAuth token or Anthropic API key because the native sandbox hides stored host logins. Installing the library does not establish a working authenticated agent session.

When a process restriction tool is enough

Anthropic Sandbox Runtime is a CLI and library for filesystem and network restrictions on processes. Its README labels it a research preview. Evaluate it when you already handle orchestration and Git changes and need a process restriction layer.

Bubblewrap constructs Linux sandbox environments from command-line arguments. Its README makes the caller responsible for the security model. Consider it directly when you intend to implement that policy yourself.

Documentation receives 4/5 for explicit provider boundaries, authentication prerequisites and branch defaults. The documentation scale runs from 1 for missing essentials to 5 for independently verified instructions across documented paths. The documented agent workflows were not independently exercised, so this rating does not establish that those paths work.

Setup ease, community support and production maturity remain unassessed. Supplied repository metadata observed on November 4, 2026 records a last push at 2026-11-04T03:07:21Z. The supplied release metadata lists v0.14.0 dated November 2, 2026. These records are separate from the measured checkout at 8c2c568 and do not establish issue responsiveness or community support.

Before using Sandcastle with an important repository, obtain the missing failure details and verify the chosen provider and branch behavior in a disposable repository.

Alternatives

ProjectWhat it isPick it when
Anthropic Sandbox RuntimeA CLI and library for filesystem and network restrictions on processes.Evaluate it when restricting an existing command is the task and you already handle agent orchestration and Git changes. Its README labels it a research preview.
BubblewrapA Linux tool for constructing sandbox environments from explicit arguments.Consider it directly when you intend to implement the sandbox policy yourself. Its README makes the caller responsible for the security model.

What people are saying

  1. [github-trending] mattpocock/sandcastle

Sources

  1. Sandcastle README
  2. Sandbox providers
  3. Branch strategies
  4. Getting started
  5. Anthropic Sandbox Runtime README
  6. Bubblewrap README

More dev tools reviews

SimpleEnglish · QuickLook · kero · CalibRaw · ava · hiddify-app · the whole board →