Task Runner for Poe the Poet
Run your Poe the Poet (poethepoet) tasks from VS Code. The tasks you define in
pyproject.toml under [tool.poe.tasks] show up in Terminal → Run Task..., in a Poe Tasks view in the
Explorer side bar, and as a ▶ Run button above each task in the file itself.
Why this extension
Generic task-explorer extensions list tasks from the tools they know (npm scripts, Make, Gradle and so on), but they
do not read Poe's [tool.poe.tasks] table, so Python projects that use Poe get nothing there. This extension reads
Poe's own configuration and runs tasks with your own poe, the same way you would in a terminal.
It does not install or bundle Poe the Poet. Install it the way you normally do (for example
pip install poethepoet, uv tool install poethepoet, pipx install poethepoet, or as a dev dependency with uv or
Poetry) and point the extension at it with the poeTasks.command setting if poe is not on your PATH.
Features
Run Task integration. Every task becomes a VS Code task of type poe, with its help text as the detail.
You can reference tasks from .vscode/tasks.json, for example to add a keyboard shortcut or a dependsOn chain:
{
"version": "2.0.0",
"tasks": [
{ "type": "poe", "task": "test", "args": ["-k", "slow"], "label": "slow tests" },
{ "type": "poe", "task": "build", "file": "packages/core/pyproject.toml" }
]
}
task is required. args are added after the task name. file selects the project (relative to the workspace
folder); without it the project at the folder root is used.
Poe Tasks view in the Explorer: one entry per project, each with its tasks. The description shows the task's
help; the tooltip shows the task type (cmd, script, shell, sequence, expr, ref, switch), what it runs, its
arguments and deps. Click a task to jump to its definition. Use the ▶ button to run it, or the context menu for
Run Task with Arguments....
▶ Run CodeLens above each task in pyproject.toml, in poe_tasks.toml / .yaml / .json, and in files that
your config pulls in with [tool.poe] include = ....
All the ways of writing tasks: plain strings, arrays (sequences), inline tables (lint = { cmd = "...", help = "..." }), dotted keys (test.cmd = "pytest"), quoted names, and [tool.poe.tasks.name] sub-tables.
[tool.poe] default_task_type is respected when showing string tasks.
Private tasks are hidden. Poe treats tasks whose names start with _ as private (usable only from other
tasks), so they are not offered for running.
Monorepos. Every folder with a pyproject.toml that has Poe settings (or a poe_tasks.* file) is a project.
A pyproject.toml without [tool.poe] is ignored, and so are virtual environments and node_modules. Tasks are
started in the project's folder, exactly as when you run poe there.
The list updates when you edit or add config files.
Settings
| Setting |
Default |
What it does |
poeTasks.command |
["poe"] |
Command that starts Poe. Examples: ["uv", "run", "poe"], ["poetry", "run", "poe"], [".venv/bin/poe"]. ${workspaceFolder} is replaced, and a relative program path containing / is resolved from the workspace folder. |
poeTasks.codeLens |
true |
Show the ▶ Run buttons in config files. |
poeTasks.exclude |
.venv, venv, node_modules, .tox, .nox, site-packages, .git |
Folders that are not searched for projects. |
Command palette: Poe: Run Task (pick from all Poe tasks) and Poe: Refresh.
Known limitations
- The extension shows what your config files say; it does not run
poe to list tasks. Very dynamic setups, such as
include_script or glob patterns in include, are not shown.
- Tasks run in a shell terminal through VS Code's task system. Poe itself decides the environment (its
executor
setting, env, envfile, cwd).
- Only local folders are supported (not virtual workspaces), and the extension is disabled in untrusted workspaces
because it runs project tasks.
Privacy
The extension reads your config files locally and starts poe only when you run a task. It sends nothing over
the network.
Feedback
Problems and ideas are welcome on the Marketplace page (Q & A / rating). This is an independent extension: it is not
an official Poe the Poet product and is not affiliated with or endorsed by its authors. It was built with AI
assistance by Honestrel and is checked by automated tests in a real VS Code.
| |