Agent Worktree Manager
Working on several branches or with coding agents means keeping track of both
source checkouts and their Python environments. awm pairs Git worktrees with
isolated environments and provides a terminal UI to browse and clean them up
across projects.
Start with an environment that already works. AWM reproduces its installed dependencies and points selected editable packages at new worktrees. Other editable packages keep their original source links. Install AWM once, separately from your project environments.
Supports Python 3.11–3.14 on macOS and Linux; Git is required. Standard venv/pip is the default; uv and conda backends are optional. AWM and your project environments can use different Python versions.
Installation
From PyPI, once the first release is published, choose either:
uv tool install agent-worktree-manager
# Or install into your chosen Python environment:
python -m pip install agent-worktree-manager
To install from a source checkout now, run at this repository's root:
uv tool install --editable .
# Or:
python -m pip install -e .
To activate a sandbox in your current terminal from the TUI, enable shell integration:
eval "$(awm shell-init zsh)" # use bash for Bash
Add the same line to ~/.zshrc (or ~/.bashrc) to enable it in new terminals.
Then press s on a sandbox to close AWM and activate its environment.
Register your first project
From your project's Git checkout, register its existing Python environment:
awm init --name my-project --base /absolute/path/to/base-env --repo app=.
awm doctor
awm create my-task --repo app
awm run my-task -- python --version
awm
--base is the environment directory, not its Python executable. Use
--backend uv for a uv base or --backend conda for a conda base. Repeat
--repo ALIAS=PATH to include more repositories. Registration writes awm.toml
and machine-specific settings in git-ignored .awm/, and adds the project to
your global overview. From elsewhere, select it with awm --project my-project.
Use with coding agents
The bundled awm skill guides agents through creating, resuming, inspecting,
and cleaning up worktrees with their environments. Install it for either agent:
# Codex
awm skill --install "$HOME/.agents/skills/awm"
# Claude Code
awm skill --install "$HOME/.claude/skills/awm"
In Codex, select it through /skills or mention $awm. In Claude Code, use
/awm. For example: “create a sandbox for fixing the login tests and work there.”
See the agent guide for custom locations and updating a skill.
Contributing
Please follow Conventional Commits
for commit messages, for example feat(tui): add sandbox shell shortcut or
fix(env): preserve editable paths. These messages drive automated versioning
and release notes.
License
BSD 3-Clause — Copyright (c) 2026, Jan Wyzula.
Documentation
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 agent_worktree_manager-0.2.0.tar.gz.
File metadata
- Download URL: agent_worktree_manager-0.2.0.tar.gz
- Upload date:
- Size: 64.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bdf253e0a1e108005dcf1a9bcb9ade55421ffd0d39fdd092f633acf365a80407
|
|
| MD5 |
2de8600eb8b49bd6329371ab86273ad9
|
|
| BLAKE2b-256 |
6fe585e31ea0882f81353f981239c412a75a26b3621e6808147a6e2c955b1012
|
Provenance
The following attestation bundles were made for agent_worktree_manager-0.2.0.tar.gz:
Publisher:
publish.yml on wyzula-jan/agent_worktree_manager
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agent_worktree_manager-0.2.0.tar.gz -
Subject digest:
bdf253e0a1e108005dcf1a9bcb9ade55421ffd0d39fdd092f633acf365a80407 - Sigstore transparency entry: 2786170084
- Sigstore integration time:
-
Permalink:
wyzula-jan/agent_worktree_manager@4d9f457069d28e58a6ecfca743f2c8f228ffb1fe -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/wyzula-jan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4d9f457069d28e58a6ecfca743f2c8f228ffb1fe -
Trigger Event:
release
-
Statement type:
File details
Details for the file agent_worktree_manager-0.2.0-py3-none-any.whl.
File metadata
- Download URL: agent_worktree_manager-0.2.0-py3-none-any.whl
- Upload date:
- Size: 48.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
12eae8b8213b1dfb6577f6e65a8b538478b4e161de8f1d2cc60d87385480bf58
|
|
| MD5 |
ed5b94d516b249f2ae3bac2cc73e808c
|
|
| BLAKE2b-256 |
6dd5e185d649aac1efe9457cef7cdb5c997d840eae6dce96d79632e3e62d845d
|
Provenance
The following attestation bundles were made for agent_worktree_manager-0.2.0-py3-none-any.whl:
Publisher:
publish.yml on wyzula-jan/agent_worktree_manager
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agent_worktree_manager-0.2.0-py3-none-any.whl -
Subject digest:
12eae8b8213b1dfb6577f6e65a8b538478b4e161de8f1d2cc60d87385480bf58 - Sigstore transparency entry: 2786170129
- Sigstore integration time:
-
Permalink:
wyzula-jan/agent_worktree_manager@4d9f457069d28e58a6ecfca743f2c8f228ffb1fe -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/wyzula-jan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4d9f457069d28e58a6ecfca743f2c8f228ffb1fe -
Trigger Event:
release
-
Statement type: