Launch Control
A configurable panel of buttons in VS Code. Each button runs a shell command — e.g.
"go to frontend/, run npm run dev" — via VS Code's Tasks API, in its own task
terminal, with a spinner and stop action while it's running.
Run Launch Control: Create Starter Config from the Command Palette to get started,
or click the "+" icon in the view's title bar to add your first button through a
wizard — no JSON required.
Screenshots
Tree view:

Webview renderer:

Configuration
Buttons are defined in .vscode/launch-control.json:
{
"buttons": [
{
"label": "Start Dev Server",
"command": "npm run dev",
"cwd": "${workspaceFolder}/frontend",
"icon": "rocket",
"tooltip": "Runs the frontend dev server"
},
{
"label": "Stop",
"command": "docker compose down",
"icon": "stop-circle",
"confirm": "This stops all local containers. Continue?"
}
],
"groups": {
"quality": {
"label": "Quality",
"icon": "beaker",
"buttons": [{ "label": "Run Tests", "command": "npm test" }]
}
}
}
A top-level buttons array holds ungrouped buttons; each entry under groups holds
its own labeled section of buttons.
| Field |
Required |
Description |
label |
yes |
Text shown on the button; also its unique identity. |
command |
usually |
A shell command, or an array of commands run one at a time in sequence. May reference ${workspaceFolder}. |
cwd |
no |
Working directory. Defaults to ${workspaceFolder}. |
env |
no |
Environment variables to set for this button's command. |
icon |
no |
A codicon id, e.g. "rocket". Defaults to "play". |
tooltip |
no |
Hover text. |
confirm |
no |
Confirmation prompt before running — true for a generic message, or a custom string. |
shell |
no |
Shell executable to run this button's command with, e.g. "pwsh" or "bash". Overrides launchControl.defaultShell. |
tree |
no |
Tree renderer style override — { "iconColor": "<theme color id>" }. |
webview |
no |
Webview renderer style override — { "baseColor": "#hex", "sx": { ... } }. |
remove |
no |
true to drop a same-labeled button inherited from launchControl.defaultButtons. |
Group fields
| Field |
Required |
Description |
label |
yes |
The group's displayed name. |
icon |
no |
A codicon id for the group's header. |
webview |
no |
Default webview.baseColor/sx for buttons in this group, unless a button overrides it. |
buttons |
yes |
The group's buttons, same fields as above. |
Settings
| Setting |
Description |
launchControl.placement |
"sidebar" (default, Activity Bar) or "panel". |
launchControl.renderer |
"tree" (default) or "webview" for the custom React-based renderer. |
launchControl.defaultShell |
Shell used for buttons that don't set their own shell. |
launchControl.defaultButtons / launchControl.defaultGroups |
Global fallback buttons/groups, deep-merged by label/key into every workspace folder's own config. |
launchControl.webview.baseColor |
Default seed color the webview renderer derives button/group colors from. |
Settings also show their full descriptions in VS Code's Settings UI (search
"Launch Control").
Installing
Install Launch Control from the
VS Code Marketplace
or Open VSX, or search
for "Launch Control" in VS Code's Extensions view.
License
Copyright (c) 2026 Artsiom Patotski. This extension is proprietary, closed-source
software — see the "License" link on this extension's Marketplace/Open VSX page (or
LICENSE.md, bundled with the installed extension) for the exact terms of use,
including third-party components bundled into the extension.