uv
uv copied to clipboard
Using `uv run` as a task runner
For those of us migrating over from Rye, one of its nice features is the built-in task runner using rye run
and [tool.rye.scripts]
. For example:
[tool.rye.scripts]
hello = "echo Hello from Rye!"
$ rye run hello
Hello from Rye!
It could have some more features - here is a selection of feature requests from the community:
- https://github.com/astral-sh/rye/issues/695
- https://github.com/astral-sh/rye/issues/652
- https://github.com/astral-sh/rye/issues/930
- https://github.com/astral-sh/rye/issues/1243
A lot of these requested features are things that other 3rd party tools currently offer. I thought it might be useful to highlight a few other tools here, in particular because they also integrate with the pyproject.toml
ecosystem and can be used with uv today.
-
Poe the Poet
https://github.com/nat-n/poethepoetuv add --dev poethepoet
[tool.poe.tasks] hello = "echo Hello from poe!"
$ uv run poe hello Poe => echo Hello from 'poe!' Hello from poe!
-
taskipy
https://github.com/taskipy/taskipyuv add --dev taskipy
[tool.taskipy.tasks] hello = "echo Hello from taskipy!"
$ uv run task hello Hello from taskipy!
Perhaps these can serve as some inspiration for a future uv run
task runner and also in the meantime offer a solution for people coming over from Rye looking for a way to run tasks.