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.
uv tool install repo-env # or: pipx install repo-env
renv --helpRequires Python 3.10+, Git 2.38+, Linux or macOS. renv pr needs GitHub CLI (gh).
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-filesPrefer arrow keys to flags? renv select walks you through picking an environment and an
action (status, activate, sh, sync, path, rm) interactively:
- 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
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:8000If 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 alwaysQuality: line length 110, ruff + black + flake8 + isort + mypy + vulture + fawltydeps.


