worktree-io 0.1.0

A CLI tool to open GitHub issues as git worktree workspaces
Documentation

runner

A CLI tool that opens GitHub issues as git worktree workspaces. Paste a GitHub issue URL (or use a worktree:// deep link) and runner clones the repo as a bare clone, creates a dedicated worktree branch, and opens it in your editor, terminal, or file explorer.

Install

cargo install --path .

Usage

Open a workspace

# GitHub issue URL
runner open https://github.com/owner/repo/issues/42

# Shorthand
runner open owner/repo#42

# worktree:// deep link (used by browser extensions / integrations)
runner open "worktree://open?owner=owner&repo=repo&issue=42"

Flags to control what gets opened (override config):

Flag Description
--editor Open in the configured editor
--explorer Open in the file explorer
--terminal Open in a terminal
--print-path Print the workspace path and exit

Configuration

runner config init          # write default config to disk
runner config show          # print current config
runner config path          # print config file path
runner config set <key> <value>
runner config get <key>

Config keys:

Key Type Default Description
editor.command string Command to open the editor, e.g. code .
terminal.command string Command to open a terminal; uses platform default when unset
open.editor bool false Open editor by default
open.explorer bool false Open file explorer by default
open.terminal bool true Open terminal by default

The config file lives at:

  • macOS/Linux: ~/.config/runner/config.toml
  • Windows: %APPDATA%\runner\config.toml

Example config.toml:

[editor]
command = "code ."

[terminal]
command = ""

[open]
editor = true
explorer = false
terminal = false

worktree:// URL scheme

Register runner as the system handler for worktree:// links so they open automatically from the browser:

runner daemon install    # register the URL scheme handler
runner daemon uninstall  # unregister it
runner daemon status     # check whether it's registered

Platform details:

  • macOS — installs a minimal .app bundle in ~/Applications/WorktreeRunner.app and registers it with Launch Services.
  • Linux — installs a .desktop file in ~/.local/share/applications/ and registers it with xdg-mime.
  • Windows — writes the handler to HKCU\Software\Classes\worktree in the registry.

How it works

  1. Parses the issue reference into owner, repo, and number.
  2. Bare-clones the repository to $TMPDIR/worktree-io/github/<owner>/<repo> (re-uses the clone on subsequent runs and fetches latest).
  3. Creates a git worktree at $TMPDIR/worktree-io/github/<owner>/<repo>/issue-<N> on a branch named issue-<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.).
  4. Opens the workspace directory according to your config or the flags you passed.

License

MIT