Build and operate isolated git-worktree environments across many
repositories. The command is renv; the distribution is repo-env.
An environment is a named directory containing one git worktree per selected repository. Create it from repos matching a glob in a source directory, run commands across every worktree, and open bulk pull requests — all from one CLI.
Install
uv tool install repo-env # or: pipx install repo-env
renv --help
Requires Python 3.10+, Git 2.38+, Linux or macOS. renv pr needs GitHub CLI (gh).
Quick start
renv init -s ~/src -d ~/envs -y
renv clone -u https://github.com/my-org # optional: populate ~/src first
renv create web -s ~/src -b feature/x --activate
renv ls
cd "$(renv path web)"
renv run -- git status
renv pr web --title "feat: migrate X" --push # optional --push
renv rm web --delete-files
Prefer arrow keys to flags? renv select walks you through picking an environment and an
action (status, activate, sh, sync, path, rm) interactively:
Design
- Command:
renv· Distribution:repo-env· Import package:repoenv - POSIX-first (Linux/macOS), Python 3.10+ (3.12 recommended), Typer CLI
- User config = YAML; machine state = JSON under
REPOENV_HOME - Source clones are read-only. Destructive ops require explicit flags
Development
A devcontainer is available with uv, nox, gh, and the asciinema/agg
demo-recording tools preinstalled (VS Code: "Reopen in Container"; also works with GitHub
Codespaces). Outside a container:
uv tool install nox
nox # default gates: syntax, tests, lint, types, imports, dead code, dupes, cycles
nox -s tests # unit tests with coverage
nox -s integration # integration tests (temp git repos, mocked gh)
nox -s docs # build docs (--strict)
nox -s docs_serve # local preview at http://127.0.0.1:8000
If nox reports a missing interpreter (for example tests-3.14):
uv self update
uv python install 3.14
nox -s tests-3.14 --download-python always
Quality: line length 110, ruff + black + flake8 + isort + mypy + vulture + fawltydeps.
Metadata
Release files for repo-env 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| repo_env-0.1.0.tar.gz | 996.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| repo_env-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.1 MB
Release files / repo_env-0.1.0.tar.gz
| Download URL | repo_env-0.1.0.tar.gz |
|---|---|
| Size | 996.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
01b9e2ae7e72c2f5bafd1454bd0a023338c8db14ddc91c7475ee99460bc91a67
|
|
BLAKE2b-256 checksum How to use checksums |
8986e05bc190682a80142b3636a6f93840b7a010fe3d497d1569e8e9ce7bbb11
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 30, 2026.
Transparency logRelease files / repo_env-0.1.0-py3-none-any.whl
| Download URL | repo_env-0.1.0-py3-none-any.whl |
|---|---|
| Size | 76.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
33b4b620378384311fcdd9466c129cc5044bc6f5debd1683ab882ed5e107fdf5
|
|
BLAKE2b-256 checksum How to use checksums |
5ec9b2fe0654a55c00234af091c180ec982f9e562240d23365de81d33448d6c1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 30, 2026.
Transparency log