# sandlot A CLI for branch-based development using git worktrees and [Apple containers](https://github.com/apple/container). Each branch gets its own worktree and isolated VM. Commits are auto-summarized by Claude. Merging cleans everything up. ## Prerequisites - macOS on Apple Silicon - [Bun](https://bun.sh) - [container](https://github.com/apple/container) installed and on PATH - Git ## Install ```bash git clone https://github.com/your/sandlot cd sandlot bun install bun link ``` ## Configure Set your Anthropic API key: ```bash export ANTHROPIC_API_KEY=sk-ant-... ``` Optionally add a `sandlot.json` to your repo root: ```json { "vm": { "cpus": 4, "memory": "8GB", "image": "ubuntu:24.04", "mounts": { "/path/to/deps": "/deps" } }, "ai": { "model": "claude-sonnet-4-20250514" } } ``` ## Usage ### Start a session ```bash 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 ```bash 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 ```bash 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 ```bash sandlot list # show all sessions sandlot open # re-enter a session's VM sandlot stop # stop a VM without destroying it sandlot rm # tear down without merging ```