wtm user guide
This content is for v0.28. Switch to the latest version for up-to-date documentation.
How wtm works beyond the first steps: its configuration, and the run module with the per-worktree isolation it rests on. They explain how the pieces fit together; the flags of each command live in wtm <command> --help and in the generated command reference.
New to wtm? Start with Getting started, then pick a setup from Recipes.
| Page | What it covers |
|---|---|
| Getting started | a ten-minute tutorial: install, two worktrees running side by side, cleaning one |
| Recipes | complete setups: a pnpm/turbo monorepo, a docker compose app, a shared postgres, AI agents in parallel, stacked PRs |
| Troubleshooting | a port in use, a crashed job, the daemon's version, wtm go, exit 16, named URLs, .env drift |
| Configuration | config.toml, env strategies, hooks, the global config, editor autocomplete |
| Isolation: isolated or verbatim | how a worktree stands against its source, COMPOSE_PROJECT_NAME, adopting isolation on an older worktree, touches and foreign data |
| Jobs, profiles and runners | services and tasks, what run up starts, runners, the run view and -d, port checks, run ps statuses |
| Shared services and namespaces | one instance for the repository, a namespace per worktree, [[env]] links, what clean and prune drop |
| Named URLs and addressing | the run proxy, named and port URLs, url.host, the addressing mode, port 80 on macOS |
How wtm run works |
the job environment (WTM_*, COMPOSE_PROJECT_NAME), ports and the port check, what run init proposes, ports and addresses in a .env, compose names |
run.toml reference |
every key of the file, with its default |
| Where wtm keeps its state | the files under <git-common-dir>/wtm/ and beside the global config |
| Migrating to 0.28 | what changed for a v0.27 user, and what to do about it |
The module is opt-in: nothing here applies until wtm run init writes run.toml. Until then, the run commands that need it refuse (exit 16) and point at wtm run init.