Sandcastle 是 Matt Pocock(@ai-hero/sandcastle)做的一个 TypeScript 库,用一行 sandcastle.run() 在隔离 sandbox 里编排 AI 编码 agent:你给它一个 agent(如 claudeCode 或 codex)和一个 sandbox provider,它负责把 agent 关进隔离环境、按配置的分支策略让其在 git worktree/分支上工作,完成后把提交合并回来。它是 provider 无关的,内置 Docker、Podman、Vercel(Firecracker microVM)和 no-sandbox,也可自建。典型用途是并行跑多个无人值守(AFK)agent、搭建评审流水线、或在 CI/脚本里程序化调度自己的 agent。当前为 0.5.x,仍在早期。
来源:README What Is/Quick start/How it works;package.json name=@ai-hero/sandcastle v0.5.11 查看 GitHub 仓库 →上线约两个月即超过 4.7k 星,热度首先来自作者 Matt Pocock 在 TypeScript 社区的巨大影响力(Total TypeScript),其次切中了一个正在升温的需求:当下大家都想「同时跑很多个 agent」,但裸跑 Claude Code/Codex 缺乏隔离、分支管理和编排,容易污染工作区或互相干扰。Sandcastle 把「sandbox 隔离 + git 分支策略 + 编排 API」三件事收敛成一个 run() 调用,正好补上这块工程化空白,对想做 AFK/批量 agent 的 TS 开发者很对路。
来源:GitHub 4,745 stars / 506 forks,created 2026-03-17;README 定位与作者署名run() 在脚本/CI 里一次性跑 agent 并返回 iterations、commits({sha})、branch 等结构化结果;interactive() 启交互式 TUI;createSandbox() 复用 sandbox,配合 worktree 方法(wt.run/interactive/createSandbox)做独立 worktree 生命周期管理。
来源:README API/createSandbox/createWorktree;RunResult/IterationResulthead(agent 直接写宿主工作目录,bind-mount 默认,适合快迭代)、merge-to-head(在临时 worktree 分支上工作、完成合并回 HEAD,出错不污染 HEAD,适合 CI/无人值守)、branch(提交落到指定命名分支,适合直接出 PR)。在 run() 上配置即可,全程本地。
来源:README How it works/Branch strategies 表sandbox 选项接受任意 SandboxProvider:内置 Docker/Podman(bind-mount,目录挂载进容器)、Vercel(隔离式 Firecracker microVM)、no-sandbox(直接跑宿主、放弃隔离);可用 createBindMountSandboxProvider / createIsolatedSandboxProvider 自建,并支持挂载缓存目录、SELinux 标签、自定义 UID/GID 与 Dockerfile。
来源:README Sandbox Providers/Custom Sandbox Providers/All options支持 promptFile/prompt、提示词解析、动态上下文(!`command` 注入命令输出)、{{KEY}} 参数替换与内置参数、模板,以及用
agent 抽象支持 claudeCode(可传 effort 等选项)与 codex(CodexOptions),并提供 provider env 注入;CLI 含 sandcastle init 脚手架 .sandcastle 目录、docker/podman build-image / remove-image 等命令。
来源:README ClaudeCodeOptions/CodexOptions/CLI commands单包 TypeScript 库,技术底座选了 Effect 生态(effect + @effect/cli + @effect/platform + @effect/printer),CLI 与平台交互、错误处理都走 Effect 的函数式风格,交互提示用 @clack/prompts。src 目录按职责拆分且每个模块都有同名 .test.ts(测试覆盖意识强):Orchestrator 是编排核心,AgentProvider/AgentStreamEmitter 抽象 agent 与流式输出,DockerLifecycle/PodmanLifecycle 管容器生命周期,SandboxFactory 按分支策略建 sandbox,CopyToWorktree 处理 worktree,PromptResolver/PromptPreprocessor/PromptArgumentSubstitution 处理提示词管线,EnvResolver 管环境变量,Display/Output 管展示,InitService 做 init 脚手架,RecoveryMessage/ErrorHandler 处理失败恢复。整体是「Orchestrator + 可插拔 AgentProvider + 可插拔 SandboxProvider + 提示词管线」的清晰分层。
来源:tree(src/*.ts 与配套 *.test.ts);package.json deps(effect 系列)中心为项目本体,内环 = 核心功能模块,外环 = 关键技术依赖;按 deep.json 中的 core_features 与 tech_stack.key_deps 自动生成
effect@effect/cli@effect/platform / platform-node@effect/printer(-ansi)@clack/prompts适合:①想并行跑多个无人值守(AFK)编码 agent、又不希望它们互相污染工作区的开发者;②在 CI/脚本里程序化调度 agent 做修 issue、批量改造、生成 PR(用 branch 策略落到 agent/fix-42 这类分支);③搭建「agent 产出 → 自动评审」流水线;④想要可控隔离(容器/microVM)而非裸跑 agent 的团队。不适合:只想交互式用单个 agent 的人(直接用 Claude Code 即可)、以及需要稳定生产 API 的场景(仍是 0.5.x)。
来源:README What Is(parallelizing AFK agents / review pipelines)/Branch strategies,结合定位推断采用语义化版本,最新为 v0.5.11(2026-05-20,与最近 push 同日),此前 v0.5.10(2026-05-08)、v0.5.8(2026-05-06),发布相当密集,处于早期高频迭代期。仓库用 changeset 管理版本。
来源:GitHub Releases v0.5.11/v0.5.10/v0.5.8;package.json version=0.5.11;.changeset 目录Sandcastle 解决的是一个正在变得真实的工程问题:当人们开始「同时放养很多个编码 agent」时,缺的不是更强的模型,而是隔离、分支管理和可编程编排。它把这三件事用 run() 一个调用收敛得相当优雅,分支策略和 provider 抽象的设计也见功力,加上作者的社区号召力与扎实的测试,4.7k 星名副其实。需要清醒的是它还在 0.5.x、API 会变,且批量 agent 的模型/算力成本要自己买单。对想认真做 AFK/批量 agent 编排的 TS 开发者,这是目前很值得跟进和试用的方案;对只想交互式用一个 agent 的人则没必要。
来源:综合 README 定位、tree 工程结构、发布节奏的事实判断Sandcastle 是 Matt Pocock(@ai-hero/sandcastle)做的一个 TypeScript 库,用一行 sandcastle.run() 在隔离 sandbox 里编排 AI 编码 agent:你给它一个 agent(如 claudeCode 或 codex)和一个 sandbox provider,它负责把 agent 关进隔离环境、按配置的分支策略让其在 git…
sandcastle 的核心功能包括:单函数编排 run() / interactive() / createSandbox()、三种分支策略控制提交落点、provider 无关的 sandbox 抽象、结构化提示词与流程控制、多 agent provider + CLI 脚手架。
上线约两个月即超过 4.7k 星,热度首先来自作者 Matt Pocock 在 TypeScript 社区的巨大影响力(Total TypeScript),其次切中了一个正在升温的需求:当下大家都想「同时跑很多个 agent」,但裸跑 Claude Code/Codex 缺乏隔离、分支管理和编排,容易污染工作区或互相干扰。
适合:①想并行跑多个无人值守(AFK)编码 agent、又不希望它们互相污染工作区的开发者;②在 CI/脚本里程序化调度 agent 做修 issue、批量改造、生成 PR(用 branch 策略落到 agent/fix-42 这类分支);③搭建「agent 产出 → 自动评审」流水线;④想要可控隔离(容器/microVM)而非裸跑 agent 的团队。