Go to file
Chris Wanstrath 106ff20de7 Fix squash error handling and exit codes
Skip unnecessary rollback when reset never happened, show fallback
notice when AI commit message generation fails, and exit non-zero
when squash produces no changes.
2026-04-10 08:44:18 -07:00
completions Add init and cd shell integration commands 2026-03-11 14:34:49 -07:00
src Fix squash error handling and exit codes 2026-04-10 08:44:18 -07: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
.npmrc npm registry 2026-02-24 09:43:18 -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 Rework squash to collapse commits in-place instead of merging 2026-04-10 08:12:57 -07:00
package.json 0.0.49 2026-03-30 20:27:15 -07:00
README.md Refactor config command and fix default memory limit 2026-03-20 10:24:57 -07: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.

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)