Run tasks from tasks.json and package.json directly in the Explorer view without waking up every task-provider extension in VS Code.
Highlights
Executes cached vscode.Task objects directly instead of routing through workbench.action.tasks.runTask.
Shows both vscode tasks and npm scripts, including multi-root workspaces and first-level physical subfolders under the primary workspace.
Always keeps vscode and npm source groups for both the main workspace and nested folders, even when only one source exists.
Adds a Running group at the top whenever any task is active.
Clicking an idle task previews the matching definition line in tasks.json or package.json.
Clicking a running task reveals its terminal and also previews the corresponding configuration line.
Running tasks keep the default spinning indicator, while the Running group uses the extension logo.
Hide, favorite, pin, shortcut, terminal focus, auto-run, and display-name rename preferences are stored in the owning folder's .vscode/settings.json; runTasks.* values in .code-workspace are ignored in multi-root workspaces, and folder-level preference keys are stable across open modes, for example vscode:root:<label>.
Task loading writes the .code-workspace file, each workspace folder, and every candidate tasks.json / package.json path plus loaded counts to the RunTasks output channel, making multi-root scan issues visible.
Checked menu states are shown with text markers such as ✓ Favorite and ✓ Focus Terminal on Run.
Task execution reveals and focuses the terminal by default, and the context menu shows ✓ Focus Terminal on Run unless the task is explicitly hidden; runTasks.hiddenTerminalTasks stores per-task exceptions, while runTasks.revealTerminalTasks remains as a legacy compatibility setting and can store hidden:<preferenceKey> fallback entries in older extension hosts.
runTasks.autoRunTasks starts selected tasks after VS Code launches; once a task stays up, unexpected exits trigger an immediate restart until the user stops it manually.
runTasks.renamedTaskLabels only affects the name shown by RunTasks; the original task label still drives execution and matching, and leaving the rename input empty restores the default name.
Icons prefer icon.id / icon.color from tasks.json; automatic inference first matches the command name after stripping executable extensions, then falls back to the first relevant extension found in the command or arguments. npm scripts infer from their real script commands and follow same-package npm run <script> references. The task list uses custom SVG assets, and pinned status bar items use contributed runtasks-* icons generated from the same icon set.