Define and run custom commands in VS Code using simple XML configuration — no coding required.
Features
No-code command creation — Define commands in a single commands.xml file without writing any extension or TypeScript code.
Multiple placement surfaces — Commands can appear in the status bar, Activity Bar, Explorer panel, editor title bar, editor context menu, Source Control panel, and more.
Nested menus and submenus — Group related commands into collapsible QuickPick menus and nested submenus for a clean, organised workspace.
Flexible actions — Run shell commands, launch external applications, show message boxes, or chain multiple actions in sequence per command.
IntelliSense via XSD schema — The bundled commands.xsd file gives you autocomplete and validation when editing commands.xml in VS Code.
How it works
You describe your commands in a commands.xml file at the root of your workspace. The extension reads that file automatically on startup (and whenever you run Dynamic Commands: Refresh) and registers each command in the appropriate VS Code surface — status bar buttons, tree views, context menus, and more.
Getting started
Install the extension from the Marketplace.
Open a workspace folder and run Dynamic Commands: Create commands.xml from the Command Palette (Ctrl+Shift+P).
Edit the generated commands.xml (IntelliSense is available automatically).
Run Dynamic Commands: Refresh to reload your commands.
Invoke commands via the status bar buttons, the Explorer panel, or Dynamic Commands: Show Command Picker.
Example
<?xml version="1.0" encoding="utf-8"?>
<XmlCommands xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="commands.xsd"
target="statusbar">
<!-- Single status bar button -->
<XmlCommand buttonTitle="Say Hello" icon="comment" alignment="left" priority="1000">
<MessageBoxCommand text="Hello from Dynamic Commands!" caption="Dynamic Commands" buttons="OK" />
</XmlCommand>
<!-- Status bar menu with nested build commands -->
<XmlMenuItem buttonTitle="Build" icon="tools" alignment="left" priority="999">
<XmlCommand buttonTitle="Build Solution">
<RunApplicationCommand path="dotnet" arguments="build" />
</XmlCommand>
<XmlCommand buttonTitle="Run Tests">
<RunApplicationCommand path="dotnet" arguments="test" />
</XmlCommand>
<XmlCommand buttonTitle="Publish">
<RunApplicationCommand path="dotnet" arguments="publish -c Release" />
</XmlCommand>
</XmlMenuItem>
<!-- Explorer panel tree item -->
<XmlCommand buttonTitle="Open Terminal" icon="terminal" target="explorer">
<RunApplicationCommand path="cmd.exe" arguments="/c start cmd.exe" />
</XmlCommand>
</XmlCommands>
Requirements
VS Code 1.120.0 or later.
No additional runtime dependencies — the extension is fully self-contained.