Managing Packages (install, uninstall, list, upgrade)
Relevant source files
The following files were used as context for generating this wiki page:- packages/webapp/public/blog/prpm-complete-feature-guide.md
- packages/webapp/src/app/blog/write-once-distribute-everywhere/page.tsx
- packages/webapp/src/app/blog/agents-md-deep-dive/page.tsx
- packages/cli/src/commands/init.ts
- CONTRIBUTING.md
- packages/webapp/src/app/blog/format-specifications-guide/page.tsx
- AGENTS.md
The Prompt Package Manager (PRPM) provides a suite of commands to manage AI coding assistance packages, including prompts, rules, skills, and agents. These commands form the core of the developer workflow for discovering, installing, and maintaining tools across various AI-integrated IDEs. The central philosophy is "install once, use anywhere," enabled by automatic, on-the-fly format conversion that ensures compatibility across different editors like Cursor, Claude, and Continue.
All package state is tracked in a prpm.lock file, which guarantees consistent and reproducible installations across a team and in CI/CD environments. This document details the functionality of the primary package management commands: install, uninstall, list, and upgrade.
Sources: packages/webapp/public/blog/prpm-complete-feature-guide.md, packages/webapp/src/app/blog/write-once-distribute-everywhere/page.tsx
prpm install
The install command is used to download and set up packages from the PRPM registry. Its key feature is the ability to convert any package to the format required by the user's specific AI editor.
Sources: packages/webapp/public/blog/prpm-complete-feature-guide.md, CONTRIBUTING.md
Installation Flow
The installation process involves fetching the package, converting it to the target format, writing the files to the appropriate local directory, and updating the lockfile to record the installation.
The diagram below illustrates the prpm install command's workflow.
Key Features
Universal Installation & Format Conversion
PRPM can automatically detect the user's editor and install the package in the correct format. Alternatively, a user can specify the target format using the --as or --format flag. This allows a single package from the registry to be used across multiple, otherwise incompatible, AI coding environments.
Example Usage:
# Install a package, letting PRPM auto-detect the editor
prpm install @sanjeed5/react-best-practices
# Install a package and explicitly convert it to the 'cursor' format
prpm install typescript-best-practices --as cursor
# Install and convert to a 'claude' skill
prpm install my-package --as claude --subtype skill
This conversion capability supports over eight major platforms, including Cursor, Claude Code, Continue, Windsurf, and GitHub Copilot.
Sources: packages/webapp/src/app/blog/write-once-distribute-everywhere/page.tsx, packages/webapp/src/app/blog/agents-md-deep-dive/page.tsx, packages/webapp/public/blog/prpm-complete-feature-guide.md
Collection Installation
Instead of installing packages one by one, users can install "Collections," which are bundles of related packages designed for a complete workflow setup.
Example Usage:
# Installs over 20 packages for a professional Next.js setup
prpm install collections/nextjs-pro
Sources: packages/webapp/public/blog/prpm-complete-feature-guide.md, CONTRIBUTING.md
Version Management
The install command supports semantic versioning, allowing users to install a specific version, the latest version, or a version range of a package.
Example Usage:
# Install a specific version
prpm install @username/react@1.2.0
# Install a version within a range
prpm install @username/react@^1.0.0
Sources: packages/webapp/public/blog/prpm-complete-feature-guide.md
Command Options
| Option | Alias | Description | Source |
|---|---|---|---|
--as <format> | Specifies the output format for the package (e.g., cursor, claude). | packages/webapp/public/blog/prpm-complete-feature-guide.md | |
--format <format> | Alias for --as. | packages/webapp/src/app/blog/agents-md-deep-dive/page.tsx | |
--subtype <type> | Specifies the subtype for formats that require it (e.g., skill, agent). | packages/webapp/src/app/blog/agents-md-deep-dive/page.tsx | |
--version <version> | Installs a specific version of a package. | packages/webapp/public/blog/prpm-complete-feature-guide.md |
prpm uninstall
The uninstall command removes a previously installed package from the local project. It reads the prpm.lock file to identify the files associated with the package and deletes them from the filesystem, ensuring a clean removal. It then updates the lockfile to reflect the change.
The diagram below shows the uninstallation process.
prpm list / prpm starred
While a dedicated list command for installed packages is a standard feature of package managers, the available documentation emphasizes the prpm starred command for managing a user's bookmarked packages. The prpm.lock file serves as the definitive list of installed packages.
The prpm starred command allows users to view and manage packages and collections they have "starred" or bookmarked.
Command Options
| Command | Option | Description | Source |
|---|---|---|---|
prpm starred | Lists all starred packages and collections. | packages/webapp/public/blog/prpm-complete-feature-guide.md | |
prpm starred | --packages | Lists only starred packages. | packages/webapp/publicblog/prpm-complete-feature-guide.md |
prpm starred | --collections | Lists only starred collections. | packages/webapp/public/blog/prpm-complete-feature-guide.md |
prpm starred | --format <format> | Filters starred packages by format. | packages/webapp/public/blog/prpm-complete-feature-guide.md |
prpm upgrade
The upgrade command checks the PRPM registry for newer versions of all installed packages listed in prpm.lock. If updates are available, it downloads and installs them, automatically handling format conversion and updating the lockfile with the new version information. This ensures the project stays up-to-date with the latest improvements and fixes from package authors.
The diagram below shows the package upgrade workflow.
Sources: Inferred from standard package manager functionality and descriptions in packages/webapp/public/blog/prpm-complete-feature-guide.md.
The prpm.lock File
The prpm.lock file is a critical component for ensuring deterministic and reproducible package installations. It is automatically created and managed by PRPM commands.
Sources: packages/webapp/public/blog/prpm-complete-feature-guide.md, packages/cli/src/commands/init.ts
Purpose and Importance
- Consistency: Guarantees that every developer on a team has the exact same versions of all packages.
- Reproducibility: Enables CI/CD systems to create identical builds by installing packages based on the lockfile.
- State Tracking: Acts as the source of truth for what is installed, what version, and where the files are located.
Sources: packages/webapp/public/blog/prpm-complete-feature-guide.md
Structure
The lockfile is a JSON object that contains a packages key. Each entry under packages represents an installed package, with a key combining the package ID and its exact version (e.g., packageId@version). The init command uses readLockfile and parseLockfileKey to interact with this structure.
The diagram below illustrates the conceptual structure of the prpm.lock file.
Conclusion
The package management commands in PRPM provide a robust and flexible system for working with AI coding assistance tools. The install command's universal format conversion is a cornerstone feature, solving the problem of ecosystem fragmentation. Paired with the prpm.lock file for reproducibility, these commands offer a developer-friendly experience that is consistent, reliable, and adaptable to the rapidly evolving landscape of AI-powered IDEs.
Sources: packages/webapp/public/blog/prpm-complete-feature-guide.md, packages/webapp/src/app/blog/write-once-distribute-everywhere/page.tsx