A TUI for git worktrees

A lazier way to manage worktrees.

LazyWorktree lets you create, switch, and manage Git worktrees from a keyboard-driven TUI. It shows PR status, CI checks, and diffs alongside your worktree list.

Quick start

$ brew tap chmouel/lazyworktree https://github.com/chmouel/lazyworktree
$ brew install lazyworktree --cask
$ cd your-repository
$ lazyworktree
LazyWorktree TUI screenshot
Worktree, status, and log panes with rich keyboard actions.

Features

What it does

Worktree management

Create, rename, remove, absorb, and prune merged worktrees directly from the keyboard.

Create from anything

Create from branch, commit, PR/MR, issue, or custom menu item with optional branch automation.

Git operations

Stage, commit, diff, push, sync, and cherry-pick -- all from within the TUI.

CI checks

See check status, read logs, open job pages, and restart GitHub Actions runs.

tmux / zellij sessions

Each worktree can get its own tmux or zellij session, with configurable prefixes.

Hooks and custom commands

Run init and terminate hooks via .wt and add custom command bindings.

Worktree notes

Attach markdown notes to any worktree and view them rendered in the info pane.

Taskboard

Turn markdown checkbox notes into a grouped Taskboard and toggle progress without leaving the TUI.

Configuration

Set options via CLI flags, git config, or a YAML file. Local settings override global ones.

Install

Get running in less than one minute.

brew tap chmouel/lazyworktree https://github.com/chmouel/lazyworktree
brew install lazyworktree --cask

Optional tools: gh or glab for forge data, and delta for enhanced diffs.

Screenshots

What it looks like

Give it a go.

It's open source, installs in seconds, and works with any Git repo that uses worktrees.