Skip to content

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) providing init, sync, bump, and release commands.

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