The HTML for the browse view was inlined as a template literal in browse.ts, making it hard to edit and losing syntax highlighting. Move it to browse.html and use placeholder replacement instead. Also update branchDiff to accept the main branch as a parameter so the caller resolves it once and reuses it for diffStat too. |
||
|---|---|---|
| completions | ||
| src | ||
| test | ||
| .gitignore | ||
| .gitkeep | ||
| 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.