pyrig
A tool that standardizes and automates Python project setup, configuration, development, and maintenance.
What it is and what it does
pyrig is a project initialization and maintenance tool that generates a complete, fully configured Python project structure in one command. It scaffolds standardized directories, installs and configures development tools (linters, formatters, type checkers, test frameworks, git hooks), sets up GitHub Actions CI/CD pipelines with repository protection, and generates a working CLI for your project. It treats all configuration files as data structures with validation, allowing you to override behavior through subclassing.
The tool is designed for developers who want to start new Python projects without manual boilerplate setup. It automates configuration management, generates test skeletons that stay in sync with your source code, and provides commands to generate new CLI commands, custom configuration classes, and other project artifacts. It requires Python 3.12+, Git, and the uv package manager.
Use it for:
- Quickly initialize a new Python project with all standard dev tools, linting, formatting, and testing already configured.
- Generate and maintain a CLI for your project automatically, adding new commands without manual scaffolding.
- Set up GitHub Actions workflows and repository protection rules for CI/CD in one step.
- Keep test skeletons synchronized with your source modules as your project evolves.
- Customize project configuration by subclassing pyrig's file management classes without editing configuration files directly.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
pyrig scaffolds, initializes, and maintains Python projects with standardized configuration, CLI generation, testing infrastructure, and CI/CD automation.
Yes, if you are starting a new Python project and want to eliminate boilerplate setup. pyrig is actively maintained, has no known vulnerabilities, uses a permissive MIT license, and requires only standard modern dependencies. The 1-day-old release and active commits suggest ongoing development. Start with `uv init` and `uv add pyrig --dev` to test it on a new project.
Install
pyrig on PyPI
pip
pip install pyriguv
uv add pyrigpoetry
poetry add pyrigInstalling pyrig
Before you install
Low install friction with a pure-Python wheel. Active maintenance with a release 1 day old and commits through 2026-08-13. Requires Python 3.12+ and uv as external dependencies.
License in practice
MIT license permits commercial use, modification, and distribution with minimal restrictions—suitable for most projects.
Quickstart
uv init my-project --python 3.12
cd my-project
uv add pyrig --dev
uv run pyrig init
Requires Python 3.12+, Git, and uv package manager installed on the system.
Verify before relying
- Whether custom class discovery and subclassing work as seamlessly as described without additional configuration.
- Scope and completeness of the auto-generated CLI and whether it covers typical project command patterns.
- How well the mirror test generation adapts to evolving codebases in practice.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.12) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 8 — inquirerpy, packaging, pyrig-runtime, ruamel-yaml, ruamel-yaml-clib, spdx-matcher, tomli-w, typer |
| Maintenance | actively maintained — 1 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 120,566/month — #12,019 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pyrig-18.57.2-py3-none-any.whl
Keywords: automation, boilerplate, ci-cd, code-quality, configuration, developer-tools, devops, project-setup, project-template, pyrig, scaffolding
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
ansible-creatorA CLI tool that scaffolds new Ansible projects…
permissive · top 15,000 on PyPI
dagster-dg-cliA command-line tool for developing and managing…
permissive · top 5,000 on PyPI
cookiecutterCookiecutter is a command-line tool that…
unclear · top 5,000 on PyPI
lamindb_setupConfigures and initializes LaminDB instances,…
unclear · top 15,000 on PyPI
polylith-cliA command-line tool that scaffolds and manages…
permissive · top 15,000 on PyPI
ansible-dev-toolsBundles and installs a curated suite of Ansible…
copyleft · top 15,000 on PyPI
flet-cliFlet CLI is a command-line tool for creating,…
permissive · top 15,000 on PyPI
lintroLintro unifies code formatting, linting, and…
permissive · top 15,000 on PyPI
pyats.kleenexStandardizes testbed device preparation,…
permissive · top 15,000 on PyPI
colcon-corecolcon-core is a command-line tool that…
permissive · top 15,000 on PyPI