Task ManagerTask Manager is a VS Code extension for discovering, organising, running, and monitoring tasks from three sources:
Tasks from every source can be pinned into shared groups, reordered with drag-and-drop, given custom labels, and run in dedicated terminals. Requirements
Only the tools needed by the task you run have to be installed. Getting started
The extension activates automatically when the workspace contains a Task viewsPinned TasksPinned Tasks is the main working view. It combines Deno, package, and shell tasks into user-defined groups. Groups and custom labels are stored in workspace settings, so the same layout is restored the next time the workspace opens. Each group shows the number of configured tasks. Expand a group to see its resolved tasks and their current status. Deno TasksThis view discovers every Deno entries are executed through
Select a task to open its definition in the corresponding Deno config file. Deno task working directoriesDeno normally runs a task from the directory containing its config file. Some tasks instead use paths relative to the open workspace or the surrounding Git repository. By default, the extension selects the directory automatically. Ordinary tasks use the config directory. If a task command references To override the automatic choice, right-click a task in Deno Tasks and select Set Task Working Directory…:
Explicit choices are stored per task in workspace settings. The extension passes both the exact config file and selected working directory to Package ScriptsThis view discovers Select a script to open its definition in Shell ScriptsThis view discovers Select a shell task to open the script at its first line. Adding and removing pinned tasksContext menuRight-click a task in any source view and choose Add Task to Group → Choose Group…. The group picker shows every current pinned group. The source views support multiple selection. Select several tasks before opening the context menu to add all of them to the chosen group in one operation. A task already present in that group is not duplicated. Drag-and-dropYou can:
The automatic Ungrouped group is removed when its final task is removed. Remove TaskRight-click a pinned task and select Remove Task. With several pinned tasks selected, the command removes every selected task, including selections spanning different groups. Removing a task only unpins it. It does not edit or delete the underlying Deno config, package file, or shell script. Running and stopping tasksRun one taskUse the play button or Run Task context-menu action on a pinned task. Every task gets a dedicated terminal. Package and shell tasks use their task file's directory; Deno tasks use the automatically resolved or explicitly selected directory described above. The extension reuses that terminal for later runs of the same task. Terminal tabs use readable titles such as Selecting a pinned task focuses its existing terminal. It does not start a second copy. Stop one taskWhile a task is starting or running, use the stop button or Stop Task. Running commands receive Start or stop a groupUse Start All Tasks on a group to start all resolved tasks in that group. Use Stop All Tasks to stop every task in the group that is currently starting or running. Finished and failed terminals are left untouched. This is useful for groups containing several development servers, watchers, or related services. Task statusWhen VS Code terminal shell integration is available, pinned tasks display live state:
Stopping a task clears its active state. Closing a task terminal also clears the state when it was closed by the user. If shell integration is not detected, the extension offers to show setup instructions, run the task once without tracking, or always run without tracking. See the setting below. Managing groups and labelsUse the actions in the Pinned Tasks view to:
Refresh and configuration changesSaving a supported task file refreshes its source view and the Pinned Tasks view. The Refresh action can be used after creating, deleting, or externally modifying files. Changes to Git worktrees and multi-root workspacesTask identities use their source type, workspace-folder position, task-file path relative to the workspace root, and task name. They do not contain the absolute checkout path. As a result, pins created in workspace settings continue to resolve when the same repository is opened from a Git worktree with a different directory name. Older Deno pins used a directory-based key. The extension continues to resolve those legacy keys when the matching task is unambiguous. In a multi-root workspace, each workspace folder is searched independently and tasks run from the directory containing their own definition. Extension settings
|