CLI Commands

PPM provides a comprehensive command-line interface for managing polyglot projects. This reference covers all available commands, their options, and usage examples.

Global Options

These options are available for all PPM commands:
ppm [GLOBAL_OPTIONS] <COMMAND> [COMMAND_OPTIONS]
OptionShortDescription
--help-hShow help information
--version-VShow PPM version
--verbose-vEnable verbose output
--quiet-qSuppress non-error output
--config <path>-cUse custom config file
--no-colorDisable colored output

Core Commands

ppm init

Initialize a new PPM project or convert existing project.
ppm init [OPTIONS] [PROJECT_NAME]
Arguments:
  • PROJECT_NAME - Name of the project (optional, uses current directory name)
Options:
OptionDescription
--forceOverwrite existing project.toml
--template <name>Use project template
--js-manager <manager>JavaScript package manager (npm, yarn, pnpm)
--python <version>Python version to use
--venv-dir <path>Virtual environment directory
--no-jsSkip JavaScript setup
--no-pythonSkip Python setup
--interactiveInteractive project setup
Examples:
# Initialize new project
ppm init my-app

# Initialize with specific managers
ppm init --js-manager yarn --python 3.11

# Convert existing project
ppm init --force

# Use template
ppm init --template react-flask

# Interactive setup
ppm init --interactive

ppm install

Install project dependencies from project.toml.
ppm install [OPTIONS] [PACKAGES...]
Arguments:
  • PACKAGES... - Specific packages to install (optional)
Options:
OptionDescription
--frozenInstall exact versions from lock file
--no-lockfileDon’t generate/update lock file
--devInstall development dependencies
--prodInstall only production dependencies
--env <environment>Use specific environment
--forceForce reinstall all packages
--offlineDon’t access network (use cache only)
Examples:
# Install all dependencies
ppm install

# Install from lock file
ppm install --frozen

# Install only production dependencies
ppm install --prod

# Install development dependencies
ppm install --dev

# Install for specific environment
ppm install --env production

# Install specific packages
ppm install react flask

ppm add

Add new dependencies to your project.
ppm add [OPTIONS] <PACKAGES...>
Arguments:
  • PACKAGES... - Packages to add (required)
Options:
OptionDescription
--devAdd as development dependency
--optionalAdd as optional dependency
--jsForce add as JavaScript package
--pythonForce add as Python package
--version <spec>Specific version constraint
--no-installAdd to config without installing
Examples:
# Add packages (auto-detect language)
ppm add react axios flask numpy

# Add JavaScript packages explicitly
ppm add --js react @types/react

# Add Python packages explicitly  
ppm add --python flask sqlalchemy

# Add development dependencies
ppm add --dev eslint pytest black

# Add with specific versions
ppm add react@^18.0.0 flask@~3.0.0

# Add without installing
ppm add --no-install new-package

ppm remove

Remove dependencies from your project.
ppm remove [OPTIONS] <PACKAGES...>
Arguments:
  • PACKAGES... - Packages to remove (required)
Options:
OptionDescription
--devRemove from development dependencies
--jsForce remove as JavaScript package
--pythonForce remove as Python package
--no-uninstallRemove from config without uninstalling
Examples:
# Remove packages
ppm remove react flask

# Remove development dependencies
ppm remove --dev eslint pytest

# Remove from config only
ppm remove --no-uninstall old-package

ppm run

Execute scripts defined in project.toml or run commands.
ppm run [OPTIONS] <SCRIPT|COMMAND> [ARGS...]
Arguments:
  • SCRIPT|COMMAND - Script name or command to run
  • ARGS... - Arguments to pass to the script/command
Options:
OptionDescription
--env <environment>Use specific environment
--parallelRun multiple scripts in parallel
--silentSuppress script output
Examples:
# Run defined scripts
ppm run dev
ppm run test
ppm run build

# Run with arguments
ppm run test --coverage

# Run commands directly
ppm run python app.py
ppm run node server.js

# Run in specific environment
ppm run --env production start

# Run multiple scripts in parallel
ppm run --parallel "npm run dev" "python manage.py runserver"

Virtual Environment Commands

ppm venv

Manage Python virtual environments.
ppm venv <SUBCOMMAND> [OPTIONS]

Subcommands:

create - Create virtual environment
ppm venv create [OPTIONS]

Options:
  --python <version>    Python version to use
  --name <name>         Environment name
  --system-site-packages Include system packages
activate - Show activation command
ppm venv activate [OPTIONS]

Options:
  --show               Show command instead of executing
info - Show environment information
ppm venv info [OPTIONS]

Options:
  --verbose            Show detailed information
list - List all environments
ppm venv list
remove - Remove virtual environment
ppm venv remove [OPTIONS]

Options:
  --force              Don't ask for confirmation
clean - Clean environment packages
ppm venv clean
rebuild - Rebuild virtual environment
ppm venv rebuild

Information Commands

ppm list

List installed packages.
ppm list [OPTIONS]
Options:
OptionDescription
--jsShow only JavaScript packages
--pythonShow only Python packages
--devInclude development dependencies
--outdatedShow only outdated packages
--format <format>Output format (table, json, csv)
Examples:
# List all packages
ppm list

# List only JavaScript packages
ppm list --js

# List outdated packages
ppm list --outdated

# Export as JSON
ppm list --format json

ppm tree

Show dependency tree.
ppm tree [OPTIONS] [PACKAGE]
Arguments:
  • PACKAGE - Show tree for specific package (optional)
Options:
OptionDescription
--jsShow only JavaScript dependencies
--pythonShow only Python dependencies
--depth <n>Maximum depth to show
--reverseShow reverse dependencies
Examples:
# Show full dependency tree
ppm tree

# Show tree for specific package
ppm tree react

# Limit depth
ppm tree --depth 2

# Show what depends on a package
ppm tree --reverse lodash

ppm outdated

Check for outdated dependencies.
ppm outdated [OPTIONS]
Options:
OptionDescription
--jsCheck only JavaScript packages
--pythonCheck only Python packages
--format <format>Output format (table, json)

ppm info

Show package information.
ppm info <PACKAGE> [OPTIONS]
Arguments:
  • PACKAGE - Package name to show info for
Options:
OptionDescription
--jsLook up JavaScript package
--pythonLook up Python package
--versionsShow available versions

Maintenance Commands

ppm update

Update dependencies to latest versions.
ppm update [OPTIONS] [PACKAGES...]
Arguments:
  • PACKAGES... - Specific packages to update (optional)
Options:
OptionDescription
--jsUpdate only JavaScript packages
--pythonUpdate only Python packages
--devInclude development dependencies
--latestUpdate to latest versions (ignore constraints)
--dry-runShow what would be updated
Examples:
# Update all packages
ppm update

# Update specific packages
ppm update react flask

# Update to latest versions
ppm update --latest

# Show what would be updated
ppm update --dry-run

ppm audit

Audit dependencies for security vulnerabilities.
ppm audit [OPTIONS]
Options:
OptionDescription
--jsAudit only JavaScript packages
--pythonAudit only Python packages
--fixAutomatically fix vulnerabilities
--severity <level>Filter by severity (low, moderate, high, critical)

ppm clean

Clean package caches and temporary files.
ppm clean [OPTIONS]
Options:
OptionDescription
--cacheClean package manager caches
--depsClean installed dependencies
--allClean everything
--forceDon’t ask for confirmation

Import/Export Commands

ppm import

Import from existing package files.
ppm import [OPTIONS] [FILES...]
Arguments:
  • FILES... - Files to import from (package.json, requirements.txt, etc.)
Options:
OptionDescription
--from <file>Import from specific file
--mergeMerge with existing project.toml
--devImport as development dependencies
Examples:
# Import from current directory
ppm import

# Import specific files
ppm import --from package.json --from requirements.txt

# Merge with existing config
ppm import --merge package.json

ppm export

Export dependencies to other formats.
ppm export [OPTIONS] <FORMAT>
Arguments:
  • FORMAT - Export format (package.json, requirements.txt, etc.)
Options:
OptionDescription
--output <file>Output file path
--devInclude development dependencies
--frozenExport exact versions
Examples:
# Export to package.json
ppm export package.json

# Export to requirements.txt
ppm export requirements.txt --frozen

# Export to custom file
ppm export package.json --output frontend/package.json

Configuration Commands

ppm config

Manage PPM configuration.
ppm config <SUBCOMMAND> [OPTIONS]

Subcommands:

get - Get configuration value
ppm config get <KEY>
set - Set configuration value
ppm config set <KEY> <VALUE>
unset - Remove configuration value
ppm config unset <KEY>
list - List all configuration
ppm config list
Examples:
# Get configuration
ppm config get python.version

# Set configuration
ppm config set python.version 3.11

# List all config
ppm config list

Advanced Commands

ppm lock

Manage lock files.
ppm lock [OPTIONS]
Options:
OptionDescription
--updateUpdate lock file without installing
--checkVerify lock file is up to date

ppm verify

Verify project integrity.
ppm verify [OPTIONS]
Options:
OptionDescription
--lockfileVerify against lock file
--configVerify configuration

ppm doctor

Diagnose and fix common issues.
ppm doctor [OPTIONS]
Options:
OptionDescription
--fixAutomatically fix issues
--verboseShow detailed diagnostics

Exit Codes

PPM uses these exit codes:
CodeMeaning
0Success
1General error
2Command not found
3Configuration error
4Network error
5Permission error
6Package not found
7Version conflict

Environment Variables

Control PPM behavior with environment variables:
VariableDescription
PPM_CONFIG_FILECustom config file path
PPM_CACHE_DIRCustom cache directory
PPM_PYTHON_VERSIONDefault Python version
PPM_NO_COLORDisable colored output
PPM_VERBOSEEnable verbose output

Shell Completion

Enable shell completion for better CLI experience:
# Bash
ppm completion bash > ~/.ppm-completion.bash
echo 'source ~/.ppm-completion.bash' >> ~/.bashrc

# Zsh
ppm completion zsh > ~/.ppm-completion.zsh
echo 'source ~/.ppm-completion.zsh' >> ~/.zshrc

# PowerShell
ppm completion powershell > $PROFILE

This reference covers all PPM CLI commands and options. For specific examples and use cases, see the Quickstart Guide and Examples.