Skip to content

create

Scaffold a new vsceasy extension project into ./<name> (or --dir).

Terminal window
vsceasy create my-extension

Flags

FlagTypeNotes
--nametextRequired. Package name, e.g. my-extension or @scope/my-ext.
--displayNametextHuman-readable name. Defaults to a title-cased name.
--descriptiontextShort description.
--publishertextVS Code publisher id. Defaults to your-publisher.
--uireactUI framework. Only react for now.
--presetminimal | fullfull (default) adds a sample panel + RPC; minimal is empty.
--dirtextTarget directory. Defaults to ./<name>.
--gitbooleanInitialize a git repository. Skips the prompt; set --git=false to opt out.
--installbooleanInstall dependencies (bun, falling back to npm). Skips the prompt; set --install=false to opt out.

Examples

Terminal window
# interactive — prompts for the rest
vsceasy create my-extension
# fully scripted
vsceasy create \
--name my-extension \
--displayName "My Extension" \
--publisher my-publisher \
--ui react \
--preset full
# scoped name, custom directory
vsceasy create --name @acme/cool-tool --dir tools/cool

After scaffolding

When run in an interactive terminal, create then offers to:

  • Initialize a git repository (git init in the project).
  • Install dependencies with the first available package manager (bun, falling back to npm).

Both default to yes. Pass --git / --install (or --git=false / --install=false) to skip the prompts — handy for scripting and CI:

Terminal window
vsceasy create --name my-extension --preset full --git --install

In non-interactive contexts (CI, piped input) without those flags the prompts are skipped and you run the steps yourself:

Terminal window
cd my-extension
bun install
bun run dev # press F5 in VS Code

See Quick start for the full first-run walkthrough.