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 (24-hour TTL).
- Reads existing repo sections from
~/.mrconfig. - Interactive keyboard-driven selection UI.
- Saves add/remove config updates safely.
- Highlights missing configured repositories.
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)q/ESC: Quit (asks for confirmation if unsaved changes exist)
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.
