Go to file
Chris Wanstrath 909189b745 Extract browse HTML into external template
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.
2026-02-23 20:33:10 -08:00
completions add fish shell completions for sandlot 2026-02-20 08:32:18 -08:00
src Extract browse HTML into external template 2026-02-23 20:33:10 -08:00
test Add markdown test document covering common syntax features 2026-02-20 08:55:04 -08:00
.gitignore Add sandlot CLI for branch-based dev with worktrees and Apple containers 2026-02-16 20:15:29 -08:00
.gitkeep Initial commit 2026-02-16 19:23:56 -08:00
bun.lock Reorganize CLI commands into groups using commander v14, upgrade commander to 14.0.3 2026-02-21 12:23:08 -08:00
CLAUDE.md update CLAUDE.md to reflect Commander 14, new vm/open/squash/merge behaviors, binary caching, and container provisioning details 2026-02-23 20:00:54 -08:00
package.json Reorganize CLI commands into groups using commander v14, upgrade commander to 14.0.3 2026-02-21 12:23:08 -08:00
README.md protip 2026-02-19 13:10:41 -08:00
tsconfig.json Add sandlot CLI for branch-based dev with worktrees and Apple containers 2026-02-16 20:15:29 -08:00

sandlot

A CLI for branch-based development using git worktrees and Apple Container. Each branch gets its own worktree and isolated container.

Prerequisites

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.