| Crates.io | wtt |
| lib.rs | wtt |
| version | 0.0.5 |
| created_at | 2026-01-14 03:10:29.092037+00 |
| updated_at | 2026-01-16 21:55:02.605294+00 |
| description | Git worktree manager using bare clones |
| homepage | |
| repository | https://github.com/mbj/mrs/tree/main/wtt |
| max_upload_size | |
| id | 2042042 |
| size | 56,435 |
CLI tool for managing git worktrees using bare clones.
From a repository checkout:
cargo install --path wtt
| Type | Default Location |
|---|---|
| Config | ~/.config/wtt.toml |
| Bare clones | ~/.local/share/wtt/bare/<repo>.git |
| Worktrees | ~/devel/<repo>/<branch>/ |
Branch names containing / become subdirectories (e.g., feature/login → ~/devel/myrepo/feature/login/).
Configuration is loaded from ~/.config/wtt.toml by default. All fields are optional.
bare_clone_dir = "/path/to/bare/clones"
worktree_dir = "/path/to/worktrees"
| Flag | Description |
|---|---|
--config-file <PATH> |
Load configuration from specified file |
--no-config-file |
Disable configuration file loading |
Create bare clone and prepare worktree directory.
wtt setup <REPO> <URL>
<REPO> - Local name for the repository<URL> - Git remote URL to clone~/.local/share/wtt/bare/<repo>.git~/devel/<repo>/ directoryRemove a repository completely (inverse of setup).
wtt teardown [OPTIONS] <REPO>
<REPO> - Repository name to remove--force - Force removal of worktrees with uncommitted changes~/.local/share/wtt/bare/<repo>.git~/devel/<repo>/Create a worktree.
wtt add [OPTIONS] <BRANCH>
<BRANCH> - Branch name for the new worktree--base <BASE> - Base ref for new branches (default: remote default branch)--repo <REPO> - Repository name (default: auto-detected from current directory)origin/<branch> via git config, so git push
and git pull work without additional flags, even for new branches that don't
exist on the remote yetList worktrees.
wtt list [OPTIONS]
--repo <REPO> - Repository name (default: auto-detected, or list all if outside worktree)Remove a worktree.
wtt remove [OPTIONS] <BRANCH>
<BRANCH> - Branch name of the worktree to remove--repo <REPO> - Repository name (default: auto-detected from current directory)