Hop: CLI tool for jumping around worktrees Syntaf released hop v0.1.0, a CLI tool that searches all git repositories under a user's code directory and jumps to the worktree holding a given branch, with tiered matching, tab completion, and an installer that configures zsh. The tool requires zsh, bash 3.2+, git, and curl, and supports pinning versions via HOP_REF. Jump to the git worktree holding a branch. If you keep a lot of worktrees, finding the one holding a given branch means running git worktree list in repo after repo — and the worktree's directory name usually isn't the branch name. hop searches every repo you have at once and cd s you there. bash $ hop login-fix repo webapp branch feature/login-fix status in sync with origin, no tracked changes path ~/Code/webapp/.claude/worktrees/pr-4821-review curl -fsSL https://raw.githubusercontent.com/Syntaf/hop/main/install.sh | bash If you would rather not pipe a script into a shell — reasonable — download it, read it, then run it. The && matters: without it a failed download still gets executed. curl -fsSL https://raw.githubusercontent.com/Syntaf/hop/main/install.sh -o hop-install.sh \ && less hop-install.sh && bash hop-install.sh && rm hop-install.sh Or from a checkout, which skips the download entirely: git clone https://github.com/Syntaf/hop.git && cd hop && ./install.sh The installer asks where you keep your repos, guessing from the conventional directories ~/Code , ~/src , ~/Projects , … by counting git repos in each: hop-install: which directory holds your git repos? ~/Projects Press Enter to take the guess, or type a path ~ works . It writes that as HOP CODE ROOT in your .zshrc . To skip the question — for a scripted or unattended install — set it yourself: curl -fsSL https://raw.githubusercontent.com/Syntaf/hop/main/install.sh | HOP CODE ROOT=~/src bash With no terminal to prompt on, it uses the guess and tells you how to change it, rather than hanging. Then open a new shell. The installer puts hop-resolve in ~/.local/bin , hop.zsh in ~/.config/hop , and adds a short block to your .zshrc . It is idempotent — re-run it to upgrade, and it will leave an existing config alone rather than re-asking. To uninstall, delete those two files and that block. Requires zsh, bash 3.2+ macOS stock is fine , git, and curl. Pin a version with HOP REF , and change where things land with HOP BIN DIR / HOP CONF DIR : curl -fsSL https://raw.githubusercontent.com/Syntaf/hop/main/install.sh | HOP REF=v0.1.0 bash HOP REF is what pins the version — fetching install.sh from a tag URL alone does not, since the script then fetches its payload from main . Note also that raw.githubusercontent.com caches for a few minutes, so an install run immediately after a push may get the previous commit. hop