rsworktree
is a Rust CLI for managing Git worktrees in a single repo-local directory (.rsworktree
). It provides a focused, ergonomic workflow for creating, jumping into, listing, and removing worktrees without leaving the terminal.
- Open a terminal UI for browsing worktrees, focusing actions, and inspecting details without memorizing subcommands.
- Launch it with the
interactive
command:rsworktree interactive
(shortcut:rsworktree i
). - Available actions include opening worktrees, removing them, creating PRs, and merging PRs without leaving the TUI.
- The merge flow lets you decide whether to keep the local branch, delete the remote branch, and clean up the worktree before exiting.
- Create a new worktree under
.rsworktree/<name>
. Also changes directory to the worktree. - Demo:
- Options:
--base <branch>
— branch from<branch>
instead of the current git branch.
- Spawn an interactive shell rooted in the named worktree.
- Demo:
- Options:
--print
— write the worktree path to stdout without spawning a shell.
- Remove the named worktree.
- Demo:
- Options:
--force
— force removal, mirroringgit worktree remove --force
.
- Push the worktree branch and invoke
gh pr create
for the current or named worktree. - Demo:
- Requires the GitHub CLI (
gh
) to be installed and on yourPATH
. - Options:
<name>
— optional explicit worktree to operate on; defaults to the current directory.--remove
— delete the remote branch after a successful merge.--no-push
— skip pushing the branch before creating the PR.--draft
— open the PR in draft mode.--fill
— letgh pr create
auto-populate PR metadata.--web
— open the PR creation flow in a browser instead of filling via CLI.--reviewer <login>
— add one or more reviewers by GitHub login.-- <extra gh args>
— pass additional arguments through togh pr create
.
- Merge the open GitHub pull request for the current or named worktree using
gh pr merge
. - Demo:
- Requires the GitHub CLI (
gh
) to be installed and on yourPATH
. - Options:
<name>
— optional explicit worktree to operate on; defaults to the current directory.
Install from crates.io with:
cargo install rsworktree
On macOS you can install via Homebrew:
brew tap ozankasikci/tap
brew install rsworktree
After the binary is on your PATH
, run rsworktree --help
to explore the available commands.
Set RSWORKTREE_SHELL
to override the shell used by rsworktree cd
(falls back to $SHELL
or /bin/sh
).