Quick start
Prerequisites
- Node.js ≥ 18 (the project targets node 18 for the extension bundle).
- bun or npm. Examples use bun; npm works everywhere too.
- VS Code to launch the Extension Development Host.
Install (optional)
You can run the CLI without installing it via bunx @vsceasy/cli … (or
npx @vsceasy/cli …). To get the shorter vsceasy command everywhere, install
the binary globally:
bun add -g @vsceasy/cli # or: npm i -g @vsceasy/cli
# use globallyvsceasy --versionThe rest of this guide uses the global vsceasy form. Without a global install,
prefix any vsceasy <cmd> with bunx @vsceasy/cli <cmd>.
1. Scaffold
bunx @vsceasy/cli create my-extension# or, if installed globally: vsceasy create my-extensioncd my-extensionbun installOr fully scripted:
bunx @vsceasy/cli create \ --name my-extension \ --displayName "My Extension" \ --description "Does cool things" \ --publisher my-publisher \ --ui react \ --preset full--preset full includes a sample panel + RPC. --preset minimal gives an empty
extension.
2. Run it
bun run devThis runs gen then builds the extension (esbuild) and webviews (vite) in watch
mode. Press F5 in VS Code to launch the Extension Development Host with the
bundled launch config.
3. Add a feature
# a webview panel with a ready-made form UI + RPCvsceasy panel add --name signup --template form
# a palette commandvsceasy command add --name sayHello --title "Say Hello"After a generator runs it executes bun run gen to wire the registry and
contributes. If that didn’t run automatically, run it yourself:
bun run gen4. Try the data stack
vsceasy db initvsceasy model add --name user --fields "id:string!,name:string,email?:string@,active:boolean"vsceasy crud add --model user --menu new:adminYou now have a list panel, a form panel, a service, and an activity-bar menu — all typed end to end. Reload the window and open the admin menu.
Prefer to be guided?
vsceasy wizardThe wizard detects whether you’re inside a project and walks you through creating one or adding features.