Implements all 7 commands: new, save, push, list, open, stop, rm. Uses Commander for CLI parsing, Anthropic SDK for AI commit messages and merge conflict resolution, and Apple container for VMs. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1.6 KiB
1.6 KiB
sandlot
A CLI for branch-based development using git worktrees and Apple containers. Each branch gets its own worktree and isolated VM. Commits are auto-summarized by Claude. Merging cleans everything up.
Prerequisites
Install
git clone https://github.com/your/sandlot
cd sandlot
bun install
bun link
Configure
Set your Anthropic API key:
export ANTHROPIC_API_KEY=sk-ant-...
Optionally add a sandlot.json to your repo root:
{
"vm": {
"cpus": 4,
"memory": "8GB",
"image": "ubuntu:24.04",
"mounts": { "/path/to/deps": "/deps" }
},
"ai": {
"model": "claude-sonnet-4-20250514"
}
}
Usage
Start a session
sandlot new fix-POST
Creates a worktree at .sandlot/fix-POST/, boots a VM mapped to it, and drops you into a shell.
Save your work
sandlot save # AI-generated commit message
sandlot save "wip: rough validation" # manual message
Stages all changes, commits, and pushes to origin.
Merge and tear down
sandlot push main
Merges the session branch into the target, pushes, then tears down the VM, worktree, and branch. If there are merge conflicts, Claude resolves them and asks for confirmation.
Other commands
sandlot list # show all sessions
sandlot open <branch> # re-enter a session's VM
sandlot stop <branch> # stop a VM without destroying it
sandlot rm <branch> # tear down without merging