Taskbench
VS Code extension, July 2026. Code on GitHub.
Taskbench turns the Explorer sidebar in VS Code into a command workbench. You save a shell command once, and after that it's one click to run, with live status you can stop mid-run. Dev servers and watchers that never exit on their own work too. Everything lives in a plain JSON file in the project, so your whole team's tasks ride along in version control.
What makes it work
Taskbench doesn't run processes itself. It hands every command to VS Code's own task system. Each task becomes a shell execution with its working directory and runs in its own terminal panel, so the output shows up where you'd expect it. The extension listens for the editor's task start and end events and only reacts to executions it started itself, which is how the sidebar knows what's running without polling anything.
While a task is running its dot pulses green and the play button turns into a stop button. Stopping finds the live execution by its label and terminates it. When a task finishes, the row shows how long ago it last ran. Those times are kept in VS Code's workspace storage, not in the task file.
The sidebar itself is a webview view. A file watcher on the task file refreshes it whenever the file changes, so editing tasks by hand and saving shows up right away.
Using it
Open the Taskbench view in the Explorer sidebar and click + (or run Taskbench: New Task from the Command Palette). Give the task a label and a command. The working directory and the "Background task" checkbox are optional. To run a task, press its play button or double-click the row. Double-clicking a running task stops it.
Check "Background task" for commands that don't exit on their own, like dev servers and watchers. That sets isBackground on the task and puts a bg tag on the row. The filter box at the top matches against both the label and the command, which helps once the list gets long. Deleting a task asks you to confirm first.
There are three commands, New Task, Refresh and Open task.json, and all three are also buttons in the view's title bar.
The task file
Tasks are saved in .tasks/task.json at the root of the first workspace folder. The format copies VS Code's tasks.json, but it's a separate file, so these tasks don't show up in VS Code's Run Task menu. Taskbench reads label, command, options.cwd, isBackground and the reveal, panel and clear settings under presentation. Every task runs as a shell command whatever type says, and ${workspaceFolder} is the only variable that gets filled in inside cwd.
The form won't let you reuse a label, because the label is how the view tells tasks apart.
Stack
Plain JavaScript against the VS Code extension API, with no npm dependencies. It needs VS Code 1.75 or newer. To run it from source you open the folder in VS Code and press F5, which opens a second window with Taskbench loaded. The current version is 0.2.0, which added a new icon on top of the 0.1.0 release, and it's MIT licensed.
See the code on GitHub, or go back to mahfujmustafa.dev and the rest of my projects.