worktree
A CLI tool that opens GitHub issues as git worktree workspaces. Paste a GitHub issue URL (or use a worktree:// deep link) and worktree clones the repo as a bare clone, creates a dedicated worktree branch, and opens it in your editor.
Install
Download a prebuilt binary from the latest release:
| Platform | Download |
|---|---|
| macOS (Apple Silicon) | worktree-macos-aarch64.tar.gz |
| macOS (Intel) | worktree-macos-x86_64.tar.gz |
| Linux x86_64 | worktree-linux-x86_64.tar.gz |
| Linux ARM64 | worktree-linux-aarch64.tar.gz |
| Windows | worktree-windows-x86_64.zip |
Or install from crates.io:
Then run first-time setup:
This detects your editor, writes the default config, and registers the worktree:// URL scheme handler — all in one step.
Usage
Open a workspace
# GitHub issue URL
# Shorthand
# worktree:// deep link (used by browser / integrations)
Flags:
| Flag | Description |
|---|---|
--editor |
Force open in editor |
--print-path |
Print the workspace path and exit |
Configuration
Config keys:
| Key | Type | Default | Description |
|---|---|---|---|
editor.command |
string | — | Command to open the editor, e.g. code . or nvim . |
open.editor |
bool | true |
Open editor automatically |
The config file lives at:
- macOS/Linux:
~/.config/worktree/config.toml - Windows:
%APPDATA%\worktree\config.toml
Example config.toml:
[]
= "code ."
[]
= true
worktree:// URL scheme
Register worktree as the system handler for worktree:// links so they open automatically from the browser:
Platform details:
- macOS — installs a minimal
.appbundle in~/Applications/WorktreeRunner.appand registers it with Launch Services. - Linux — installs a
.desktopfile in~/.local/share/applications/and registers it withxdg-mime. - Windows — writes the handler to
HKCU\Software\Classes\worktreein the registry.
How it works
- Parses the issue reference into
owner,repo, andnumber. - Bare-clones the repository to
~/worktrees/github/<owner>/<repo>(re-uses the clone on subsequent runs and fetches latest). - Creates a git worktree at
~/worktrees/github/<owner>/<repo>/issue-<N>on a branch namedissue-<N>.- If the branch already exists on the remote it is checked out and tracked locally.
- Otherwise a new branch is created from the repo's default branch (
main,master, etc.).
- Opens the workspace directory in the configured editor.
License
MIT