prpm.json Reference
Complete reference for the PRPM package manifest.Single Package
Basic package manifest:Multi-Package Repository
For repositories with multiple packages:Required Fields
Single Package
Multi-Package
Each package in thepackages array requires the same fields, except top-level author, license, and repository can be inherited.
Format Values
Format Aliases
Some formats have aliases for compatibility:claude.md→claudegemini.md→gemini
Subtype Values
Subtype by Format
Different formats support different subtypes:- claude: skill, agent, slash-command, tool, hook
- cursor: rule, agent, slash-command, tool
- continue: rule, agent, prompt
- windsurf: rule, agent, slash-command
- kiro: rule, agent, tool, hook
- opencode: agent, slash-command, tool
- ruler: rule, agent, tool
- droid: skill, slash-command, hook
- mcp: tool
- generic: all subtypes
File Paths
Use full paths from project root: Correct:Tags
Use 3-8 kebab-case tags: Good:Optional Fields
Lifecycle Scripts
Use thescripts field to run commands automatically during package operations:
Available Scripts
prepublishOnly (Recommended)
UseprepublishOnly to build hooks or compile code before publishing:
- You run
prpm publish - PRPM runs your
prepublishOnlyscript - If the script succeeds, publishing continues
- If the script fails, publishing is aborted
- Building TypeScript hooks to JavaScript
- Compiling assets
- Running tests before publish
- Validating package contents
Multiple Commands
Chain multiple commands with&&:
Example: Building Multiple Hooks
Script Execution Details
Working Directory: Scripts run from the directory containing prpm.json Timeout: Default 5 minutes (300,000ms) Environment: Inherits your shell’s environment variables Error Handling:- Exit code 0 = success (publishing continues)
- Exit code non-zero = failure (publishing aborted)
- Script output is shown in real-time
Best Practices
Good:Why Not prepublish?
Theprepublish script runs both before publishing AND when someone runs npm install in your repository. This can cause unexpected build steps for users installing your packages.
Use prepublishOnly which ONLY runs before prpm publish.
Next Steps
Publishing Collections
Create package collections
Publishing Guide
Publish your packages