Skip to main content

TUI-based CLI for managing repositories inside a *myrepos* config file. Simplifies adding and removing repos with an interactive interface.

Project description

mr-manager


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.

mr-manager-tui.png

Features

  • 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.

Installation

Python (pipx)

Requires Python >=3.13.

pipx install mr-manager

From source

Prerequisites: Python >=3.13, uv

uv sync --dev
uv run mr-manager

Usage

  • mr-manager: Start the interactive TUI
  • mr-manager -v: Print the installed version and exit

Keybindings

  • space: Toggle selected repository
  • j: Move down
  • k: Move up
  • s: Save changes
  • r: Refresh repository scan (bypasses cache)
  • c: Open configuration editor
  • q/ESC: Quit (asks for confirmation if unsaved changes exist)

User configuration

  • 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

Development workflow

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"

Performance Benchmarking

The project includes a benchmarking script to track performance regressions across versions:

# Run a quick benchmark
uv run scripts/benchmark.py --runs 5

The 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,summary

Default artifacts are saved in .cache/mr-manager/benchmarks/<benchmark-id>/:

  • data.json raw measurements
  • summary.txt textual report
  • plot.png graph (when plot step is enabled)

Useful options:

  • --versions v0.0.1 main to benchmark specific refs
  • --scan-root <path> to control discovery root
  • --steps collect,summary,plot to resume from previous data
  • --force-collect to overwrite existing data.json

Documentation

Project docs are maintained in the wiki/ folder and published to GitHub Wiki via CI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mr_manager-1.0.1.tar.gz (1.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mr_manager-1.0.1-py3-none-any.whl (45.0 kB view details)

Uploaded Python 3

File details

Details for the file mr_manager-1.0.1.tar.gz.

File metadata

  • Download URL: mr_manager-1.0.1.tar.gz
  • Upload date:
  • Size: 1.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.12 {"installer":{"name":"uv","version":"0.11.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for mr_manager-1.0.1.tar.gz
Algorithm Hash digest
SHA256 87abc6ad735b157124b358153a0879743a144a06021bbac35180fd64afdc3dc7
MD5 5518016dc5bf25d91f7a931186c2bf56
BLAKE2b-256 7479cc3e9473d33224412659be4bf4fe194542d4e183a06d24a6697cb9901667

See more details on using hashes here.

File details

Details for the file mr_manager-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: mr_manager-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 45.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.12 {"installer":{"name":"uv","version":"0.11.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for mr_manager-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 02ce43352e1b9c50baf5e15121df4cde626fefbf16b55825b1c7095a45894a0a
MD5 9987c59da62c0b7450b7e77c0a940664
BLAKE2b-256 d18e60ffda91824e9e75f5a1b3b3c714109021fee0ddb378ca8f5713288abc17

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page