Nifty Workspace Keybindings
Keybindings per project: put them in .vscode/keybindings.json and they work only in that workspace, shared with your team through Git. Something VS Code doesn't do on its own.
Maintained. No sign-in. No telemetry. Works in VS Code, Cursor, Windsurf, VSCodium and other editors that use Open VSX.
Features



VS Code has workspace settings, tasks and launch configurations, but no workspace keybindings: every shortcut applies everywhere. This extension adds them.
- Put keybindings in
.vscode/keybindings.json, in the same format as your own keybindings.json, with when clauses and args. You get completion and validation for command names too. Commit the file and your whole team gets the shortcuts.
- They only work in that workspace. The extension copies them into your user
keybindings.json, each limited by a condition that is only true while this workspace is open (nifty.wk.1a2b3c4d && …). Other projects never see them, and your own keybindings are never touched.
- Edits apply straight away. Change
.vscode/keybindings.json and the copies update.
- Safe by default. The first time a workspace has keybindings you're asked before they're used. They're never applied in untrusted workspaces, and Stop Using This Workspace's Keybindings removes them again.
- Tidy. The status bar shows how many are active. Remove Keybindings of Other Workspaces cleans out the copies from projects you no longer open.
// .vscode/keybindings.json
[
{ "key": "f5", "command": "workbench.action.tasks.runTask", "args": "dev", "when": "!inDebugMode" },
{ "key": "ctrl+alt+t", "command": "workbench.action.tasks.test" }
]
Removing a default shortcut ("-command") can't be limited to one workspace, because of how VS Code matches removals. Bind the key to another command instead, which overrides the default in that workspace.
Commands
| Command |
What it does |
Nifty Workspace Keybindings: Open Workspace Keybindings (JSON) |
Open or create .vscode/keybindings.json |
Nifty Workspace Keybindings: Use This Workspace's Keybindings |
Turn them on (again) |
Nifty Workspace Keybindings: Stop Using This Workspace's Keybindings |
Remove this workspace's copies |
Nifty Workspace Keybindings: Remove Keybindings of Other Workspaces |
Clean up copies from other projects |
Settings
| Setting |
Default |
What it does |
nifty.workspace-keybindings.confirm |
true |
Ask before using a workspace's keybindings the first time |
nifty.workspace-keybindings.statusBar |
true |
Show the number of active workspace keybindings |
nifty.workspace-keybindings.terminal |
true |
Make the bindings work in the terminal too (adds their commands to terminal.integrated.commandsToSkipShell) |
nifty.workspace-keybindings.userKeybindingsFile |
default profile |
Your keybindings.json, if you use another profile |
Install
- VS Code: search for "Nifty Workspace Keybindings" 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 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)
- Nifty Macros: Record & Replay Keystrokes: Record typing and cursor moves and replay them any number of times, or define named macros that chain commands, text and snippets, each bindable to a key. (Open VSX)
- Nifty Settings Sync: Sync via GitHub Gist: Sync settings, keybindings, snippets and extensions between VSCodium, Cursor, Windsurf and VS Code through a private GitHub Gist, with a diff before anything is overwritten. (Open VSX)
- Nifty Team Settings: Shared Settings for Teams: Share VS Code settings with your team: a committed base file, per-OS blocks, personal overrides that stay out of git, and a required-extensions check. (Open VSX)
- Nifty .NET Explorer: Solution & Test Explorer: A solution explorer and test explorer for .NET in VS Code, Cursor, Windsurf and VSCodium: projects, references and files from .sln/.slnx, and xUnit, NUnit and MSTest tests in the Testing view. (Open VSX)
- Nifty Agent Config: AGENTS.md, Rules & MCP Files: See which AGENTS.md, CLAUDE.md, Cursor, Copilot, Windsurf and Gemini rules apply to the file you are editing. Lint rule and MCP files for hidden text, secrets and broken links, and keep them in sync. (Open VSX)
See all 100+ Nifty extensions and web tools at https://getnifty.dev
| |