Initialize
mwt initScan the workspace and create `mwt.yaml` from real Git repos.
multi worktree
`mwt` gives independent repos a shared worktree workflow while keeping every repository, branch, merge, and failure mode visible.
$ mwt create feature-auth
created backend -> worktrees/feature-auth/backend
created frontend -> worktrees/feature-auth/frontend
created infra -> worktrees/feature-auth/infra
$ mwt status feature-auth
backend feature-auth clean +2/-0
frontend feature-auth dirty +1/-0
infra feature-auth clean +0/-0The model
Each source repository remains canonical. `mwt` records those repos in a local config file, creates real Git worktrees under a common directory, and runs standard Git commands inside each repo.
A multi-worktree name such as `feature-auth` becomes one branch per repository. The name is shared; the history is still independent.
workspace/
mwt.yaml
repos/
backend/
frontend/
infra/
worktrees/
feature-auth/
backend/
frontend/
infra/Config
`mwt init` discovers non-nested Git repositories and writes their relative paths, current branches, and remotes. `mwt sync` repeats that scan, adding new repos and removing entries whose directories are gone.
worktree_root: ./worktrees
base_branch: main
repos:
backend:
path: ./repos/backend
branch: main
remotes:
origin: git@github.com:org/backend.gitCommands
mwt initScan the workspace and create `mwt.yaml` from real Git repos.
mwt syncRefresh paths, branches, and remotes after repos are added or removed.
mwt fetch mainFetch every canonical repo and check each one out to a common branch.
mwt create feature-xCreate one real Git worktree per configured repository.
mwt status feature-xShow branch, clean state, ahead/behind counts, and short status.
mwt foreach feature-x -- go test ./...Execute the same command inside every named worktree.
mwt snapshot feature-xPrint the exact commit in each repo before a risky operation.
mwt merge feature-x --dry-runValidate all repos before merging. Cross-repo merges are not atomic.
Install
Tagged releases publish archives, checksums, a changelog, and a Homebrew cask. The binary also includes a `version` command so you can check exactly what was installed.
$ brew tap towebuorg/tap
$ brew install --cask mwt
$ mwt version