Skip to content
ditschiPublic

About

Build and operate isolated git-worktree environments across many repositories.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

repo-env — renv CLI

CI Python Docs License: MIT

Build and operate isolated git-worktree environments across many repositories. The command is renv; the distribution is repo-env.

Full documentation →

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

renv quickstart demo

Prefer arrow keys to flags? renv select walks you through picking an environment and an action (status, activate, sh, sync, path, rm) interactively:

renv select demo

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.

About

Build and operate isolated git-worktree environments across many repositories.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages