Skip to main content
PyCon US is happening May 14th-22nd in Pittsburgh, PA USA.  Learn more

A time-saving CLI to start a new Python project with uv

Project description

Using uvinit

uvinit

Documentation CI status image uv Copier X (formerly Twitter) Follow

Usage

Two words:

uvx uvinit

It will guide you!

Do I Need uv?

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.

What is uvinit?

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.

What Python Project Template Does it Use?

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.

Can I Use it With an Existing Project?

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.

By Chance Is There a Short URL I Can Remember for This Handy Tool?

Funny you should ask!

Type git.new/uvinit into your browser.

Tell your friends!


This project was (of course) built using simple-modern-uv.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page