Add your own buttons to the status bar: run commands, shell commands, tasks or links, per project and only for the files they apply to.
Maintained. No sign-in. No telemetry. Works in VS Code, Cursor, Windsurf, VSCodium and other editors that use Open VSX.
Features


- One-click actions in the status bar. Start the dev server, run the tests for the current file, deploy, open your team's dashboard: whatever you do many times a day.
- Four kinds of action:
terminal: a shell command, sent to a terminal that's reused between presses
task: any task from tasks.json or a task provider
command: any VS Code or extension command, with arguments
url: a link
- Only when it makes sense. Show a button only for certain languages (
"language": "python") or files ("file": "**/*.test.ts").
- Variables in commands and arguments:
${file}, ${relativeFile}, ${fileBasename}, ${fileDirname}, ${lineNumber}, ${selectedText}, ${workspaceFolder}.
- Share them with your team by putting them in workspace settings (
.vscode/settings.json).
- Add a Button… builds one for you, picking from your tasks and commands.
- Works in the browser on vscode.dev and github.dev. Command and link buttons work everywhere; terminal buttons need the desktop app (or a Codespace), since the browser has no shell.
Example
"nifty.buttons.items": [
{ "text": "$(play) Dev", "terminal": "npm run dev" },
{ "text": "$(beaker) Test file", "terminal": "npx vitest run ${relativeFile}", "file": "**/*.test.ts" },
{ "text": "$(tools) Build", "task": "build" },
{ "text": "$(sparkle) Format", "command": "editor.action.formatDocument", "language": ["typescript", "css"] },
{ "text": "$(link-external) Grafana", "url": "https://grafana.example.com", "alignment": "right" }
]
Commands
| Command |
What it does |
Nifty Buttons: Press a Button… |
Run any button from the Command Palette |
Nifty Buttons: Add a Button… |
Create a button step by step |
Settings
| Setting |
Default |
What it does |
nifty.buttons.items |
[] |
Your buttons: text plus one of command, terminal, task or url; optional tooltip, args, color, alignment, priority, language, file, terminalName, cwd, newTerminal |
Install
- VS Code: search for "Nifty Buttons" in the Extensions view, or install from the Visual Studio Marketplace.
- Cursor, Windsurf, VSCodium, Kiro, Antigravity: install from Open VSX.
Privacy
This extension collects no telemetry and needs no account.
- Nifty Code Runner: Run Code in 25+ Languages: Run the current file or selection in 25+ languages in the terminal, with input support, your own commands and no telemetry. (Open VSX)
- Nifty Run: npm Scripts, Make & Task Runner: Everything you can run in one view: npm, pnpm and yarn scripts, make and just targets, Python and Go entry points, .NET, Cargo and Docker Compose. Run, debug or save to tasks.json. (Open VSX)
- Nifty Auto Hide: Hide Side Bar & Panel: Hide the side bar and panel when you click into the editor, for more room to code. Pin them open when you need them. (Open VSX)
- Nifty Env: .env Files, Profiles & Secrets: Load .env files into terminals, tasks and debug sessions, switch between .env profiles, hide secret values on screen, and check .env against .env.example. (Open VSX)
- Nifty Monitor: CPU & Memory in the Status Bar: CPU, memory and disk usage in the status bar, including on remote SSH machines and dev containers. (Open VSX)
- Nifty Shortcut Trainer: Learn Keyboard Shortcuts: Learn VS Code keyboard shortcuts while you work: spots slow habits like arrow-key walking or copy-paste duplicating and suggests the shortcut, plus a cheat sheet. (Open VSX)
See all 100+ Nifty extensions and web tools at https://getnifty.dev
| |