autowt: Streamlining Your Git Worktree Management

Summary
autowt is a Python-based command-line tool designed to significantly improve the Git worktree experience. It automates common workflows like creating, switching, and cleaning up worktrees, making parallel development and branch management much more efficient. This tool integrates with your terminal and offers deep customization through lifecycle hooks for tailored automation.
Repository Info
Tags
Click on any tag to explore related repositories
Introduction
autowt is an open-source command-line tool that enhances the native Git worktree feature, providing a more ergonomic and automated experience. Git worktrees allow developers to have multiple working directories linked to the same repository, sharing history and making it easy to switch between branches or tasks without stashing changes. While powerful, Git's built-in worktree commands can be verbose for common operations. autowt simplifies these tasks, offering a streamlined approach to managing your development environment.
Installation
autowt requires Python 3.10+ and Git 2.5+. Installation is straightforward using pip.
pip install autowt
Examples
autowt drastically simplifies common worktree operations. Instead of multiple steps to create a new worktree, set up dependencies, and copy configurations, autowt condenses it into a single command.
To create a new worktree for a branch:
autowt <branch>
For example, to create a worktree for my-new-feature:
autowt my-new-feature
This command will create the worktree and can even open it in a new terminal tab or window, thanks to its integration with tools like iTerm2, tmux, and Ghostty.
Cleaning up merged or closed PR branches is also simplified:
autowt cleanup
autowt also supports custom commands, allowing integration with issue trackers or other tools. For instance, you could configure it to open worktrees based on issue IDs:
autowt linear ABC-1234
Why use autowt
autowt offers several compelling reasons to integrate it into your Git workflow:
- Worktree Ergonomics: It shortens common worktree commands and integrates with your terminal program to automate opening new sessions, supporting various terminal emulators.
- Deep, Customizable Automation: Define scripts in
.autowt.tomlto run at various points in the worktree lifecycle, such as after creation or before cleanup, enabling highly tailored workflows. - Smart Cleanup: Configure
autowtto automatically remove worktrees whose branches have been merged or are associated with closed pull requests on GitHub. - Friendly TUIs:
autowtuses interactive terminal-based UIs for tasks like configuring global settings (autowt config) or switching between existing worktrees (autowt switch).
Links
For more information, examples, and detailed documentation, please refer to the official resources: