Skip to main content

wtcode

Effortlessly launch your favorite code tool in a git worktree.

worktree code / what-the-code -- streamlines git worktree selection, creation, and launching tools like Claude Code, lazygit, your editor, or any command.

Install

Homebrew

brew install netj/tap/wtcode

PyPI (via uv)

uv tool install wtcode

Or try it without installing:

uvx wtcode

Note: uv tool install is recommended over uvx for regular use. uvx keeps a parent uv tool run process alive, which can interfere with tools like tmux that detect the working directory from the process tree.

From source

git clone https://github.com/netj/wtcode.git
ln -s "$PWD/wtcode/wtcode.sh" /usr/local/bin/wtcode

Usage

wtcode [BRANCH] [CMD [CMD-ARGS...]]
wtcode --exec CMD [CMD-ARGS...]
  • BRANCH -- Git branch or worktree name. If omitted and fzf is available, interactively select one. Surround with : to create a new branch (use :::name or name::: to avoid fzf matching the colons).
  • CMD -- Command to launch in the worktree. Defaults to $WTCODE_CMD, or the first available of: claude, aider, codex, $SHELL.
  • --exec -- Skip the branch argument; select interactively via fzf, then launch CMD.
  • --help / --version -- Show help or version info.

Examples

wtcode feature-x                  # launch default tool in feature-x worktree
wtcode feature-x lazygit          # launch lazygit
wtcode feature-x claude --resume  # launch claude with flags
wtcode --exec claude --resume     # select interactively, launch claude --resume
wtcode :new-feature               # create new branch and worktree
wtcode                            # interactive branch selection via fzf
WTCODE_CMD=cursor wtcode feature  # use cursor as default tool

Environment variables

Variable Description
WTCODE_CMD Default tool to launch (e.g., claude, lazygit, vim, cursor)
WTCODE_DEBUG Enable debug tracing when set to any value
GIT_WORKTREE_ROOT Override the directory where worktrees are created

How it works

  1. Select/specify a branch -- pass as argument or pick interactively with fzf
  2. Create or switch to the worktree -- worktrees are organized under $GIT_WORKTREE_ROOT (defaults to ../<repo>.worktrees/)
  3. Launch a tool -- runs the specified command (or smart default) inside the worktree

Dependencies

  • git -- required
  • fzf -- recommended, for interactive branch selection
  • jq -- optional, for Claude Code auto-trust setup

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wtcode-0.2.0.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wtcode-0.2.0-py3-none-any.whl (8.8 kB view details)

Uploaded Python 3

File details

Details for the file wtcode-0.2.0.tar.gz.

File metadata

  • Download URL: wtcode-0.2.0.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for wtcode-0.2.0.tar.gz
Algorithm Hash digest
SHA256 6eb1825927844acd43d1abea885e987aa749a48b87946f8a437c83a80a4ab3e7
MD5 91620526f275b8be52966b100d755b6f
BLAKE2b-256 110f6ec71fd98d9075cc22f12180187397dc492cd0251fcb222952a1a57b9b8c

See more details on using hashes here.

File details

Details for the file wtcode-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: wtcode-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 8.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for wtcode-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7a56109fd3fb7b8c34c9af70366bd6bd316f27990bd5d98ef3c710ee826c60cc
MD5 c4ab05cbebfc2e63724fc8b1ab81da37
BLAKE2b-256 4a3a7fd0fc79dbd6cd079753676487fa7e16b627ed3d6566e3ec9f6f83f2ef3b

See more details on using hashes here.

Release history Release notifications | RSS feed

0.3.0

2 files

This release

0.2.0 This release

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page