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
Usage
Open a workspace
# GitHub issue URL
# Shorthand
# worktree:// deep link (used by browser extensions / integrations)
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
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:
[]
= "code ."
[]
= ""
[]
= true
= false
= false
worktree:// URL scheme
Register runner 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
$TMPDIR/worktree-io/github/<owner>/<repo>(re-uses the clone on subsequent runs and fetches latest). - Creates a git worktree at
$TMPDIR/worktree-io/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 according to your config or the flags you passed.
License
MIT