Stop typing. Start clicking.
npm test, git push, docker up — Turn your frequent commands into one-click buttons.
30 seconds to your first button.
Search "Quick Command Buttons" in VS Code Extensions → Install
Look at your status bar (bottom). Three buttons are ready:
Test→ runsnpm testTerminal→ opens new terminalGit→ git commands group
Click one. It just works.
- Click ⚙️ gear icon in sidebar
- Click "+ Add" button
- Name:
Build, Command:npm run build - Save → New button appears in status bar!
That's it. You're done.
Register commands as buttons. Click to run. That simple.
- ✅ No more repetitive typing
- ✅ No typos ever
- ✅ Complex commands? One button.
|
💡 Pro Tip Too many buttons cluttering your status bar? → Organize with 📦 Grouping Different projects need different buttons? → Try 🚀 Button Sets |
No JSON editing. Just drag, drop, and click.
- ✅ Add/delete buttons visually
- ✅ Reorder with drag & drop
- ✅ Pick colors with color picker
- ✅ Dark mode support (syncs with VS Code theme)
- ✅ Multi-language UI (English / Korean)
|
💡 Pro Tip Want personal buttons that stay out of Git? → Use 🔒 Local Scope Using Korean/Japanese keyboard? → Shortcuts work in 🌐 15 languages |
Three ways to access your commands. Pick your style.
| Method | Location | Best For |
|---|---|---|
| Status Bar | Bottom of editor | Quick access to favorites |
| Tree View | Left sidebar panel | Overview & organization |
| Command Palette | Ctrl+Shift+; |
Keyboard-first workflow |
- ✅ Click to run from any location
- ✅ Tree View shows full hierarchy
- ✅ All three stay in sync
📁 Grouping & Keyboard Shortcuts — click to expand
Keep your status bar clean. Group related commands together.
{
"name": "Git",
"group": [
{ "name": "Pull", "command": "git pull", "shortcut": "l" },
{ "name": "Push", "command": "git push", "shortcut": "p" },
{ "name": "Status", "command": "git status", "shortcut": "s" }
]
}Infinite nesting: Groups inside groups? Yes.
Access commands without mouse.
- Press
g→ Opens Git group - Press
p→ Runsgit push
Blazing fast.
See all commands at a glance in the sidebar. (see GIF above)
🔧 Personal vs Team Settings — click to expand
| Scope | Storage | Git Tracked | Use Case |
|---|---|---|---|
| 🔒 Local | Workspace State | ❌ | Personal buttons, experiments, DevContainer isolation |
| 👥 Workspace | .vscode/settings.json | ✅ | Team standards, project-specific commands |
| 🌐 Global | User Settings | ❌ | Personal commands across all projects |
Fallback: Local → Workspace → Global (when scope is empty)
Your buttons, your way. Not tracked by Git.
Perfect for:
- Personal workflow shortcuts
- Experimental commands
- DevContainer-specific buttons (isolated per container)
- Buttons you don't want to share
Save to .vscode/settings.json → Git tracks it → Team gets it automatically.
{
"quickCommandButtons.configurationTarget": "workspace",
"quickCommandButtons.buttons": [
{ "name": "Setup", "command": "npm install" },
{ "name": "Dev", "command": "npm run dev" }
]
}New team member onboarding:
- Clone repo
- Buttons appear automatically
- Click to set up environment!
Backup and share configurations as JSON files.
- Export: Save your config to file
- Import Preview: Review changes before applying
- Conflict Detection: Warns about shortcut conflicts
⚡ For Power Users — click to expand
The basics are already powerful! This section is for those who want to go deeper.
Switch your entire button configuration based on context.
Example:
- "Frontend" set: npm dev, build, test
- "Backend" set: docker, migrate, runserver
- "DevOps" set: kubectl, helm, terraform
{
"quickCommandButtons.buttonSets": [
{
"name": "Frontend",
"buttons": [{ "name": "Dev", "command": "npm run dev" }]
},
{
"name": "Backend",
"buttons": [{ "name": "API", "command": "python manage.py runserver" }]
}
]
}Switch: Command Palette → "Switch Button Set" → Select
Shortcuts work even when typing in Korean, Japanese, Chinese, etc.
Mappings:
- Korean:
ㅅ→t,ㅎ→g - Japanese:
あ→a(Romaji conversion) - Chinese: Pinyin conversion
15 Languages Supported: Korean, Japanese, Chinese, Russian, Arabic, Hebrew, Hindi, German, Spanish, Czech, Greek, Persian, Belarusian, Ukrainian, Kazakh
Run all commands in a group simultaneously.
{
"name": "Monitor",
"executeAll": true,
"group": [
{ "name": "CPU", "command": "htop" },
{ "name": "Logs", "command": "tail -f app.log" },
{ "name": "Network", "command": "nethogs" }
]
}Result: 3 terminals open, all commands running
Use cases: Monitoring dashboard, parallel builds, multi-server startup
Run VS Code commands, not just terminal commands.
{
"name": "Format",
"command": "editor.action.formatDocument",
"useVsCodeApi": true
}Use cases: Editor formatting, file operations, extension commands
| Feature | Quick Command Buttons | VS Code Tasks | Others |
|---|---|---|---|
| One-Click Access | ✅ Status bar + Tree + Palette | ❌ Palette only | |
| Visual Config | ✅ Drag & Drop UI | ❌ JSON only | |
| Infinite Nesting | ✅ Unlimited | ❌ None | |
| Button Sets | ✅ Context switching | ❌ None | ❌ None |
| Multi-Language | ✅ 15 languages | ❌ English only | ❌ None |
| Team Sharing | ✅ Workspace + Import/Export |
- Open VS Code
- Go to Extensions (
Ctrl+Shift+X) - Search "Quick Command Buttons"
- Click Install
- Use the default buttons or create your own!
| Command | Keybinding | Description |
|---|---|---|
Quick Commands: Show All |
Ctrl+Shift+; |
Unified command palette |
Quick Commands: Open Configuration UI |
- | Visual config editor |
Quick Commands: Switch Button Set |
- | Switch button set |
Quick Commands: Export Configuration |
- | Export to file |
Quick Commands: Import Configuration |
- | Import from file |
| Option | Type | Description |
|---|---|---|
name |
string | Button label (supports $(icon) syntax) |
command |
string | Command to execute |
useVsCodeApi |
boolean | Use VS Code API instead of terminal |
color |
string | Button color (hex, rgb, CSS names) |
shortcut |
string | Single character for quick access |
terminalName |
string | Custom terminal session name |
group |
array | Nested commands (unlimited depth) |
executeAll |
boolean | Run all group commands simultaneously |
- VS Code Icons —
$(icon-name)list - Built-in Commands — for
useVsCodeApi: true
This project started as a personal tool with a customized environment. For contributions, contact kubrickcode@gmail.com.
MIT License - see LICENSE
⭐ If this helps your workflow, please star the repo!
Made with ❤️ by KubrickCode
Less typing. More clicking.






