A modern Copier template for scaffolding Python packages and applications with best practices built-in.
- 📦 Modern Python packaging using UV for lightning-fast dependency management
 - ⚡️ Streamlined task execution with Task
 - ✍️ Code formatting and linting with Ruff
 - 🔍 Type checking with Mypy
 - 🛡️ Quality gates with Pre-commit hooks
 - 🏷️ Automated versioning following Conventional Commits with Commitizen
 - 📋 Changelog generation compatible with Keep A Changelog
 - 🔄 Continuous integration with GitHub Actions
 - 🏗️ Template updates with Copier for easy maintenance
 
- 
Install UV globally:
curl -LsSf https://astral.sh/uv/install.sh | sh - 
Generate your project:
# Create in a new directory uvx copier copy https://github.com/gotofritz/copier-python-template my-project/ --trust # Or create in current directory mkdir my-project && cd my-project uvx copier copy https://github.com/gotofritz/copier-python-template . --trust
Note: The
--trustflag is required as the template executes setup scripts. - 
Configure your project by answering the interactive prompts.
 - 
Initialize Git and create remote repository:
cd my-project git init # Using GitHub CLI (recommended) gh repo create my-org/my-project --private --source=. --push # Or follow GitHub's instructions to push an existing repository
 - 
Set up dependencies:
uv sync git add uv.lock && git commit -m "feat: add dependency lock file"
 
Keep your project aligned with the latest template improvements:
uvx copier updateIf conflicts arise, resolve them by inspecting the generated .rej files.
When you enable CLI support during project creation, the template generates a ready-to-use command-line interface:
- Automatic script installation named after your project (kebab-case)
 - Sample commands to get you started
 - Easy customization via 
pyproject.toml 
Example usage:
❯ my-project --help
Usage: my-project [OPTIONS] COMMAND [ARGS]...
  Main entry point for the CLI.
Options:
  -v, --version  Show the version and exit.
  -h, --help     Show this message and exit.
Commands:
  simple-command  This is a simple command.
  subcommand      This contains sub-subcommandsTo test modifications to this template:
copier copy ./copier-python-template --trust --vcs-ref=HEAD my-test-project- Fork this repository
 - Update all occurrences of 
gotofritzto your GitHub username - Customize the template to match your preferences
 - Use your forked version in the copy commands above
 
Your generated project comes with:
- Modern Python packaging with PEP 621 compliant 
pyproject.toml - Development tools pre-configured and ready to use
 - GitHub Actions workflows for testing and quality checks
 - Pre-commit hooks to maintain code quality
 - Documentation structure with README and changelog templates
 - Testing setup with pytest and coverage reporting