Python Production Template¶
An AI-native Copier template for Python projects managed by uv. Ships with deep Claude Code integration, a modern toolchain, and a batteries-included development workflow so you can go from copier copy to production-ready in minutes.
Features¶
- Claude Code integration -- every generated project includes a
CLAUDE.mdwith project-aware guidance and custom skills (/commit,/release,/review-pr,/docs-deploy) so AI assistants understand your codebase from day one - Cursor IDE support -- full
.cursor/directory with always-apply rules pointing toCLAUDE.mdand skills symlinked from.claude/skills/, so Claude Code and Cursor share the same AI context - Modern Python toolchain -- uv for dependency management, Ruff for formatting and linting, ty for type checking
- Task runner -- taskipy tasks for every workflow:
fix,ci,test,docs,changelog,profile, and more - Pre-commit hooks -- pre-configured Ruff formatting and linting hooks
- CI/CD -- GitHub Actions workflow for format checking, linting, type checking, and testing
- Documentation site -- Zensical with mkdocstrings for auto-generated API docs
- CLI support --
__main__.pyentry point with argument parsing out of the box - Structured logging -- loguru with JSON output
- Optional marimo notebooks -- interactive marimo notebooks for data science workflows
- Auto-generated changelog -- conventional commits parsed by git-changelog
- All open-source licenses -- every license from choosealicense.com
- Smart defaults -- git email and username auto-detected from your git config
Quick Start¶
Make sure you have Git and uv installed, then:
uvx --with copier-templates-extensions copier copy --trust "gh:oedokumaci/python-production-template" /path/to/your/new/project
See the documentation for the full guide.
Updating an existing project¶
To pull in the latest template changes to an already-generated project:
uvx --with copier-templates-extensions copier update --trust --defaults
See the update documentation for details.
Credits¶
Based on pawamoy/copier-uv by Timothee Mazzucotelli.