Scott Watermasysk presents
Multiple independent copies of your repository—with near-zero disk overhead. No stashing. No conflicts. No nonsense.
Starring

Larry
Workspace One

Curly
Workspace Two

Moe
Workspace Three
You run an AI coding agent in one workspace. A long test suite in another. A hotfix in a third. Each one a fully independent clone of your repository—its own .git, its own index, its own branch.
And thanks to copy-on-write magic, they share disk blocks with the original. Extra space? Only as files diverge. It's practically free.
| Method | Disk Cost | Independent? | Tooling |
|---|---|---|---|
| Plain Copies | Full duplicate | Yes | None |
| Git Worktrees | Shared .git | No — shared index & locks | Built-in |
| Stooges | Copy-on-write | Yes | Full CLI |
Feature Presentation
Workspaces share disk blocks with the original. Extra space used only as files diverge. Near-zero overhead.
Each workspace has its own .git directory. No shared lock files. No index conflicts. True isolation.
Keep all workspaces current with one command. Automatic conflict-free rebasing across every branch.
Run multiple AI coding agents in parallel, each in its own isolated workspace. No stepping on toes.
A Typical Scene
Initialize Once
$ stooges init
Sets up the base repo & creates Larry, Curly, and Moe.
Add a Workspace
$ stooges add feature-x -b
Creates a new workspace with its own branch. Base-derived add (except --track) and branch runs sync first by default. Or use stooges branch scott/aud-656, stooges fork scott/aud-656, or stooges track feature/x to derive the workspace name automatically.
Work Independently
$ cd feature-x && git commit -am "ship it"
Or enable the optional shell wrapper and stooges add, stooges branch, stooges fork, or stooges track can drop you in automatically.
Keep Everything Current
$ stooges rebase
Syncs base, rebases all workspace branches. Done.
The Full Repertoire
Branch Example
$ stooges branch scott/aud-656
Derives workspace aud-656 and creates or switches local branch scott/aud-656.
Fork Example
$ cd larry && stooges fork scott/aud-656
Copies the current managed workspace state into aud-656 and creates local branch scott/aud-656; errors if that branch already exists in the copied workspace.
Track Example
$ stooges track feature/foo
Derives workspace foo and checks out a local branch tracking origin/feature/foo; errors if the remote branch is missing or the destination local branch already exists.
or, with Go—
Already installed? Run stooges upgrade to grab the latest release.
Optional: enable auto-cd after stooges add, stooges branch, stooges fork, or stooges track by adding this to your shell profile:
Use bash instead of zsh if needed. This setup is optional; without it, Stooges works normally and you can just cd into the workspace yourself.