Two words:
uvx uvinit
It will guide you!
Yes. You will need to have uv installed. Read that page or my template docs for background on why uv is such an improved package manager for Python.
A time-saving CLI tool to quickly start new Python projects with uv using the simple-modern-uv template and copier.
It's the tool I wish I'd had when setting up projects with uv.
uvx uvinit
will clone a new project template and help you set up your GitHub repo.
The template tiny and sets up uv, ruff linting and formatting, GitHub
Actions, publishing to PyPI, type checking, and more.
The simple-modern-uv template. See that repo for full docs and this thread for a bit more context.
If you prefer, you can use that template directly; uvinit is just a CLI wrapper for the template.
If you have another copier-format template you want to use, however, you can specify it
with the --template
argument.
Yes. Just cancel after the template is copied (skip the part that pushes to git) and you'll have a new working tree with all the uv and tooling set up. Then manually copy over all the parts you want into your existing project.
Funny you should ask!
Type git.new/uvinit into your browser.
Tell your friends!
This project was (of course) built using simple-modern-uv.