mr-manager is a Textual TUI for managing repositories in your
~/.mrconfig myrepos file. It discovers Git repositories under your home
directory and lets you toggle which ones are tracked.
- Discovers local Git repositories recursively.
- Fast startup using a cached filesystem scan (configurable TTL).
- Reads existing repo sections from
~/.mrconfig. - Interactive keyboard-driven selection UI.
- Saves add/remove config updates safely.
- Highlights missing configured repositories.
- User-configurable discovery root and cache TTL persisted in
~/.config/mr-manager/config.yaml.
Requires Python >=3.13.
pipx install mr-managerPrerequisites: Python >=3.13, uv
uv sync --dev
uv run mr-managermr-manager: Start the interactive TUImr-manager -v: Print the installed version and exit
space: Toggle selected repositoryj: Move downk: Move ups: Save changesr: Refresh repository scan (bypasses cache)c: Open configuration editorq/ESC: Quit (asks for confirmation if unsaved changes exist)
- Config file path:
~/.config/mr-manager/config.yaml - When missing, defaults are used and the file is created when you save from the config editor.
- Currently configurable:
- Discovery Cache TTL (hours)
- Discovery Root Directory
Run checks locally before opening a PR:
uv run ruff check --no-fix .
uv run ruff format --check .
uv run ty check
markdownlint --config markdownlint.json --ignore-path .markdownlintignore "**/*.md"The project includes a benchmarking script to track performance regressions across versions:
# Run a quick benchmark
uv run scripts/benchmark.py --runs 5The benchmark supports step-based execution and persistent artifacts for later analysis:
# Full local run (collect + text summary + graph)
uv run scripts/benchmark.py --runs 5
# CI-style text-only run
uv run scripts/benchmark.py --runs 10 --steps collect,summaryDefault artifacts are saved in .cache/mr-manager/benchmarks/<benchmark-id>/:
data.jsonraw measurementssummary.txttextual reportplot.pnggraph (whenplotstep is enabled)
Useful options:
--versions v0.0.1 mainto benchmark specific refs--scan-root <path>to control discovery root--steps collect,summary,plotto resume from previous data--force-collectto overwrite existingdata.json
Project docs are maintained in the wiki/ folder and published to GitHub Wiki
via CI.
