poethepoet
A task runner that works well with poetry and uv.
Decision gist · record as of 2026-08-14
Yes. Poe the Poet is a well-maintained, actively developed task runner with low install friction, no security issues, and a permissive license. It's a natural fit for poetry and uv projects, and useful as a general-purpose task runner even without them. Install it if you want to centralize project automation in pyproject.toml and avoid shell scripts or Makefiles.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later.
- Works best when poetry or uv is already managing your project environment.
- Low friction: pure Python wheel with only three runtime dependencies (pastel, pyyaml, tomli).
License · maintenance · safety
MIT (permissive) — MIT license (permissive). No restrictions on use, modification, or distribution in commercial or private projects.
last release 2026-07-05 (40 days) · last repo commit 2026-07-12 · 2,060 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 6,153,515 downloads/mo, #1,963 on PyPI
Alternatives
Verify before relying
# Install globally or as a poetry plugin
pipx install poethepoet
# Add to pyproject.toml
[tool.poe.tasks]
test = "pytest --cov=my_app"
# Run task
poe test- Whether shell completion setup is automatic or requires manual configuration per shell type.
- Performance characteristics when composing large DAGs or running many parallel tasks.
- Compatibility with non-standard virtualenv managers beyond poetry and uv.
What it is and what it does
Poe the Poet is a task runner designed to integrate with poetry and uv projects, though it also works standalone. You define tasks declaratively in pyproject.toml (or poe_tasks.toml) as commands, shell scripts, Python expressions, or references to Python functions. The poe CLI then executes these tasks, automatically using your project's virtualenv so you don't need to prefix commands with `poetry run` or `uv run`. Tasks can be composed into sequences, run in parallel, or organized as directed acyclic graphs. It supports named CLI arguments, environment variable references, .env file loading, and self-documenting help output.
The package is lightweight (three dependencies: pastel, pyyaml, tomli) and can be installed globally via pipx, added as a poetry plugin, or embedded as a library in other tools. It's actively maintained, supports modern Python versions (3.10–3.14), and has no known security vulnerabilities.
Use it for
- Define and run test, lint, and format commands in a single pyproject.toml without shell scripts.
- Orchestrate multi-step CI/CD workflows as task sequences or DAGs with automatic dependency resolution.
- Replace Makefile-style task runners with a Python-native, poetry-integrated alternative.
- Compose shell commands, AWS CLI calls, or SSH tunnels with named arguments and environment variable substitution.
- Embed task execution in other Python tools or frameworks via the library API.
- Run project tasks without memorizing command syntax by using self-documenting help and shell completion.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Poe the Poet is a well-maintained, actively developed task runner with low install friction, no security issues, and a permissive license. It's a natural fit for poetry and uv projects, and useful as a general-purpose task runner even without them. Install it if you want to centralize project automation in pyproject.toml and avoid shell scripts or Makefiles.
Install
poethepoet on PyPI
Before you install
Low friction: pure Python wheel with only three runtime dependencies (pastel, pyyaml, tomli). Actively maintained with a release 40 days ago and 2060 GitHub stars. Supports Python 3.10 through 3.14.
Requires Python 3.10 or later. Works best when poetry or uv is already managing your project environment.
License in practice
MIT license (permissive). No restrictions on use, modification, or distribution in commercial or private projects.
Quickstart
# Install globally or as a poetry plugin
pipx install poethepoet
# Add to pyproject.toml
[tool.poe.tasks]
test = "pytest --cov=my_app"
# Run task
poe test
Verify before relying
- Whether shell completion setup is automatic or requires manual configuration per shell type.
- Performance characteristics when composing large DAGs or running many parallel tasks.
- Compatibility with non-standard virtualenv managers beyond poetry and uv.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 3 packagespastelpyyamltomli |
| Maintenance | Actively maintained 40 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 6,153,515 / month, #1,963 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableEnvironment :: ConsoleIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Software Development :: Build ToolsTopic :: Software Development :: LibrariesTopic :: Software Development :: Quality AssuranceTopic :: Software Development :: Testing |
Evidence: poethepoet-0.48.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “task runner for poetry projects”
- poethepoetA task runner that reads task definitions from pyproject.toml or…
- taskipyTaskipy is a task runner that lets you define and execute development…
- rust-justrust-just is a Python wrapper around the just command runner, letting…
Give your agent the search over MCP, or paste the wish link into any chat.
More Libraries packages
urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.
Requests is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Provides parsing, arithmetic, and recurrence rule computation for dates and times, with timezone support and iCalendar RFC compliance.
Install it if you need to parse flexible date strings, compute relative dates, handle timezones, or work with recurrence rules—it's the de facto choice for these tasks.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
pytest is a testing framework that lets you write test functions using plain assert statements and automatically discovers and runs them, with detailed failure reporting.
See also taskipy · Paver · go-task-bin · poetry-multiproject-plugin · poetry-dynamic-versioning · poetry-plugin-shell · robocorp-tasks · poetry · poetry-core · poetry-plugin-export