The registry lock could spin silently forever on contention, worktrees could vanish between runs, and loadAll swallowed errors from projects whose state files were removed. Also skip symlinks during scan to avoid cycles. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| completions | ||
| src | ||
| test | ||
| .gitignore | ||
| .gitkeep | ||
| .npmrc | ||
| bun.lock | ||
| CLAUDE.md | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
sandlot
A CLI for branch-based development using git worktrees and Apple Container. Each branch gets its own worktree and isolated container.
Prerequisites
- macOS on Apple Silicon
- Bun
- Apple Container (
brew install container) - Git
First-time setup
After installing Apple Container, run container system start in your terminal. It will prompt to install the Kata kernel — say yes. This is a one-time step.
Install
git clone https://github.com/your/sandlot
cd sandlot
bun install
bun link
alias sl=sandlot
Usage
Run all commands from inside a cloned git repo.
Start a session
sandlot new fix-POST
Creates a worktree, boots a container, and launches Claude Code inside it.
Other commands
sandlot list # show all sessions
sandlot open <branch> # re-enter a session
sandlot stop <branch> # stop a container without destroying it
sandlot rm <branch> # tear down session (container, worktree, local branch)
Use git directly for commits, pushes, merges, etc. The worktree is a normal git checkout.
Configuration
sandlot config # show all options and current values
sandlot config memory # show current memory setting
sandlot config memory 32G # set container memory limit
Config is stored in ~/.config/sandlot/config.json.
| Key | Default | Description |
|---|---|---|
memory |
16G |
Container memory limit (e.g. 4G, 16G, 32G, 64G) |