Skip to content

aiopy/python-uvtask

Repository files navigation

uvtask

image image image Actions status PyPIDownloads

An extremely fast Python task runner.

Note: This is an independent, third-party project, not an official Astral tool. It is highly inspired by and designed to work seamlessly with Astral's excellent tools (such as uv/uvx, ruff, and ty). We're grateful for the amazing work the Astral team does for the Python ecosystem!

Highlights

  • Extremely fast - Built for speed with zero installation overhead
  • 📝 Simple configuration - Define scripts in pyproject.toml
  • 🔗 Pre/post hooks - Automatically run hooks before and after commands
  • 🎨 Consistent UX - Maintains visual and stylistic continuity with uv's design language

🎯 Quick Start

Run uvtask directly with uvx (no installation required):

uvx uvtask <OPTIONS> [COMMAND]

Or install it and use it directly:

uv add --dev uvtask
uv run uvtask <OPTIONS> [COMMAND]

📝 Configuration

Define your scripts in pyproject.toml under the [tool.run-script] (or [tool.uvtask.run-script]) section:

[tool.run-script]
install = "uv sync --dev --all-extras"
format = "uv run ruff format ."
lint = { command = "uv run ruff check .", description = "Check code quality" }
check = ["uv run ty check .", "uv run mypy ."]
pre-test = "echo 'Running tests...'"
test = "uv run pytest"
post-test = "echo 'Tests completed!'"
deploy = [
    "echo 'Building...'",
    "uv build",
    "echo 'Deploying...'",
    "uv deploy"
]

🛠️ Development

To run the development version:

uvx -q --no-cache --from $PWD uvtask

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📄 License

MIT © uvtask contributors

About

An extremely fast Python task runner.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages