Package Discovery Commands
search
Search for packages in the PRPM registry (keyword-based).query- Search term to find packages
--format <format>- Filter by format (cursor, claude, windsurf, continue, etc.)--subtype <subtype>- Filter by subtype (rule, agent, skill, slash-command, etc.)--limit <number>- Maximum number of results to return (default: 20)--no-interactive- Disable interactive pagination (useful for automation and scripting)
--no-interactive when you want to search and install packages programmatically in scripts or CI/CD environments.
Examples:
ai-search
AI-powered semantic search for finding packages using natural language (no login required).query- Natural language description of what you need
--limit <number>- Number of results to return (default: 10)--format <format>- Filter by format (cursor, claude, windsurf, continue, etc.)--subtype <subtype>- Filter by subtype (rule, agent, skill, slash-command, etc.)
- Uses AI embeddings to understand semantic meaning
- Matches your intent rather than just keywords
- Ranks results by relevance, quality, and popularity
- 100% free with no authentication required
- Faster and more accurate than keyword search for complex queries
info
Display detailed information about a specific package.package-name- Full package name (e.g.,@username/typescript-rules)
--json- Output in JSON format--version <version>- Show info for a specific version
show
Preview package contents before installing. Downloads and extracts the package to display its files without modifying your project.package- Package ID to show (e.g.,@username/packageor@username/package@1.0.0)
--full- Show complete file contents (not just file list)--file <name>- Show contents of a specific file--json- Output in JSON format (for programmatic use)
[binary].
Use Cases:
- Inspect package contents before installing
- Verify package structure and file organization
- Review code/rules before adding to your project
- Audit packages for security or quality
trending
View trending packages from the registry.--format <format>- Filter by format--subtype <subtype>- Filter by subtype--limit <number>- Number of packages to display (default: 10)--period <period>- Time period (day, week, month) (default: week)
popular
View all-time popular packages from the registry.--format <format>- Filter by format--subtype <subtype>- Filter by subtype
popular shows all-time most downloaded packages, while trending shows packages gaining traction in a specific time period.
Examples:
starred
List your starred packages and collections.--packages- Show only starred packages--collections- Show only starred collections--format <format>- Filter packages by format (cursor, claude, continue, windsurf, etc.)--limit <number>- Maximum number of items to fetch (default: 100)
- Must be logged in (
prpm login)
collections
Browse and view curated collections of packages.--list- List all available collections--install- Install all packages in a collection
Package Management Commands
install
Install one or more packages from the registry.package-name- Package to install (supports multiple packages)
--version <version>- Install a specific version--as <format>- Convert and install in specific format (cursor, claude, continue, windsurf, copilot, kiro, agents.md, canonical). For MCP servers, specifies the target editor (claude, codex, cursor, windsurf, vscode, gemini, opencode, kiro, trae, amp, zed)--format <format>- Alias for--as--subtype <subtype>- Specify subtype when converting (skill, agent, rule, etc.)--location <path>- Custom installation location (Cursor and agents.md only)--global- Install MCP servers to global config (e.g.,~/.claude/settings.json)--frozen-lockfile- Fail if lock file needs to be updated (for CI)--eager- Force skill/agent to always activate at session start (not on-demand)--lazy- Use default on-demand activation (overrides package eager setting)
- Package is downloaded from the registry
- Files are extracted to the appropriate directory (
.cursor/,.claude/, etc.) - Package is registered in
prpm.lock - Format-specific configuration is applied (MDC headers for Cursor, etc.)
--location):
The --location flag allows you to install packages to custom directories. This is useful for:
- Monorepos: Install Cursor rules in specific packages (e.g.,
--location packages/backendcreatespackages/backend/.cursor/rules/) - Nested projects: Keep different contexts in subdirectories
- Agents.md: Create
AGENTS.override.mdin custom locations (e.g.,--location docscreatesdocs/AGENTS.override.md)
cursor- Installs to nested.cursor/directory within the specified pathagents.md- CreatesAGENTS.override.mdin the specified path
--eager / --lazy):
These flags control how skills and agents are loaded in progressive disclosure formats (agents.md, gemini.md, claude.md, aider):
- Lazy (default): Skills/agents are available but only activated when relevant based on their description. The AI decides when to use them.
- Eager: Skills/agents are loaded at the START of every session. Always active, no activation needed.
| Mode | When Loaded | Use Case |
|---|---|---|
| Lazy | On-demand when relevant | Most skills - keeps context clean |
| Eager | Every session start | Critical skills that should always apply |
--eager/--lazy) > file-level setting > package-level setting > default (lazy)
Applies to: Skills and agents in progressive disclosure formats only. Rules, hooks, and other subtypes are not affected.
Example directory structure:
uninstall
Remove installed packages from your project.package-id- ID of the package to uninstall
--force- Skip confirmation prompts--keep-files- Remove from lock file but keep the files
list
List all installed packages in the current project.--format <format>- Filter by format--subtype <subtype>- Filter by subtype--json- Output in JSON format--verbose- Show additional details (file paths, versions)
outdated
Check for packages that have newer versions available.--json- Output in JSON format
update
Update specific packages to their latest versions.package-name- Package(s) to update
--version <version>- Update to a specific version--force- Force update even if at latest version
upgrade
Upgrade all installed packages to their latest versions.--dry-run- Show what would be upgraded without making changes--interactive- Prompt for confirmation for each package--skip-breaking- Skip packages with breaking changes (major version bumps)
Package Creation Commands
init
Initialize a new PRPM package or scan directories to discover existing packages.directories- Directories to scan (only used with--scan)
-y, --yes- Use default values, skip prompts--private- Create a private package-f, --force- Overwrite existingprpm.jsonif present-s, --scan- Scan mode: discover packages in directories without prompts-o, --output <path>- Output path for prpm.json (scan mode only)-a, --append- Append to existing prpm.json instead of overwriting (scan mode only)--dry-run- Show what would be discovered without making changes (scan mode only)
- Package name
- Version
- Description
- Format (cursor, claude, windsurf, etc.)
- Subtype (rule, agent, skill, etc.)
- Author name
- License
- Repository URL
- Tags
- Files to include
prpm.json- Package manifestREADME.md- Package documentation template- Format-specific example files based on your selection
- Scans directories for prompt files (
.md,.mdc,SKILL.md, etc.) - Detects format (cursor, claude, windsurf, etc.) and subtype (rule, skill, agent)
- Extracts package metadata from file content
- Filters out packages installed from registry (only discovers user-created content)
- Creates/updates
prpm.jsonwith discovered packages
publish
Publish packages or collections to the PRPM registry.--package <name>- Publish only a specific package from multi-package manifest--collection <id>- Publish only a specific collection (skips packages)-l, --list- List all packages in prpm.json without publishing--dry-run- Test publishing without actually uploading--tag <tag>- Publish with a specific tag (e.g.,beta,next)--access <public|private>- Set package access level--force- Skip validation warnings
- Must be logged in (
prpm login) - Must have a valid
prpm.jsonin current directory - Package version must not already exist in registry
prpm.json has multiple packages or collections:
prpm publish→ Publishes all packages + all collectionsprpm publish --package package-a→ Publishes onlypackage-a(skips collections)prpm publish --collection collection-1→ Publishes onlycollection-1(skips packages)
- Package is validated against schema
- Files are packaged into a tarball
- Package metadata is uploaded to registry
- Tarball is uploaded to storage
- Package becomes available for installation
- Burst capacity: 20 packages can be published immediately
- Sustained rate: 10 packages per minute after burst
- Requests are automatically queued when rate limit is reached
- Maximum queue wait: 30 seconds
Playground Commands
playground
Test packages with real AI models before installing.-p, --package <name>- Package name to test (e.g.,@user/package-name)--input <text>- Input text to send to the model (omit for interactive mode)-m, --model <model>- AI model to use (sonnet, opus, gpt-4o, gpt-4o-mini, gpt-4-turbo) (default: sonnet)-c, --compare- Compare with and without package prompt (baseline test)-i, --interactive- Start interactive multi-turn conversation mode-v, --version <version>- Specific package version to test--custom <prompt>- Use a custom prompt string (verified authors only)--prompt-file <file>- Load custom prompt from a file (verified authors only)
sonnet(Claude Sonnet 3.5) - Balanced performance, 2 credits (default)gpt-4o-mini- Fast and economical, 1 creditgpt-4o- Advanced reasoning, 3 creditsgpt-4-turbo- Complex tasks, 4 creditsopus(Claude Opus) - Most capable, 7 credits
- 1 credit = 5,000 tokens (input + output combined)
- Free tier: 5 trial credits
- PRPM+: 100 monthly credits ($6/month)
- Credit packs: Buy additional credits that never expire
subscribe
Manage your PRPM+ subscription.- (no command) - Subscribe to PRPM+
status- View subscription status and credit balancecancel- Cancel your PRPM+ subscription
- 100 monthly playground credits
- Credits roll over (max 200 balance)
- 3/month for organization members)
- Priority support
credits
Check your playground credits balance and transaction history.-h, --history- Show transaction history instead of balance-l, --limit <number>- Number of transactions to show in history (default: 10)
- Without
--history: Displays current credit balance, monthly allotment (if PRPM+ subscriber), and next renewal date - With
--history: Shows recent credit transactions including purchases, usage, monthly credits, and rollover
buy-credits
Purchase additional playground credits.- 100 credits = $5.00
- Credits never expire
- Stack with monthly PRPM+ credits
suggested-inputs
Manage suggested test inputs for your packages (authors only).add <package> <input>- Add a suggested test inputlist <package>- List all suggested inputs for a packageremove <package> <id>- Remove a suggested input
Local File Management Commands
index
Scan your project directories for existing prompt files and register them in PRPM.--verbose- Show detailed output for each file
.cursor/rules/- Cursor rules.cursor/agents/- Cursor agents.cursor/commands/- Cursor slash commands.claude/agents/- Claude agents.claude/skills/- Claude skills.claude/commands/- Claude slash commands.continue/rules/- Continue rules.windsurf/rules/- Windsurf rules.prompts/- Generic prompts.mcp/- MCP servers
prpm.lock.
convert
Convert AI prompt files between different formats (e.g., Cursor to Claude, Claude to Windsurf).source-file- Path to the file you want to convert
-t, --to <format>- Target format (cursor, claude, windsurf, kiro, copilot, continue, agents.md)-s, --subtype <subtype>- Target subtype (agent, skill, slash-command, rule, prompt, etc.)-o, --output <path>- Custom output path (defaults to format-specific location)-y, --yes- Skip confirmation prompts
- Auto-detects the source format from file content and location
- Parses the source file to extract content and metadata
- Converts to canonical intermediate format
- Transforms to target format with appropriate structure
- Writes to format-specific default location or custom output path
- Cursor:
.cursor/rules/*.mdc(rules) or.cursor/commands/*.md(commands) - Claude:
.claude/skills/*/SKILL.md(skills),.claude/agents/*.md(agents),.claude/commands/*.md(commands) - Windsurf:
.windsurf/rules/*.md - Continue:
.continue/rules/*.md(rules) or.continue/prompts/*.md(prompts) - Copilot:
.github/instructions/*.instructions.md - Kiro:
.kiro/steering/*.md(steering) or.kiro/hooks/*.kiro.hook(hooks) - Agents.md:
agents.md(root file)
User Management Commands
login
Authenticate with the PRPM registry.--token <token>- Use an existing authentication token
- Opens browser for authentication (or uses provided token)
- Saves authentication token to
~/.prpmrc - Token is used for future authenticated requests
whoami
Display information about the currently authenticated user.--json- Output in JSON format
Configuration Commands
config
View or modify CLI configuration.list(orls) - List all configuration valuesget <key>- Get a configuration valueset <key> <value>- Set a configuration valuedelete <key>(orrm) - Reset a configuration value to default
registryUrl- Registry URLtelemetryEnabled- Telemetry enabled (true/false)token- Authentication token (set viaprpm login)username- Username (set viaprpm login)
registryUrl- Change the registry URLtelemetryEnabled- Enable or disable telemetry
token and username are managed via prpm login and cannot be set directly.
Examples:
telemetryEnabled, you can use:
true,1,yes- Enable telemetryfalse,0,no- Disable telemetry
telemetry
Manage anonymous usage telemetry.enable- Enable telemetrydisable- Disable telemetrystatus- Show current telemetry status
- Command usage (anonymized)
- Error messages (anonymized)
- Installation success/failure rates
- Package popularity
- Personal information
- File contents
- Project details
- Authentication tokens
schema
View or validate package schemas.--validate <file>- Validate a package manifest against schema--format <format>- Show schema for a specific format--output <file>- Write schema to file
Exit Codes
The PRPM CLI uses standard exit codes:0- Success1- General error2- Invalid arguments or usage3- Network error4- Authentication error5- Package not found6- Validation error
Environment Variables
PRPM respects these environment variables:PRPM_REGISTRY_URL- Override default registry URLPRPM_TOKEN- Authentication tokenPRPM_TELEMETRY- Enable/disable telemetry (true/false)PRPM_CONFIG_PATH- Custom config file locationNO_COLOR- Disable colored output