A lightweight, modern Python project template for packages, CLIs, and notebooks — powered by uv.
Choose your project type:
- 📦 Package: Python libraries and packages
- 🚀 CLI: Command-line applications with Typer and Rich
- 📊 Notebooks: Data science projects with JupyterLab, pandas, and visualization tools
Features:
- uv for dependency management
- Code quality with ruff, mypy, deptry and prettier
- Testing with pytest and pytest-xdist for parallel execution
- Documentation with MkDocs
- Compatibility testing for multiple versions of Python with tox-uv
- GitHub Actions CI/CD with automated testing, documentation deployment, and security scanning
- Enterprise GitHub support with SSH-first authentication
On your local machine, navigate to the directory in which you want to create a project directory, and run the following command:
uvx cookiecutter gh:matrig/cookiecutter-uv-liteYou'll be prompted to configure your project (12 questions):
- project_type: Choose between
package(library),cli(command-line app), ornotebooks(data science) - project_name: Your project name (e.g.,
my-awesome-project) - project_description: Short description of your project
- author: Your name
- author_email: Your email
- author_username: Your GitHub username
- git_repo [y/n]: Initialize git repository and optionally create remote on GitHub
- git_server: GitHub server (default:
github.com, or your enterprise domain) - private_repo [y/n]: Create private repository
- mkdocs [y/n]: Include MkDocs documentation
- github_actions [y/n]: Enable GitHub Actions CI/CD
- codecov [y/n]: Enable Codecov integration
📦 Package - Python libraries and packages
- Includes example module with function
- Standard package structure
- Ready for PyPI publishing
🚀 CLI - Command-line applications
- Built with Typer (modern CLI framework)
- Styled output with Rich
- Executable entry point configured
make runcommand with argument support
📊 Notebooks - Data science and analysis projects
- JupyterLab for interactive development
- Data science stack: pandas, numpy, matplotlib, seaborn
- Sample notebooks with exploratory analysis and visualization examples
notebooks/directory for analysis,data/directory for datasets- Notebook testing with nbval
- Helper utilities module for reusable code
make jupyterto launch JupyterLab
When you enable GitHub Actions (github_actions: y), your generated project includes:
- Multi-Python testing: Automatically tests your code on Python 3.9-3.13
- Multi-OS testing: Tests on Ubuntu, macOS, and Windows
- Code quality checks: Automated linting (ruff), formatting, and type checking (mypy)
- Coverage reporting: Optional integration with Codecov
- Auto-deploy to GitHub Pages: Documentation automatically updates when you push to main
- MkDocs integration: Works seamlessly if you enable MkDocs
- CodeQL analysis: GitHub's native security scanning
- Dependency scanning: Automated vulnerability detection with Safety
- Scheduled security checks: Weekly automated scans
Your generated project gets enterprise-grade CI/CD that:
- ✅ Prevents bad code from being merged
- ✅ Automatically deploys documentation
- ✅ Monitors for security vulnerabilities
- ✅ Works with both GitHub.com and GitHub Enterprise
This project is based on https://github.com/patrickmineault/true-neutral-cookiecutter and https://github.com/fpgmaas/cookiecutter-uv.