Rhiza Documentation
Rhiza is a collection of reusable configuration templates for modern Python projects. Save time and maintain consistency across your projects with pre-configured, living templates that evolve alongside your codebase.
In the original Greek, spelt ῥίζα, pronounced ree-ZAH, and having the literal meaning root.
What is Rhiza?
Unlike traditional one-shot project templates (like cookiecutter or copier), Rhiza provides living templates that support continuous synchronisation. When best practices evolve, you can selectively pull template updates into your project through automated workflows — no manual tracking of upstream changes required.
Rhiza has two components:
- rhiza — the template content: curated configuration files, Makefile modules, CI/CD workflows, and tooling.
- rhiza-cli — the CLI engine: a separate package (run via
uvx) providinginit,sync,bump, andreleasecommands.
Quick Start
# Navigate to your project directory
cd /path/to/your/project
# Initialise Rhiza configuration
uvx rhiza init
# Review .rhiza/template.yml, then apply the templates
uvx rhiza sync
See the Quick Reference for a concise command overview, or the Demo for a hands-on walkthrough.
Explore the Documentation
| Section | Description |
|---|---|
| Quick Reference | Common commands and tasks at a glance |
| Architecture | System diagrams and component overview |
| Customization | Adapting Rhiza to your project's needs |
| Extending Rhiza | Adding custom templates and hooks |
| Dependencies | Dependency management with uv and deptry |
| Docker | Containerisation support |
| Dev Container | VS Code / GitHub Codespaces setup |
| Marimo | Interactive notebook integration |
| Security | Security policy and reporting |
| Glossary | Key terms and concepts |
| ADR Overview | Architecture Decision Records |