Customizable git worktree manager
Project description
autowt: a better git worktree experience
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:
- Make a decision about where to put the worktree
git worktree add <worktree_path> -b <branch>- Open a new terminal tab
cd <worktree path>uv syncornpm installor whatever your dependency setup iscp <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:
git worktree rm .- 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?
What autowt can do for you
What autowt can do for you:
- 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.tomlto 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 configgives you an easy way to edit global settings.autowt switchlets 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.
Contributing
PRs, GitHub issues, discussion topics, bring 'em on!
License
This project is licensed under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file autowt-0.5.0.dev3.tar.gz.
File metadata
- Download URL: autowt-0.5.0.dev3.tar.gz
- Upload date:
- Size: 174.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6d497dfc9a4e1a8ecf61cd5894c414991bbb1cdb2151b3d8a9df62cbbae0be76
|
|
| MD5 |
e4eaa1a082f553fa277a65f56e2157b1
|
|
| BLAKE2b-256 |
9d314cb07656cf642a7211306f00462a0e609056e3d673e6a41b19799737ea06
|
Provenance
The following attestation bundles were made for autowt-0.5.0.dev3.tar.gz:
Publisher:
pypi.yml on irskep/autowt
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
autowt-0.5.0.dev3.tar.gz -
Subject digest:
6d497dfc9a4e1a8ecf61cd5894c414991bbb1cdb2151b3d8a9df62cbbae0be76 - Sigstore transparency entry: 708294106
- Sigstore integration time:
-
Permalink:
irskep/autowt@c93bd34b5b9948d1987eecd5b1305ab6301113ce -
Branch / Tag:
refs/tags/v0.5.0.dev3 - Owner: https://github.com/irskep
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@c93bd34b5b9948d1987eecd5b1305ab6301113ce -
Trigger Event:
push
-
Statement type:
File details
Details for the file autowt-0.5.0.dev3-py3-none-any.whl.
File metadata
- Download URL: autowt-0.5.0.dev3-py3-none-any.whl
- Upload date:
- Size: 63.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e8dea0dc2f163ab934410f5996c91787c006e0070e8b60badfe975853482e89
|
|
| MD5 |
f6cdb1d5d3396113705c62f809d10696
|
|
| BLAKE2b-256 |
30ec67aca601a78024424a35281f22158dd798dcda2891e00aa6990128aeb30f
|
Provenance
The following attestation bundles were made for autowt-0.5.0.dev3-py3-none-any.whl:
Publisher:
pypi.yml on irskep/autowt
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
autowt-0.5.0.dev3-py3-none-any.whl -
Subject digest:
6e8dea0dc2f163ab934410f5996c91787c006e0070e8b60badfe975853482e89 - Sigstore transparency entry: 708294107
- Sigstore integration time:
-
Permalink:
irskep/autowt@c93bd34b5b9948d1987eecd5b1305ab6301113ce -
Branch / Tag:
refs/tags/v0.5.0.dev3 - Owner: https://github.com/irskep
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@c93bd34b5b9948d1987eecd5b1305ab6301113ce -
Trigger Event:
push
-
Statement type: