InstallationΒΆ

Quick startΒΆ

$ cd my-project
$ uvx -- repomatic init
$ git add .
$ git commit -m "Update repomatic files"
$ git push

Works for both new and existing repositories. Run repomatic init --help to see available components and options: the workflows then take it from there, opening issues and PRs to guide any remaining setup.

Try itΒΆ

Thanks to uv, you can run it in one command, without installation or venv:

$ uvx -- repomatic --help
$ repomatic --help
Usage: repomatic [OPTIONS] COMMAND [ARGS]...

Options:
  --time / --no-time      Measure and print elapsed execution time.  [default:
                          no-time]
  --config CONFIG_PATH    Location of the configuration file. Supports local
                          path with glob patterns or remote URL.  [default: ~/.c
                          onfig/repomatic/{*.toml,*.yaml,*.yml,*.json,*.ini,pypr
                          oject.toml}]
  --no-config             Ignore all configuration files and only use command
                          line parameters and environment variables.
  --validate-config FILE  Validate the configuration file and exit.
  --color, --ansi / --no-color, --no-ansi
                          Strip out all colors and all ANSI codes from output.
                          [default: color]
  --theme [dark|dracula|light|monokai|nord|solarized_dark]
                          Color theme used for help screens.  [default: dark]
  --show-params           Show all CLI parameters, their provenance, defaults
                          and value, then exit.
  --table-format [aligned|asciidoc|colon-grid|csv|csv-excel|csv-excel-tab|csv-unix|double-grid|double-outline|fancy-grid|fancy-outline|github|grid|heavy-grid|heavy-outline|hjson|html|jira|json|json5|jsonc|latex|latex-booktabs|latex-longtable|latex-raw|mediawiki|mixed-grid|mixed-outline|moinmoin|orgtbl|outline|pipe|plain|presto|pretty|psql|rounded-grid|rounded-outline|rst|simple|simple-grid|simple-outline|textile|toml|tsv|unsafehtml|vertical|xml|yaml|youtrack]
                          Rendering style of tables.  [default: rounded-outline]
  --verbosity LEVEL       Either CRITICAL, ERROR, WARNING, INFO, DEBUG.
                          [default: WARNING]
  -v, --verbose           Increase the default WARNING verbosity by one level
                          for each additional repetition of the option.
                          [default: 0]
  --version               Show the version and exit.
  -h, --help              Show this message and exit.

Project setup:
  init                      Bootstrap a repository to use reusable workflows
  metadata                  Output project metadata
  show-config               Print [tool.repomatic] configuration reference
  workflow                  Lint downstream workflow caller files
  update-deps-graph         Generate dependency graph from uv lockfile
  update-docs               Regenerate Sphinx API docs and run update script
  convert-to-myst           Convert reST docstrings to MyST in Python files
  list-skills               List available Claude Code skills
  update-checksums          Update SHA-256 checksums for binary downloads
  format-images             Format images with lossless optimization

Release & versioning:
  changelog                 Maintain a Markdown-formatted changelog
  release-prep              Prepare files for a release
  version-check             Check if a version bump is allowed
  close-stale-bump-pr       Close a stale version-bump PR
  git-tag                   Create and push a Git tag
  scan-virustotal           Upload release binaries to VirusTotal

Sync:
  sync-gitignore            Sync .gitignore from gitignore.io templates
  sync-github-releases      Sync GitHub release notes from changelog
  sync-dev-release          Sync rolling dev pre-release on GitHub
  sync-mailmap              Sync Git's .mailmap file with missing contributors
  fix-vulnerable-deps       Upgrade packages with known vulnerabilities
  sync-uv-lock              Re-lock dependencies and prune stale cooldown
                            overrides
  sync-bumpversion          Sync bumpversion config from bundled template
  clean-unmodified-configs  Remove config files that match bundled defaults
  sync-labels               Sync repository labels via labelmaker

Linting & checks:
  test-plan                 Run a test plan from a file against a binary
  verify-binary             Verify binary architecture using exiftool
  check-renovate            Check Renovate migration prerequisites
  lint-repo                 Run repository consistency checks
  lint-changelog            Check changelog dates against release dates
  run                       Run an external tool with managed config
  cache                     Manage the download cache

GitHub issues & PRs:
  sponsor-label             Label issues/PRs from GitHub sponsors
  broken-links              Manage broken links issue lifecycle
  setup-guide               Manage setup guide issue lifecycle
  unsubscribe-threads       Unsubscribe from closed, inactive notification
                            threads
  pr-body                   Generate PR body with workflow metadata

Other commands:
  help                      Show help for a command.
$ uvx -- repomatic==6.23.0 --help
$ uvx --from "repomatic @ git+https://github.com/kdeldycke/repomatic" -- repomatic --help

Install methodsΒΆ

repomatic is available on a couple of package managers:

Easiest way is to install uv, then install repomatic system-wide with the uv tool command:

$ uv tool install repomatic

You can install the latest stable release and its dependencies with a simple pip call:

$ python -m pip install repomatic

If you have difficulties to use pip, see pip’s own installation instructions.

pipx is a great way to install Python applications globally:

$ pipx install repomatic

A repomatic package is available on AUR and can be installed with any AUR helper:

$ yay -S python-repomatic
$ paru -S python-repomatic
$ pacaur -S python-repomatic

Python compatibilityΒΆ

The table below shows which Python versions each repomatic release range supports, derived from the requires-python field and Programming Language :: Python classifiers across all release tags. Releases prior to 4.0.0 did not declare an explicit requires-python constraint and are not represented.

repomatic

Released

3.8

3.9

3.10

3.11

3.12

3.13

3.14

4.25.x β†’ 6.x

2025-12-05

❌

❌

βœ…

βœ…

βœ…

βœ…

βœ…

4.20.x β†’ 4.24.x

2025-10-10

❌

❌

❌

βœ…

βœ…

βœ…

βœ…

4.15.x β†’ 4.19.x

2025-03-05

❌

❌

❌

βœ…

βœ…

βœ…

❌

4.7.x β†’ 4.14.x

2024-11-03

❌

❌

βœ…

βœ…

βœ…

βœ…

❌

4.4.x β†’ 4.6.x

2024-07-27

❌

βœ…

βœ…

βœ…

βœ…

❌

❌

4.0.x β†’ 4.3.x

2024-06-29

βœ…

βœ…

βœ…

βœ…

βœ…

❌

❌

ExecutablesΒΆ

To ease deployment, standalone executables of repomatic’s latest version are available as direct downloads for several platforms and architectures:

That way you have a chance to try it out without installing Python or uv. Or embed it in your CI/CD pipelines running on minimal images. Or run it on old platforms without worrying about dependency hell.