repomatic init - Bootstrap a repository to use reusable
workflows
repomatic init [OPTIONS]
[COMPONENT[/FILE]]...
Bootstrap a repository to use reusable workflows from
kdeldycke/repomatic.
With no arguments, generates thin-caller workflow files, exports
configuration files (labels), and creates a minimal changelog. Specify
COMPONENTS to initialize only selected parts.
Scope restrictions (awesome-only, non-awesome) and
[tool.repomatic] exclude entries only apply during bare init (no arguments).
Explicitly naming a component bypasses scope, allowing workflows to
materialize out-of-scope configs at runtime.
Selectors use the same syntax as the exclude config in
[tool.repomatic]: bare names select an entire component, qualified
component/file entries select a single file.
The derived upstream pin honors the [tool.repomatic]
minimum-release-age cooldown when it would adopt a release newer than the
one already pinned in this repository: if the running repomatic version is
still inside that window, the workflow pin steps back to the newest release
that has cleared it, and never below the pin already on disk. Re-running
init at the pinned version leaves it untouched. Pass --no-cooldown to pin
the running version immediately, or --version to pin an exact tag.
--upgrade runs init as the newest release past that window
instead, and hands off to it through uvx when it is not the running one: the
upstream pin and every managed file then move in one run. With --output, it
writes a report of the move for the upgrade pull request.
Components:
labels Label definitions for labelmaker (labels.toml)
publish-pypi-action Composite action that publishes to PyPI via Trusted Publishing (.github/actions/publish-pypi/)
subagents Agent subagent definitions (.claude/agents/)
skills Claude Code skill definitions (.claude/skills/)
workflows Thin-caller workflow files
awesome-template Boilerplate for awesome-* repositories
changelog Minimal changelog.md
plugin Claude Code plugin marketplace wiring (.claude/settings.json)
uv uv resolver pin and dependency cooldown policy
lychee Lychee link checker configuration
ruff Ruff linter/formatter configuration
pytest Pytest test configuration
coverage Coverage.py measurement and reporting configuration
mypy Mypy type checking configuration
mdformat mdformat Markdown formatter configuration
bumpversion bump-my-version configuration
typos Typos spell checker configuration
File-level selectors (labels, publish-pypi-action, subagents, skills, workflows):
workflows/autofix.yaml A single workflow
skills/repomatic-topics A single skill
labels/labels.toml A single label config file
- [COMPONENT[/FILE]]...
- --version
TEXT
- Version pin for upstream workflows (e.g., v5.10.0). Defaults to the latest
release derived from the package version.
- --cooldown /
--no-cooldown
- When adopting a repomatic release newer than the one this repository
already pins, hold the upstream pin back to the newest release past the
[tool.repomatic] minimum-release-age window. Never moves a pin at or above
the running version. --no-cooldown pins the running repomatic version
immediately. Ignored when --version is set.
- --upstream-repo
TEXT
- Upstream repository containing reusable workflows.
- --output-dir
DIRECTORY
- Root directory of the target repository.
- --delete-excluded
- Delete files that are excluded by config but still on disk.
- --delete-unmodified
- Delete config files identical to bundled defaults.
- --keep-removed
- Keep orphaned files of assets repomatic no longer ships (report them
instead of auto-pruning).
- --delete-removed-modified
- Also delete orphaned files of removed assets that were modified locally
(normally reported for manual review, never deleted).
- --upgrade
- Run as the newest repomatic release past the [tool.repomatic]
minimum-release-age window, never below the release already pinned, so the
upstream pin and every managed file move together. Hands off to that
release through uvx when it is not the running one. Overrides --cooldown
when it picks a release, and takes no COMPONENTS and no --version.
- --output
FILE
- Write a markdown report (table + release notes) to this file.
- --output-format
[markdown|github-actions]
- Format for --output. github-actions produces format for PR template
consumption in workflows.
- --help /
-h
- Show this message and exit.
- INIT_VERSION_PIN
- Version pin for upstream workflows (e.g., v5.10.0). Defaults to the latest
release derived from the package version.
- INIT_COOLDOWN
- When adopting a repomatic release newer than the one this repository
already pins, hold the upstream pin back to the newest release past the
[tool.repomatic] minimum-release-age window. Never moves a pin at or above
the running version. --no-cooldown pins the running repomatic version
immediately. Ignored when --version is set.
- INIT_REPO
- Upstream repository containing reusable workflows.
- INIT_OUTPUT_DIR
- Root directory of the target repository.
- INIT_DELETE_EXCLUDED
- Delete files that are excluded by config but still on disk.
- INIT_DELETE_UNMODIFIED
- Delete config files identical to bundled defaults.
- INIT_KEEP_REMOVED
- Keep orphaned files of assets repomatic no longer ships (report them
instead of auto-pruning).
- INIT_DELETE_REMOVED_MODIFIED
- Also delete orphaned files of removed assets that were modified locally
(normally reported for manual review, never deleted).
- INIT_UPGRADE
- Run as the newest repomatic release past the [tool.repomatic]
minimum-release-age window, never below the release already pinned, so the
upstream pin and every managed file move together. Hands off to that
release through uvx when it is not the running one. Overrides --cooldown
when it picks a release, and takes no COMPONENTS and no --version.
- INIT_OUTPUT
- Write a markdown report (table + release notes) to this file.
- INIT_OUTPUT_FORMAT
- Format for --output. github-actions produces format for PR template
consumption in workflows.
- INIT__CLICK_DEFAULT_HELP
- Show this message and exit.
- 0
- Success.
- 1
- A runtime error, an aborted prompt (Ctrl-D), or a declined
confirmation.
- 2
- A usage error: unknown option, invalid value, missing operand, or an
unparsable configuration file.
- 130
- Interrupted with Ctrl-C: the process ends by SIGINT, reported as 130.
Full bootstrap (workflows + labels + changelog)
Pin to a specific version
repomatic init \-\-version v5.9.1
Adopt the running version now, skipping the release-age
cooldown
repomatic init \-\-no\-cooldown
Upgrade to the newest release past the release-age cooldown
repomatic init \-\-upgrade
Install a single skill
repomatic init skills/repomatic\-topics
One workflow + all labels
repomatic init workflows/autofix.yaml labels
Only merge ruff config into pyproject.toml
Multiple components
repomatic init ruff bumpversion