Skip to content

chmouel/lazyworktree

Repository files navigation

Go Coverage

LazyWorktree

logo

LazyWorktree is a terminal UI for managing Git worktrees with a keyboard-first workflow.

It offer a development workflow around Git worktrees, allowing you to do various operations based on your current worktree you are working on.

Built with BubbleTea, it focuses on fast iteration, clear state visibility, and tight Git tooling integration including tmux/zellij sessions and OCI container execution (docker/podman). Custom commands can be bound to keys or exposed only in the command palette by prefixing the config key with _.

Documentation

Primary documentation lives on the docs site:

Useful entry points:

Screenshot

lazyworktree screenshot

You can see more screenshots here

Main Features

  • Worktree management - Create worktrees from branches, PRs/MRs, or issues; delete, list, and switch between them
  • CI & PR/MR status - See GitHub Actions and GitLab CI results, check PR/MR details, view logs
  • Agent sessions pane - See open Claude and pi sessions attached to the selected worktree by default, with a toggle for historical idle sessions
  • Command palette - Quick access to all actions and custom commands with ?.
  • Tmux and Zellij support - Automatically open worktrees in new tmux windows/panes or zellij tabs
  • Docker/Podman support - Run commands in Docker or Podman containers tied to the worktree
  • Custom commands - Set up custom shell commands in config, bind them to keys, show them in the palette.
  • Notes - Write markdown notes per worktree or tasks to track what you're working on
  • Hooks - .wt files per worktree to automate setup and cleanup tasks
  • Customize Worktree display - Customize name or categorize with colors, tags and icons.
  • Shell helpers - cd "$(lazyworktree)" shortcut and shell completion for bash, zsh, and fish (making it easy to jump to worktrees from the terminal)

Installation

Homebrew (macOS)

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

Arch Linux

yay -S lazyworktree-bin

From source

go install github.com/chmouel/lazyworktree/cmd/lazyworktree@latest

Quick Start

cd /path/to/your/repository
lazyworktree

Shell Integration

To jump to the selected worktree from your shell:

cd "$(lazyworktree)"

For shell integration helpers, see:

Requirements

  • Git 2.31+
  • Forge CLI (gh or glab) for PR/MR status

Optional tools are documented here:

Licence

Apache-2.0