Getting Started
Relevant source files
The following files were used as context for generating this wiki page:
- packages/webapp/src/app/blog/agents-md-deep-dive/page.tsx
- packages/webapp/src/app/blog/copilot-deep-dive/page.tsx
- packages/webapp/src/app/blog/windsurf-deep-dive/page.tsx
- packages/webapp/src/app/blog/prpm-complete-feature-guide/page.tsx
- DOCUMENTATION_MAP.md
- packages/webapp/src/app/blog/format-specifications-guide/page.tsx
- CONTRIBUTING.md
- packages/webapp/src/app/blog/write-once-distribute-everywhere/page.tsx
- packages/webapp/src/app/blog/openskills-cross-ide-compatibility/page.tsx
- packages/cli/src/commands/init.ts
- packages/webapp/src/app/blog/continue-deep-dive/page.tsx
- packages/webapp/src/app/blog/distributable-intelligence/page.tsx
- packages/webapp/src/app/blog/introducing-prpm/page.tsx
PRPM (Prompt Package Manager) is a universal package manager for AI coding assistants. It is designed to solve the problem of format fragmentation across different AI tools like Cursor, Claude, Continue, and Windsurf. The core vision is to enable developers to discover, share, and manage AI prompts, agents, and skills as easily as they manage code packages with npm.
The central problem PRPM addresses is that prompts and rules created for one AI tool are incompatible with others. PRPM provides a universal registry and a powerful CLI that handles on-the-fly format conversion. This allows authors to publish a package once and users to install it in any supported AI editor, embodying the principle of "install once, use anywhere."
Sources: packages/webapp/src/app/blog/introducing-prpm/page.tsx:23-40, packages/webapp/src/app/blog/prpm-complete-feature-guide/page.tsx:30-47
Installation
To get started with PRPM, install the CLI globally using npm.
# Install the CLI
npm install -g prpm
After installation, you can verify it by running prpm --version.
Sources: packages/webapp/src/app/blog/introducing-prpm/page.tsx:100-103, packages/webapp/src/app/blog/prpm-complete-feature-guide/page.tsx:205-208
Core Concepts
PRPM is built on a few fundamental concepts that enable its cross-platform capabilities.
Universal Registry & Cross-Platform Conversion
PRPM hosts a universal registry with thousands of packages. Its key feature is the ability to perform automatic, semantically-aware format conversions. When a user installs a package, PRPM converts it from its source format to the format required by the user's target editor. This process preserves format-specific features where possible and ensures the output is valid for the target platform.
Sources: packages/webapp/src/app/blog/introducing-prpm/page.tsx:55-58, packages/webapp/src/app/blog/write-once-distribute-everywhere/page.tsx:52-73
The diagram below illustrates the conversion flow when a user installs a package.
Package Types
PRPM packages encapsulate "distributable intelligence" that AI assistants can execute. There are several types of packages:
- Rules: Declarative constraints that the AI enforces during code generation. For example, a rule might specify that all new React components must use functional patterns and hooks.
- Skills: Step-by-step procedures for the AI to follow for specific, narrow tasks, like migrating a configuration file or generating a specific type of test.
- Agents: High-level orchestrators for complex, multi-step tasks that may involve invoking multiple skills, analyzing files, and reporting outcomes.
- Collections: Bundles of related packages that provide a complete setup for a specific workflow (e.g., a "Next.js Pro" collection with packages for TypeScript, React best practices, and Tailwind).
Sources: packages/webapp/src/app/blog/distributable-intelligence/page.tsx:212-257, CONTRIBUTING.md:41-59, packages/webapp/src/app/blog/prpm-complete-feature-guide/page.tsx:98-108
Basic Usage
The PRPM CLI provides a familiar, npm-like experience for managing AI tool packages.
Finding Packages
You can find packages using either traditional keyword search or AI-powered semantic search.
- Keyword Search: Use this when you know what you're looking for.
prpm search "react best practices" - AI Semantic Search: Use this to describe the problem you want to solve. The AI understands intent and finds relevant packages.
prpm ai-search "help me manage side effects in React"
Sources: packages/webapp/src/app/blog/prpm-complete-feature-guide/page.tsx:75-96
Installing Packages
The prpm install command automatically detects your editor and installs the package in the correct format. You can also specify a target format using the --as or --format flag.
# Install a package (auto-detects format)
prpm install @sanjeed5/react-best-practices
# Install and convert to a specific format
prpm install typescript-best-practices --as cursor
Sources: packages/webapp/src/app/blog/prpm-complete-feature-guide/page.tsx:39-47, packages/webapp/src/app/blog/agents-md-deep-dive/page.tsx:260-267
The following diagram shows the typical user workflow.
Creating Your First Package
The prpm init command provides an interactive wizard to scaffold a new package. It can also intelligently scan your project to detect existing, unmanaged rules and prompts.
When run in a new directory, it will launch a classic wizard to guide you through creating a prpm.json manifest file.
Sources: packages/cli/src/commands/init.ts:563-570
The init Process
The interactive wizard will ask for the following information:
- Package name: A unique identifier for your package.
- Version: Follows semantic versioning (e.g.,
1.0.0). - Description: A brief explanation of what the package does.
- Format: The source format of your package (e.g.,
cursor,claude,agents.md). - Subtype: The type of package (e.g.,
rule,skill,agent). - Author, License, and Tags.
- Files: The list of files that make up the package.
After collecting this information, the command creates a prpm.json file and can generate example files and a README.md for you.
Sources: packages/cli/src/commands/init.ts:600-689
The sequence diagram below shows the interactive prpm init flow.
Smart Package Detection
If you run prpm init in a project that already contains AI rule files (e.g., .cursor/rules/, agents.md), it enters a "smart init" mode. It will scan the directory, detect existing packages, and offer to create a prpm.json manifest to manage them. This is useful for bringing existing, manually created rules under PRPM management.
Sources: packages/cli/src/commands/init.ts:408-420
Supported Formats
PRPM supports conversion between all major AI IDE formats. This allows an author to write a package in one format and have it work for users of any other supported tool.
| Format | File Location(s) | Frontmatter | Key Features |
|---|---|---|---|
| Cursor | .cursor/rules | Required | 4 rule types, MDC format |
| Claude Code | .claude/{agents,skills,commands}/ | Required | allowed-tools, model selection, hooks |
| Continue | .continue/rules/*.md | Required | Globs, regex matching, alwaysApply logic |
| Windsurf | .windsurf/rules | None | Plain markdown, 12k character limit |
| GitHub Copilot | .github/copilot-instructions.md | Optional | Two-tier system (repo-wide & path-specific) |
| Kiro Steering | .kiro/steering/*.md | Optional | Inclusion modes, foundational types |
| agents.md | agents.md | None | Open, tool-agnostic standard, plain markdown |
Sources: packages/webapp/src/app/blog/format-specifications-guide/page.tsx:112-202
Next Steps
Once you have created and tested your package, you can publish it to the PRPM registry to share it with the community.
# Login to the PRPM registry
prpm login
# Publish your package
prpm publish
You can also explore Collections, which are bundles of packages for complete workflow setups, or browse the thousands of existing packages on the PRPM website.
Sources: CONTRIBUTING.md:10-16, packages/webapp/src/app/blog/prpm-complete-feature-guide/page.tsx:98-113