Skip to main content

repoman

Declarative multi-forge Git workspace sync — preview-first CLI that plans and applies local clones (and later forge-side mirrors) from one YAML file. Works on Linux, macOS, and Windows.

Status Meaning
OK No action needed
WOULD UPDATE Preview of a planned change
UPDATED Change applied
SKIP Left unchanged (e.g. dirty tree, non–fast-forward)
WARN Informational issue
ERROR Failure

Documentation

Resource Description
Getting started Install, first config, tokens, first sync (start here)
Published docs MkDocs site (after GitHub Pages is enabled — see Deployment)
Full docs site MkDocs index — build with uv run mkdocs serve
Design spec Architecture, schema, roadmap
Examples Runnable sample commands and namespace include / exclude recipes
Examples (repo) Safe runnable YAML under examples/

Requirements

  • Python ≥ 3.11
  • Git on PATH
  • uv — environments and CI

Install

From PyPI (recommended)

pipx install repoman-cli
# or: pip install repoman-cli
# or: uv pip install repoman-cli
repoman --version

The PyPI package name is repoman-cli; the CLI command is still repoman.

From a clone (development)

git clone <this-repo-url> repoman && cd repoman
uv sync --all-groups
uv run repoman --version

Optional: install the CLI into the active environment from the checkout:

uv pip install .
repoman --version

First-time setup (5 minutes)

1. Create configuration

repoman config init
repoman config path    # shows where repoman.yaml was created
Platform Default config directory
Linux / macOS ~/.config/repoman/
Windows %USERPROFILE%\.repoman\

Set REPOMAN_HOME to use a different directory on any OS, or pass --config PATH per command.

2. Edit repoman.yaml

Set paths.workspace_root, configure remotes, and add at least one namespaces entry (or explicit repos). See getting started for a GitHub namespace example and token setup.

3. Tokens

Use environment variables (token_env in YAML) or credentials.toml beside repoman.yaml with token_credentials — never put tokens in YAML. Details: Getting started § Tokens.

4. Validate, preview, apply

repoman config validate
repoman doctor
repoman local plan                  # preview only
repoman local status                # read-only; add --json for automation
repoman local sync --write          # clones / fetch / ff-only merges

Adjust settings without an editor:

repoman config set paths.workspace_root '~/repositories' --write

Safety: local sync without --write never mutates clones; dirty trees and non–fast-forward states produce SKIP, not silent data loss.

What's implemented

  • configinit, path, validate, show, set
  • doctor — tokens and optional API reachability
  • local plan / local sync / local status — discovery, layout, guarded git operations

Not yet shipped: mirrors — see roadmap.

Development

uv sync --all-groups
uv run ruff check .
uv run ruff format --check .
uv run pytest
uv run mkdocs build --strict
uv run mkdocs serve    # local docs at http://127.0.0.1:8000

Contributor rules: AGENTS.md (backlog in .adr.md, chatlogs under docs/chatlogs/).

License

Released under the MIT License — see LICENSE.

Download files

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

Source Distribution

repoman_cli-0.5.0.tar.gz (141.2 kB view details)

Uploaded Source

Built Distribution

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

repoman_cli-0.5.0-py3-none-any.whl (37.8 kB view details)

Uploaded Python 3

File details

Details for the file repoman_cli-0.5.0.tar.gz.

File metadata

  • Download URL: repoman_cli-0.5.0.tar.gz
  • Upload date:
  • Size: 141.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for repoman_cli-0.5.0.tar.gz
Algorithm Hash digest
SHA256 c313606018c59e98f7ecaa7ee206100f6098da53339385dcd78827ae6791d263
MD5 58b7ff4f63ab9f7839e7251b3b350247
BLAKE2b-256 4ddbc2bfb214595ef8f0cca39dd3de013b4d2de6e7ec1e8b07fc1d9e887661e1

See more details on using hashes here.

Provenance

The following attestation bundles were made for repoman_cli-0.5.0.tar.gz:

Publisher: release.yml on dfabianus/repoman

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file repoman_cli-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: repoman_cli-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 37.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for repoman_cli-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1807df130d542fc3457d775902b0f61252389cbd98c38493cbd454a238b98c8a
MD5 5276c2462052ddc4578adf18718c0cb9
BLAKE2b-256 88f5cfbd117377eb0f3a4a63de0031ba3cbfae7d46806bd71885bc6ffd666eb9

See more details on using hashes here.

Provenance

The following attestation bundles were made for repoman_cli-0.5.0-py3-none-any.whl:

Publisher: release.yml on dfabianus/repoman

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.5.0 This release

2 files

0.4.2

2 files

0.4.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page