https://github.com/aiopy/python-uvtask
An extremely fast Python task runner.
https://github.com/aiopy/python-uvtask
pyproject scripts task-runner tool uv uvtask uvx
Last synced: about 2 months ago
JSON representation
An extremely fast Python task runner.
- Host: GitHub
- URL: https://github.com/aiopy/python-uvtask
- Owner: aiopy
- License: mit
- Created: 2025-12-21T13:32:18.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-12-25T17:35:40.000Z (3 months ago)
- Last Synced: 2025-12-26T13:11:55.192Z (3 months ago)
- Topics: pyproject, scripts, task-runner, tool, uv, uvtask, uvx
- Language: Python
- Homepage:
- Size: 104 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# uvtask
[](https://pypi.python.org/pypi/uvtask)
[](https://pypi.python.org/pypi/uvtask)
[](https://pypi.python.org/pypi/uvtask)
[](https://github.com/aiopy/python-uvtask/actions)
[](https://pepy.tech/project/uvtask)
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):
```shell
uvx uvtask [COMMAND]
```
Or install it and use it directly:
```shell
uv add --dev uvtask
uv run uvtask [COMMAND]
```
## 📝 Configuration
Define your scripts in `pyproject.toml` under the `[tool.run-script]` (or `[tool.uvtask.run-script]`) section:
```toml
[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:
```shell
uvx -q --no-cache --from $PWD uvtask
```
## 🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## 📄 License
[MIT](https://github.com/aiopy/python-uvtask/blob/master/LICENSE) © uvtask contributors