Uv Copier

March 18, 2026 ยท View on GitHub

License: GNU Affero General Public License v3.0 CI GitHub Repo stars

Uv Copier

A copier template for scaffolding Python packages and apps (FastAPI and Gradio) using uv as package manager and Development Containers as reproducible development environment.

๐Ÿ’ป Demo

Check out the following demos for examples of scaffolded projects using this template:

๐ŸŽ‰ Features

๐Ÿš€ Using

  1. Install the latest copier in your Python environment (please use python>=3.8):
    pip install "copier>=9.12.0"
    
  2. Create a new repository and clone it locally.
  3. Run copier in your cloned directory:
    copier copy --vcs-ref=v1.1.0 git@github.com:lukin0110/uv-copier.git .
    

Updating a project

copier update --vcs-ref=HEAD --defaults

More information on how to update a project and resolve conflicts can be found in the Copier documentation.

๐Ÿ’ญ Rationale

This template aims to provide a minimal, but fully functional, project structure for any python project. Focus on what matters: coding!

Setting up a project can be tedious and requires a lot of "plumbing" to get CI/CD right, to get pyproject.toml right, to get the Dockerfile right, etc.

The use of Docker in conjunction with Development Containers are key in this template to provide a smooth development experience. It's possible to develop without a Development Container and use uv with virtual environments straight away, however this template is optimized to provide a working development environment with development containers.

Note

This template is not a good fit if you don't want to work with Docker and/or Development Containers.

๐ŸŽฏ Goals

  • Reduce project setup
  • Provide dev/prod parity
  • IDE idependent. However, with a strong focus on VSCode since it integrates nicely with GitHub, Development Containers and GitHub Copilot
  • Provide a minimal workable setup
  • Don't enforce application or package architecture
  • Include the usual suspects of every project: CI/CD, linting, testing, package manager, development container, etc

๐Ÿ‘ท๐Ÿผ Troubleshooting: docs/troubleshooting.md

๐ŸŽจ Technical design: docs/design.md

๐Ÿ› ๏ธ Open an issue if you have any questions or suggestions