Commands ExtensionOne-click command runner for VS Code. Define commands in JSON or let the extension pick up your
Quick Start
FeaturesSidebar & PanelAccess your commands from the Activity Bar sidebar or open a dedicated panel via Search & FilterFilter commands instantly by typing in the search bar. Matches command names, command text, and group names. Groups auto-expand during search and restore their collapsed state when cleared. Context MenuRight-click any command to access:
Run ConfirmationEnable confirmation for critical commands via the context menu. Protected commands show a lock icon indicator and require a modal confirmation dialog before running. Collapsible GroupsOrganize commands into named groups. Collapse/expand individual groups or all at once. Group state is preserved across sessions. Command count badge appears on hover. FavoritesStar any command to pin it to the Favorites group at the top. Use the star button or right-click > "Add to favorites". Favorites persist across sessions. Multiple Shell Types
Add Commands from UIClick + in the toolbar to add new commands without touching JSON. Pick an existing group or create a new one on the fly. Terminal Management
Auto-Detection
Server UploadsDefine per-project FTP / FTPS / SFTP upload targets in
|
| Field | Type | Required | Description |
|---|---|---|---|
name |
string | yes | Reference name used by uploads |
protocol |
"ftp" | "ftps" | "sftp" |
yes | Connection protocol |
host |
string | yes | Server hostname or IP |
port |
number | no | Defaults: 21 (FTP/FTPS), 22 (SFTP) |
user |
string | yes | Username |
password |
string | no | Password. If omitted, you'll be prompted at upload time (not saved) |
uploads entry
| Field | Type | Required | Description |
|---|---|---|---|
name |
string | yes | Display name in the UI |
group |
string | no | Group name (default: "Uploads") |
server |
string | conditional | Reference to a servers entry. Required unless inline host/user/protocol are set |
protocol / host / port / user / password |
— | conditional | Inline server fields (override or replace server) |
remoteDir |
string | yes | Remote directory (absolute path) |
items |
string[] | yes | Files, folders, or globs (relative to workspace root) |
exclude |
string[] | no | Glob patterns to skip during folder/glob expansion |
onExists |
"overwrite" | "skip" |
no | Behavior on file collision (default: "overwrite") |
Right-click an upload for context menu actions: edit config, add files.
Passwords are stored in plain text inside
server-uploads.local.json. The default filename is.local.jsonso most gitignore presets exclude it. If you use a different filename, add it to.gitignoreyourself.
Proxy / VPN note: uploads use raw TCP sockets; HTTP proxy settings (system or VS Code) are not applied. System-level VPN tunnels are honored transparently by the OS — bypassing them requires VPN-level split tunneling.
Marketplace Templates
The built-in Recommended section offers ready-made command sets:
| Template | Description |
|---|---|
| React | Dev server, build, test, lint, format |
| Node.js Backend | Start, dev, build, test, DB migrate |
| Next.js | Dev, build, start, lint |
| Docker | Build, compose up/down, logs |
| Expo | Start, iOS/Android, EAS build/submit |
| Python | Run, pytest, pip install/freeze |
| Git | Status, pull, push, stash, log |
| Turborepo | Monorepo build, dev, lint, test |
| Deploy | Vercel & Netlify deploy commands |
| Testing | Test, watch, coverage |
| Linting | Lint, format, typecheck |
| Git Hooks | Prepare, pre-commit, pre-push |
Click + on a template to add the whole set, or expand it and add individual commands.
Theme-Aware
Uses VS Code CSS variables — looks native in any theme (light, dark, high contrast).
commands-list.json Format
{
"commands": [
{
"name": "Build Project",
"command": "npm run build",
"type": "terminal",
"group": "Build"
},
{
"name": "Start Server",
"command": "server.js",
"type": "node",
"group": "Dev"
},
{
"name": "Deploy",
"command": "./scripts/deploy.ps1",
"type": "pwsh",
"group": "Deploy"
}
]
}
Fields
| Field | Type | Required | Description |
|---|---|---|---|
name |
string | yes | Display name in the UI |
command |
string | yes | Command to execute |
type |
"terminal" | "node" | "pwsh" |
yes | Execution type |
group |
string | no | Group name (default: "General") |
cwd |
string | no | Working directory relative to workspace root |
package.json Scripts
Scripts from your package.json are auto-imported under the npm scripts group:
{
"scripts": {
"build": "tsc -p ./",
"test": "jest",
"start": "node server.js"
}
}
These appear as npm run build, npm run test, npm run start.
Configuration
| Setting | Default | Description |
|---|---|---|
commandsExtension.configFile |
commands-list.json |
Path to commands config file (relative to workspace root) |
commandsExtension.uploadsFile |
server-uploads.local.json |
Path to server uploads config file (relative to workspace root) |
Changelog
See CHANGELOG.md for a full list of changes per version.
Requirements
- VS Code 1.85.0+
License
MIT