Skip to content
| Marketplace
Sign in
Visual Studio Code>Visualization>command-buttons-lvgNew to Visual Studio Code? Get it now.
command-buttons-lvg

command-buttons-lvg

lennert-vangeert

|
13 installs
| (0) | Free
An extension to add customizable command buttons to the VSCode status bar.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Command Buttons

Add beautiful, customizable buttons to your VS Code status bar that run your most-used commands with a single click.

Quick Start

Create a .command-buttons.json file at the root of your workspace:

{
  "buttons": [
    {
      "icon": "rocket",
      "color": "#00ffcc",
      "text": "Dev",
      "command": "npm run dev"
    }
  ]
}

That's it! Your button will appear in the status bar, ready to launch your dev server.

Demo

Configuration

Required Fields

Field Description Example
icon Icon to display "rocket"
color Any valid CSS color "#00ffcc", "green", "rgb(255,0,0)"
command Command to execute "npm run dev"

💡 Find available icons at VS Code Codicons

Optional Fields

Field Description Example
text Text label next to icon (omit for icon-only buttons) "Dev"
directory Working directory for command (relative to workspace root) "web"
terminalName Terminal name for grouping commands (buttons with same name share a terminal) "Web Server"

Examples

Basic Setup

Perfect for single-package projects:

{
  "buttons": [
    {
      "icon": "rocket",
      "color": "#00ffcc",
      "text": "Dev",
      "command": "npm run dev"
    },
    {
      "icon": "package",
      "color": "rgba(255, 153, 0, 1)",
      "text": "Build",
      "command": "npm run build"
    },
    {
      "icon": "beaker",
      "color": "#00ff00",
      "text": "Test",
      "command": "npm test"
    }
  ]
}

Grouped Terminals

Run related commands in the same terminal using terminalName:

{
  "buttons": [
    {
      "icon": "rocket",
      "color": "#00ffcc",
      "text": "Dev",
      "command": "npm run dev",
      "terminalName": "Dev Server"
    },
    {
      "icon": "refresh",
      "color": "#00ffcc",
      "text": "Restart",
      "command": "npm run dev",
      "terminalName": "Dev Server"
    },
    {
      "icon": "beaker",
      "color": "#ff6b6b",
      "text": "Test",
      "command": "npm test",
      "terminalName": "Tests"
    },
    {
      "icon": "eye",
      "color": "#ff6b6b",
      "text": "Watch",
      "command": "npm run test:watch",
      "terminalName": "Tests"
    }
  ]
}

Dev and Restart share the "Dev Server" terminal, while Test and Watch share the "Tests" terminal.

Monorepo Configuration

Target specific packages in your monorepo:

{
  "buttons": [
    {
      "icon": "globe",
      "color": "#61DAFB",
      "text": "Web",
      "directory": "packages/web",
      "command": "npm run dev"
    },
    {
      "icon": "server",
      "color": "#68A063",
      "text": "API",
      "directory": "packages/api",
      "command": "npm run dev"
    },
    {
      "icon": "database",
      "color": "#336791",
      "text": "DB",
      "directory": "packages/database",
      "command": "npm run migrate"
    }
  ]
}

Icon-Only Buttons

Save space in your status bar:

{
  "buttons": [
    {
      "icon": "play",
      "color": "#4CAF50",
      "command": "npm start"
    },
    {
      "icon": "debug-stop",
      "color": "#f44336",
      "command": "npm run stop"
    },
    {
      "icon": "refresh",
      "color": "#2196F3",
      "command": "npm run restart"
    }
  ]
}

Python Projects

{
  "buttons": [
    {
      "icon": "play",
      "color": "#3776AB",
      "text": "Run",
      "command": "python main.py"
    },
    {
      "icon": "package",
      "color": "#FFD43B",
      "text": "Install",
      "command": "pip install -r requirements.txt"
    },
    {
      "icon": "beaker",
      "color": "#0A9396",
      "text": "Test",
      "command": "pytest"
    },
    {
      "icon": "check",
      "color": "#94D2BD",
      "text": "Lint",
      "command": "flake8 . && black --check ."
    }
  ]
}

Docker Workflows

{
  "buttons": [
    {
      "icon": "vm",
      "color": "#2496ED",
      "text": "Docker Up",
      "command": "docker-compose up -d"
    },
    {
      "icon": "debug-stop",
      "color": "#DC382D",
      "text": "Docker Down",
      "command": "docker-compose down"
    },
    {
      "icon": "refresh",
      "color": "#FFA500",
      "text": "Rebuild",
      "command": "docker-compose up -d --build"
    }
  ]
}

Git Shortcuts

{
  "buttons": [
    {
      "icon": "git-pull-request",
      "color": "#F05032",
      "command": "git pull"
    },
    {
      "icon": "cloud-upload",
      "color": "#28A745",
      "command": "git push"
    },
    {
      "icon": "git-branch",
      "color": "#6E5494",
      "command": "git status"
    }
  ]
}

Database Operations

{
  "buttons": [
    {
      "icon": "database",
      "color": "#4479A1",
      "text": "Migrate",
      "command": "npx prisma migrate dev"
    },
    {
      "icon": "symbol-field",
      "color": "#00758F",
      "text": "Seed",
      "command": "npx prisma db seed"
    },
    {
      "icon": "console",
      "color": "#E38C00",
      "text": "Studio",
      "command": "npx prisma studio"
    }
  ]
}

Shell Scripts & Build Tools

{
  "buttons": [
    {
      "icon": "terminal",
      "color": "#89B4FA",
      "text": "Setup",
      "command": "bash scripts/setup.sh"
    },
    {
      "icon": "wand",
      "color": "#B4BEFE",
      "text": "Generate",
      "command": "./scripts/codegen.sh"
    },
    {
      "icon": "tools",
      "color": "#F5C2E7",
      "text": "Make",
      "command": "make build"
    },
    {
      "icon": "symbol-namespace",
      "color": "#CBA6F7",
      "text": "Gradle",
      "command": "./gradlew build"
    }
  ]
}

File Operations & Utilities

{
  "buttons": [
    {
      "icon": "trash",
      "color": "#EE5A6F",
      "text": "Clean",
      "command": "rm -rf dist/ && rm -rf node_modules/.cache"
    },
    {
      "icon": "folder-opened",
      "color": "#F9E2AF",
      "text": "Open Logs",
      "command": "code logs/"
    },
    {
      "icon": "file-zip",
      "color": "#FAB387",
      "text": "Archive",
      "command": "tar -czf backup-$(date +%Y%m%d).tar.gz src/"
    }
  ]
}

Features

  • Live Reload - Buttons automatically update when you edit the config file
  • Terminal Integration - Commands run in VS Code's integrated terminal or Ghostty
  • Ghostty Support - Execute commands in the Ghostty terminal emulator (macOS)
  • Terminal Grouping - Group related commands into separate terminals using terminalName
  • Flexible Styling - Use any color format (hex, rgb, named colors)
  • Workspace Specific - Different button configurations per project

Extension Settings

This extension contributes the following settings:

Terminal Settings

Setting Type Default Description
commandButtons.defaultTerminalName string "Command Buttons Terminal" The name of the terminal used for executing commands
commandButtons.terminalType string "vscode" The terminal to use for executing commands. Options: "vscode" (integrated terminal) or "ghostty" (Ghostty terminal emulator)
commandButtons.reuseTerminal boolean true Whether to reuse the same terminal for all commands or create a new one each time (only applies to VS Code integrated terminal)
commandButtons.focusTerminalOnRun boolean true Whether to automatically focus the terminal when a command is executed (only applies to VS Code integrated terminal)

Note: When using Ghostty, the following settings are not supported due to macOS limitations: reuseTerminal, focusTerminalOnRun, showCommandRunningIndicator, and the terminalName config field. Each command opens a new Ghostty window.

Notification Settings

Setting Type Default Description
commandButtons.showReloadNotification boolean true Show a notification when the config file is reloaded
commandButtons.showErrorNotifications boolean true Show notifications for validation errors and other issues

UI Settings

Setting Type Default Description
commandButtons.statusBarAlignment string "left" Position of buttons in the status bar. Options: "left" or "right"
commandButtons.showButtonTooltips boolean true Show tooltips (command text) when hovering over buttons
commandButtons.iconOnlyMode boolean false Force all buttons to show only icons, hiding text labels
commandButtons.showCommandRunningIndicator boolean true Show animated spinner icon on buttons while their command is running

Configuration File Settings

Setting Type Default Description
commandButtons.configFileName string ".command-buttons.json" Name of the configuration file in the workspace root
commandButtons.watchConfigFile boolean true Automatically reload buttons when the config file changes

Happy coding! 🎉

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft