NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1640 most downloaded on PyPI
A task runner that works well with poetry and uv.
Last release 3 months ago
05 Jul 2026
Ships fairly regularly
a new release about every 5 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
86 releases · first in 2020
One column per quarter.
Add uses_env task option for loading variables from another task's output like an env file by @nat-n in https://github.com/nat-n/poethepoet/pull/407
uses_env task option for loading variables from another task's output like an env file by @nat-n in https://github.com/nat-n/poethepoet/pull/407Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.47.1...v0.48.0
uses_env task option for loading variables from another task's output like an env file by @nat-n in #407Full Changelog: v0.47.1...v0.48.0
Restore default value propagation for absent multiple positional args by @nat-n in https://github.com/nat-n/poethepoet/pull/409
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.47.0...v0.47.1
Add buffer output_mode for parallel tasks by @nat-n in https://github.com/nat-n/poethepoet/pull/400
buffer output_mode for parallel tasks by @nat-n in https://github.com/nat-n/poethepoet/pull/400poe section in pyproject based on PoeOptions and improve some validation edge cases by @nat-n in https://github.com/nat-n/poethepoet/pull/392 https://github.com/nat-n/poethepoet/pull/389 https://github.com/nat-n/poethepoet/pull/398Install the skill via one of the following methods:
poe _install_skill # auto-detects .claude/.codex/.pi/.agents and prompts
poe _install_skill ~/.claude/skills # explicit path (substitute your agent's dir)
poe _install_skill <skills-dir> --upgrade # non-interactive upgrade (skips if same/newer)
npx skills add https://github.com/nat-n/poethepoet/tree/v0.46.0/poethepoet/skills/poethepoet
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.46.0...v0.47.0
buffer output_mode for parallel tasks by @nat-n in #400poe section in pyproject based on PoeOptions and improve some validation edge cases by @nat-n in #392 #389 #398Install the skill via one of the following methods:
poe _install_skill # auto-detects .claude/.codex/.pi/.agents and prompts
poe _install_skill ~/.claude/skills # explicit path (substitute your agent's dir)
poe _install_skill <skills-dir> --upgrade # non-interactive upgrade (skips if same/newer)npx skills add https://github.com/nat-n/poethepoet/tree/v0.46.0/poethepoet/skills/poethepoetFull Changelog: v0.46.0...v0.47.0
Experimental Claude Code skill and bump-version task by @nat-n in https://github.com/nat-n/poethepoet/pull/387
:- and :+ param expansion operators everywhere by @nat-n in https://github.com/nat-n/poethepoet/pull/386This release ships an experimental agent skill that gives AI coding agents contextual knowledge of poe's task API when working in projects that use it. It works with any agent that supports the skills convention and aims to improve agent abilities when it comes to leveraging and authoring poe tasks.
Please try it out and provide feedback!
Two install methods:
poe _install_skill # auto-detects .claude/.codex/.pi/.agents and prompts
poe _install_skill ~/.claude/skills # explicit path (substitute your agent's dir)
poe _install_skill <skills-dir> --upgrade # non-interactive upgrade (skips if same/newer)
npx skills add https://github.com/nat-n/poethepoet/tree/v0.46.0/poethepoet/skills/poethepoet
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.45.0...v0.46.0
:- and :+ param expansion operators everywhere by @nat-n in #386This release ships an experimental agent skill that gives AI coding agents contextual knowledge of poe's task API when working in projects that use it. It works with any agent that supports the skills convention and aims to improve agent abilities when it comes to leveraging and authoring poe tasks.
Please try it out and provide feedback!
Two install methods:
poe _install_skill # auto-detects .claude/.codex/.pi/.agents and prompts
poe _install_skill ~/.claude/skills # explicit path (substitute your agent's dir)
poe _install_skill <skills-dir> --upgrade # non-interactive upgrade (skips if same/newer)npx skills add https://github.com/nat-n/poethepoet/tree/v0.46.0/poethepoet/skills/poethepoetFull Changelog: v0.45.0...v0.46.0
Add support for forwarding free arguments via $POE_EXTRA_ARGS by @timrid in https://github.com/nat-n/poethepoet/pull/380
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.44.0...v0.45.0
Full Changelog: v0.44.0...v0.45.0
Add support for recursive include #317 by @nat-n in https://github.com/nat-n/poethepoet/pull/372
include #317 by @nat-n in https://github.com/nat-n/poethepoet/pull/372include entries, those second-order includes were silently ignored. They are now followed recursively using depth-first loading. This may cause previously ignored config files to be loaded, potentially introducing new tasks or environment variables. To preserve the old behavior for a specific include, set recursive = false on that include entry. See the include guide for details.Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.43.0...v0.44.0
Add task groups for grouping tasks under a heading in help output by @brolewis in https://github.com/nat-n/poethepoet/pull/354
This release includes a refactor of how task variables are managed, improving boolean arg semantics and introducing private variables. These changes may affect a small number of existing configurations:
Boolean args now produce unset env vars when false. Previously false mapped to the string "False"; now the env var is removed entirely. This gives consistent falsy behavior across shells and parameter expansion operators (:-, :+). Tasks checking for the literal string "False" or using os.environ["flag"] will need updating.
Private env vars are filtered from subprocesses. Variables starting with _ and containing no uppercase characters (e.g. _secret) are now treated as private — available for config-time interpolation but excluded from the task subprocess environment. This is unlikely to affect existing configurations, but any task that relies on a subprocess reading a _lowercase env var will need to rename it.
Private arg option names strip leading underscores. An arg named _flag with no explicit options now generates --flag instead of --_flag. A new validation rejects duplicate CLI options across args.
See the migration guide for details and recommended fixes.
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.42.1...v0.43.0
Add exact option for uv executor by @charlesbmi in https://github.com/nat-n/poethepoet/pull/365
[!IMPORTANT] You must follow the instructions to (re)install the completion script for your preferred shell environment to benefit from the completion script fixes
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.42.0...v0.42.1
Important
You must follow the instructions to (re)install the completion script for your preferred shell environment to benefit from the completion script fixes
Full Changelog: v0.42.0...v0.42.1
Better zsh completion caaching with max hits per cache and proper TTL before refresh by @nat-n in https://github.com/nat-n/poethepoet/pull/360
[!IMPORTANT] You must follow the instructions to (re)install the completion script for your preferred shell environment to benefit from the enhancements for zsh or PowerShell
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.41.0...v0.42.0
Important
You must follow the instructions to (re)install the completion script for your preferred shell environment to benefit from the enhancements for zsh or PowerShell
Full Changelog: v0.41.0...v0.42.0
Full shell completions for global and task arguments in zsh and bash by @nat-n in https://github.com/nat-n/poethepoet/pull/355
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.40.0...v0.41.0
[!IMPORTANT] You must follow the instructions to (re)install the completion script for your preferred shell environment to benefit from the revamped tab completion covering task arguments.
Full Changelog: v0.40.0...v0.41.0
Important
You must follow the instructions to (re)install the completion script for your preferred shell environment to benefit from the revamped tab completion covering task arguments.
Allow optional envfiles without warnings by @cnaples79 in https://github.com/nat-n/poethepoet/pull/337
capture_output option in ref tasks by @kzrnm in https://github.com/nat-n/poethepoet/pull/343ignore_fail on execution task types and ref tasks by @nat-n in https://github.com/nat-n/poethepoet/pull/347Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.39.0...v0.40.0
Add support for uv executor options by @rochacbruno and @nat-n in https://github.com/nat-n/poethepoet/pull/327
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.38.0...v0.39.0
feat: Add parallel task type by @nat-n in https://github.com/nat-n/poethepoet/pull/323
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.37.0...v0.38.0
Adds new _parallel_ task type that runs subtasks in parallel and multiplexes subprocess outputs with a line prefix
Adds new parallel task type that runs subtasks in parallel and multiplexes subprocess outputs with a line prefix
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.37.0...v0.38.0-beta
Support configuring task level verbosity by @nat-n in https://github.com/nat-n/poethepoet/pull/304
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.36.0...v0.37.0
Improve handling of unmatched glob patterns in cmd tasks by @nat-n in https://github.com/nat-n/poethepoet/pull/315
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.35.1...v0.36.0
Fix issue with locating sh.exe when git is installed in a custom location by @per11235813 in https://github.com/nat-n/poethepoet/pull/311
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.35.0...v0.35.1
Support script tasks that run packages with a __main__ module by @nat-n in https://github.com/nat-n/poethepoet/pull/300
__main__ module by @nat-n in https://github.com/nat-n/poethepoet/pull/300Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.34.0...v0.35.0
Add task packages feature by @nat-n in https://github.com/nat-n/poethepoet/pull/286
This adds a major new capability in Poe the Poet by allowing tasks to be defined and distributed for reuse in python modules. 📖 Read the docs for more details
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.33.1...v0.34.0
Don't resolve symlinks to uv in UvExecutor by @sewi-cpan in https://github.com/nat-n/poethepoet/pull/283
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.33.0...v0.33.1
Implemented first version of UvExecutor by @AKuederle in https://github.com/nat-n/poethepoet/pull/271
python3 or sys.executable if python is not on the path by @nat-n in https://github.com/nat-n/poethepoet/pull/278Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.32.2...v0.33.0
Improve detection of poetry 2.0 projects via the build-system table by @nat-n in https://github.com/nat-n/poethepoet/pull/274
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.32.1...v0.32.2
feat: Upgrade poetry dependency to make the poetry plugin work with poetry 2.0 by @nat-n in https://github.com/nat-n/poethepoet/pull/269
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.32.0...v0.32.1
Make command parsing support *default value* and *alternate value* operations on param expansions by @nat-n in https://github.com/nat-n/poethepoet/pul
Make command parsing support default value and alternate value operations on param expansions by @nat-n in https://github.com/nat-n/poethepoet/pull/266
Explicitly disallow capture_stdout option on sequence tasks by @nat-n in https://github.com/nat-n/poethepoet/pull/265
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.31.1...v0.32.0
fix: Explicitly disallow capture_stdout option on sequence tasks by @nat-n in https://github.com/nat-n/poethepoet/pull/261
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.31.0...v0.31.1
Various improvements to config validation logic and error handling in general by @nat-n in https://github.com/nat-n/poethepoet/pull/251
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.30.0...v0.31.0
This will be the last release to support python 3.8.
This will be the last release to support python 3.8.
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.29.0...v0.30.0
Add support for poe_tasks.toml or yaml or json files by @nat-n in https://github.com/nat-n/poethepoet/pull/241 📖
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.28.0...v0.29.0
Document support for global tasks and improve completion scripts by @nat-n in https://github.com/nat-n/poethepoet/pull/235
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.27.0...v0.28.0
Add support for POE_GIT_DIR and POE_GIT_ROOT variables in config by @nat-n in https://github.com/nat-n/poethepoet/pull/229
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.26.1...v0.27.0
Fix faulty validation of subtask names in sequence tasks by @nat-n in https://github.com/nat-n/poethepoet/pull/219
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.26.0...v0.26.1
Major refactor of config classes and config include logic by @nat-n in https://github.com/nat-n/poethepoet/pull/214
cwd path configured on the include (if any) https://github.com/nat-n/poethepoet/issues/160Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.25.1...v0.26.0
Fixes Windows error message due to incorrect type comparison. by @BertrandBordage in https://github.com/nat-n/poethepoet/pull/205
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.25.0...v0.25.1
Make args work as expected on ref tasks by @nat-n in https://github.com/nat-n/poethepoet/pull/201
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.24.4...v0.25.0
Make switch task work as expected with uses option by @nat-n in https://github.com/nat-n/poethepoet/pull/186
uses option by @nat-n in https://github.com/nat-n/poethepoet/pull/186capture_stdout option by @nat-n in https://github.com/nat-n/poethepoet/pull/188Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.24.3...v0.24.4
Run tasks in project_root dir by default #180 by @nat-n in https://github.com/nat-n/poethepoet/pull/181
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.24.2...v0.24.3
Make subtasks of sequence inherit cwd option by default #160 (#51a6fd79)
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.24.1...v0.24.2
Show helpful error message when task executable is not on the path (#dfb8cabe)
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.24.0...v0.24.1
Use quotes to improve accuracy of logged commands #169 (#21c523eb)
This is a breaking change for some scenarios, for example parameter expansion no longer works inside single quotes.
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.22.1...v0.23.0
Fix typo by @m-roberts in https://github.com/nat-n/poethepoet/pull/164
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.22.0...v0.22.1
Support configuring tasks to run in the original working directory by @Spiffyk in https://github.com/nat-n/poethepoet/pull/161
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.21.1...v0.22.0
Fix broken links in README #157
Add program_name and config_name arguments to PoeThePoet to improve support for embedding within another tool https://github.com/nat-n/poethepoet/pull
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.20.0...v0.21.0
Launch new documentation website
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.19.0...v0.20.0
Display the default value of args in help #126
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.18.1...v0.19.0
Always attempt to resolve the full path of an executable using shutil.which before creating the subprocess (or execv) for a task #119
shutil.which before creating the subprocess (or execv) for a task #119Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.18.2-beta.1...v0.18.2-beta.2
Improve logic for finding the poetry executable #121
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.18.1...v0.18.2-beta.1
Fix error when running switch tasks or tasks with the 'uses' option in dry-run mode #115
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.18.0...v0.18.1
Add new expr task type for evaluating a single python expression as a task.
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.17.1...v0.18.0
Fix handling of Keyboardinterrupt when running a task on windows #42
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.17.0...v0.17.1
Support for interpolating env vars into task arg default values (#3c994684)
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.16.5...v0.17.0
Restore changes from v0.16.1 that were reverted in v0.16.2
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.16.4...v0.16.5
Fix bug to allow ref tasks to pass arguments again by @nat-n in https://github.com/nat-n/poethepoet/pull/97
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.16.3...v0.16.4
Return cleo application exit code from monkeymatch by @monim67 in https://github.com/nat-n/poethepoet/pull/92
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.16.2...v0.16.3
Revert all changes in v0.16.1 to address bug reported in #88
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.16.1...v0.16.2
When poetry virtualenv creation is disabled via an environment variable and no poetry virtualenv exists then don't try to execute tasks with poetry ru
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.16.0...v0.16.1
Add print_result option for script tasks
Add use_exec option to execute cmd or script tasks with exec instead of a subprocess on supported systems
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.14.0...v0.15.0
Add option to specify that a named argument should accept multiple values
Full Changelog: https://github.com/nat-n/poethepoet/compare/v0.13.1...v0.14.0
Your coding agent can read these notes before it upgrades. Set up the MCP server →