Skip to main content

autowt: a better git worktree experience

Full documentation

This README is generated from the index page of the docs. There are many more pages of docs at the link.

What are worktrees?

Worktrees are a built-in feature of git, which are essentially free clones of a local git repo. History is shared and synced across all worktrees for a given repo. Creating a new worktree is cheap, and you can list all your worktrees with a single command. This makes them a great fit for doing work “in parallel,” or not worrying about having uncommitted changes before working on another branch.

How autowt simplifies common workflows

While worktrees are powerful, the built-in tooling is minimalistic. Consider what it takes to set up a fresh worktree in a typical workflow:

  1. Make a decision about where to put the worktree
  2. git worktree add <worktree_path> -b <branch>
  3. Open a new terminal tab
  4. cd <worktree path>
  5. uv sync or npm install or whatever your dependency setup is
  6. cp <repo_dir>/.env . to copy secrets

Congrats, you're done! Type type type, open a PR, and merge it. Now you need to clean up:

  1. git worktree rm .
  2. Close the tab

On the other hand, with autowt, it looks like this:

autowt <branch>

And deleting branches that have been merged or are associated with closed PRs looks like this:

autowt cleanup

A lot nicer, right?

Now suppose your team uses an issue tracker like Linear which can suggest branch names based on issue IDs. You could configure autowt to have a custom command to automatically open worktrees for tickets instead of passing a branch name:

autowt linear ABC-1234 # opens yourname/abc-1234-title-of-the-ticket or whatever

What autowt can do for you

  • Worktree ergonomics: It's not hard to learn the commands to manage worktrees, but autowt shortens the most common ones. And autowt integrates with your terminal program to automate opening new sessions. It supports everything automate-terminal, including iTerm2, tmux, Ghostty, and more.
  • Deep, customizable automation: You can define scripts in .autowt.toml to run at various points, like after creating a worktree but before switching to it, or before a worktree is cleaned up. Check out Lifecycle Hooks for more information.
  • Smart cleanup: You can configure autowt to automatically clean up worktrees whose branches have been merged, or even branches which are associated with closed pull requests on GitHub.
  • Friendly TUIs: autowt uses interactive terminal-based UIs where it makes sense. For example, autowt config gives you an easy way to edit global settings. autowt switch lets you review your worktrees and pick which one to navigate to.

Getting started

You'll need Python 3.10+ and a version of git released less than ten years ago (2.5+).

First, install autowt:

pip install autowt

Then, make a new worktree for a new or existing branch in your current repo:

autowt my-new-feature

Watch as autowt creates a new worktree and opens it in a new terminal tab or window.

Continue to full documentation

Contributing

PRs, GitHub issues, discussion topics, bring 'em on!

License

This project is licensed under the MIT License.

Metadata

Release files for autowt 0.5.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for autowt 0.5.9
File Size Uploaded
autowt-0.5.9.tar.gz 191.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for autowt 0.5.9
File Interpreter ABI Platform
autowt-0.5.9-py3-none-any.whl Python 3 none any Details

Total release size: 259.9 kB

Release files / autowt-0.5.9.tar.gz

Download URL autowt-0.5.9.tar.gz
Size 191.0 kB
Tags Source
SHA-256 checksum
How to use checksums
fd8b962063a28fa2bb7cbf7eabfc3dfda22c307bd9d84be73afaed12cf67644c
BLAKE2b-256 checksum
How to use checksums
fcc311cdf34fe29d53bbe10973840424a017e8c2bdda61b28ea26e16121704b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 19, 2026.

Transparency log

Release files / autowt-0.5.9-py3-none-any.whl

Download URL autowt-0.5.9-py3-none-any.whl
Size 68.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
56a977da254b987cc5bc00aa37fd8c3356f7cdd60a7b973b9c63bc98bcfc392d
BLAKE2b-256 checksum
How to use checksums
47819e579ab9cd562504624c28df15805cd9a9a9908b2f2a87f22b9c652bfd67
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 19, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page