pdd-kit CLI
Run the current package without a global install:
npx @itai-gendler/pdd-kit <command> [options]
Or install it once; the command it adds is pdd-kit:
npm install --global @itai-gendler/pdd-kit
pdd-kit <command> [options]
| Command | Purpose |
|---|---|
install | Install pdd-kit skills |
update | Update managed skill installations |
lint | Lint a Product Model |
view | View a Product Model locally, from your checkout or from GitHub |
blueprint export | Export a Blueprint |
blueprint open | Open a local Blueprint |
blueprint list | List published Blueprints |
blueprint pull | Pull a published Blueprint |
blueprint contribute | Contribute a Blueprint |
help [command] | Show help for a command |
The blueprint commands move a Product Model between repositories as a
Blueprint.
Global options
| Option | Meaning |
|---|---|
-c, --cwd <path> | Run from another directory (see below) |
-h, --help | Show help for the command |
-V, --version | Show the CLI version |
Each command's help lists only what that command accepts:
npx @itai-gendler/pdd-kit help view
npx @itai-gendler/pdd-kit blueprint pull --help
Choosing the Product Model
lint, view, blueprint export, and blueprint contribute start from the
current directory. If it directly contains product-model/, that model is used;
otherwise pdd-kit uses the one at the Git repository root. So a nested
Blueprint wins when you run from its directory, while ordinary subdirectories
use the repository's model.
--cwd <path> runs from another directory; --cwd . is the same as leaving it
out. Point it at the directory that contains product-model/, not at
product-model/ itself.
# A nested Blueprint in the current repository
npx @itai-gendler/pdd-kit view --cwd ./blueprints/example-product
# A model in another directory or repository
npx @itai-gendler/pdd-kit lint --cwd ../fixture-shop --json
view can instead take a GitHub repository, branch, or pull request, and then
--cwd does not apply. See view.
For blueprint open and blueprint pull, --cwd is the directory where
product-model/ will be created. For install and update, it is the project
used for harness detection and project-scoped skills.
Environment
| Variable | Used by | Meaning |
|---|---|---|
PDD_KIT_BLUEPRINT_REPOSITORY | blueprint list, pull, contribute | owner/repo Blueprints are pulled from and contributed to; defaults to itai-gendler/pdd-kit |
PDD_KIT_NO_UPDATE_CHECK | every command | Set to 1 to turn off the CLI update check and prompt |
Exit codes: 0 success, 1 the command failed or was refused, 2 invalid
usage. Each command page says which cases map to which.
Updating the CLI
When the CLI is installed globally with npm, pnpm, Yarn or Bun, a command run in a terminal may offer a newer stable release before it starts:
◆ A newer pdd-kit CLI is available: 0.23.1 → 0.24.0
│ ● Update now (npm install --global @itai-gendler/[email protected])
│ ○ Not now
│ ○ Do not remind me again
- Update now installs that release with the package manager that installed the CLI, then stops; run your command again. If the update fails, the command runs on the installed version and prints the install command to retry.
- Not now runs the command. Each release is offered once.
- Do not remind me again turns the prompt off for good. To turn it back on,
delete
~/.config/pdd-kit/update-check.json(%APPDATA%\pdd-kit\update-check.jsonon Windows, or underXDG_CONFIG_HOMEwhen set).
The check runs at most once a day in the background, so no command waits on it.
Nothing is checked or offered without a terminal, in CI, with
PDD_KIT_NO_UPDATE_CHECK=1, under npx (which already runs the latest
release), or when pdd-kit is a project dependency. Nothing is installed
without your choice. This updates the CLI itself; update
refreshes installed skills.