Quick start
Prerequisites
Section titled “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)
Section titled “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
Section titled “1. Scaffold”bunx @vsceasy/cli create my-extension# or, if installed globally: vsceasy create my-extensioncd my-extensionAfter scaffolding, create offers to initialize a git repository and
install dependencies (defaults to yes on both). Accept the install prompt and
you can skip bun install yourself.
Or fully scripted — --git / --install skip the prompts:
bunx @vsceasy/cli create \ --name my-extension \ --displayName "My Extension" \ --description "Does cool things" \ --publisher my-publisher \ --ui react \ --preset full \ --git \ --install--preset full includes a sample panel + RPC. --preset minimal gives an empty
extension.
2. Run it
Section titled “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
Section titled “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
Section titled “4. 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?
Section titled “Prefer to be guided?”vsceasy wizardThe wizard detects whether you’re inside a project and walks you through creating one or adding features.