mcpField
V
vendure-cli

vendure-cli

github.com/vendurehqDevelopment8.6k64 installsUpdated today
Repository

About vendure-cli

Vendure CLI is a command-line skill for managing the lifecycle of Vendure projects. It guides agents through development, builds, scaffolding, migrations, schema generation, diagnostics, and package-manager-aware command execution.

Key features

  1. 01Run development, build, and start commands
  2. 02Scaffold plugins and project components
  3. 03Generate and manage database migrations
  4. 04Create Admin and Shop API GraphQL schemas
  5. 05Diagnose project, configuration, and database health
  6. 06Select the CLI runner from lockfiles

Use cases

  1. 01Start or build a Vendure project
  2. 02Add a plugin, entity, or service
  3. 03Generate or revert database migrations
  4. 04Investigate project and database issues

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/vendurehq/vendure --skill vendure-cli

After installing, type/vendure-cliin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

commands/
add.md
build.md
codemod.md
dev.md
doctor.md
migrate.md
plugins.md
schema.md
start.md

Details

From the project README

Vendure CLI

The Vendure CLI (@vendure/cli, binary vendure) drives the full lifecycle of a Vendure project. Use it instead of hand-writing boilerplate or guessing build and migration commands.

Detecting a Vendure project

Run CLI commands from a Vendure server package root, or from a monorepo root that contains a Vendure package under packages/, apps/, libs/, services/, or modules/.

dev, build, and start resolve the project directory from the current working directory if it contains @vendure/core, or by scanning those monorepo package directories. add, migrate, schema, and config-dependent doctor checks analyze the TypeScript project from process.cwd() and require a tsconfig*.json there, so do not assume they work from arbitrary nested subdirectories.

Running the CLI

@vendure/cli is normally a project dependency, so run it through the project's package manager — do not assume npx. Detect the package manager from the lockfile in the project root or workspace root and use the matching runner:

Lockfile in project rootPackage managerRun the CLI with
bun.lock / bun.lockbbunbunx vendure <command>
pnpm-lock.yamlpnpmpnpm exec vendure <command>
yarn.lockyarnyarn vendure <command>
package-lock.jsonnpmnpx vendure <command>
none foundnpm (fallback)npx vendure <command>

If @vendure/cli is installed globally, call vendure <command> directly. List all commands with vendure --help.

The commands/*.md reference files write examples with a bare vendure … — prefix each one with the runner for the detected package manager.

Note: CLI scaffolding that installs packages currently detects yarn.lock, package-lock.json, and pnpm-lock.yaml internally, then falls back to npm. It does not use Bun for those generated dependency installs.

Commands

CommandUse it to…Reference
devRun server + worker + dashboard in development modecommands/dev.md
buildCompile the project for productioncommands/build.md
startRun an already-built projectcommands/start.md
addScaffold a plugin, entity, service, API extension, etc.commands/add.md
migrateGenerate, run or revert database migrationscommands/migrate.md
schemaGenerate a GraphQL schema file from the Admin/Shop APIcommands/schema.md
doctorDiagnose project, dependency, config, schema and DB healthcommands/doctor.md
codemodRun automated code transforms (e.g. UI migrations)commands/codemod.md
pluginsList / enable / disable CLI plugins for the projectcommands/plugins.md

To diagnose a broken project, use the vendure-troubleshooting skill (skills/vendure-troubleshooting/).

Installed CLI plugins (packages that declare vendure.cliPlugin) may add commands or replace built-ins such as dev. Prefer vendure --help in the project to see the effective command set. See the developer CLI guide section “Extending the CLI”.

Critical rules for agents

  1. Never hardcode npx. Resolve the runner from the project's lockfile — see "Running the CLI" above (bunx, pnpm exec, yarn, npx).
  2. Prompt-capable commands (add, migrate, schema, codemod, plugins) need explicit flags/arguments from agents. Run them with explicit inputs so they take the non-interactive path; otherwise the process rejects prompt-only invocations in non-interactive environments. Set VENDURE_CLI_NON_INTERACTIVE=true when calling the CLI from an agent so prompt-only invocations fail fast with examples instead of waiting on a terminal prompt. The exact non-interactive flags are in each command's reference file. For CLI plugins use vendure plugins --json / vendure plugins add <pkg> / vendure plugins remove <pkg> — there is no blanket-approve flag.
  3. dev, start, and build --watch are long-running processes. Do not run them just to "check" something. Run them only when the user asks, and prefer running them in the background.
  4. Production-only installs may not include @vendure/cli. Generated apps keep the CLI as a dev dependency, so after pruning dev dependencies, start compiled server/worker entrypoints with node ./dist/... or make the CLI a production dependency explicitly.
  5. Read the relevant commands/*.md file before building a command. Valid targets and flags differ per command (e.g. start has no dashboard target; --inspect only applies to dev).

Comments

Markdown supported