Skip to main content

prpm.json Reference

Complete reference for the PRPM package manifest.
Need help creating prpm.json files? Install the PRPM package that teaches AI to write prpm.json manifests:
These packages include real examples and best practices for single-package, multi-package, and collection repositories.

Single Package

Basic package manifest:

Multi-Package Repository

For repositories with multiple packages:

Required Fields

Single Package

Multi-Package

Each package in the packages 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.mdclaude
  • gemini.mdgemini

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:
Wrong:

Tags

Use 3-8 kebab-case tags: Good:
Bad:

Optional Fields

Lifecycle Scripts

The scripts field only applies to multi-package manifests (prpm.json with a packages array). It does not work in single-package manifests.
Use the scripts field to run commands automatically during package operations:

Available Scripts

Use prepublishOnly to build hooks or compile code before publishing:
What happens:
  1. You run prpm publish
  2. PRPM runs your prepublishOnly script
  3. If the script succeeds, publishing continues
  4. If the script fails, publishing is aborted
Common use cases:
  • 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

Always use prepublishOnly for buildsThis ensures your published packages always contain up-to-date compiled code, preventing the common mistake of publishing stale JavaScript files.
Good:
Bad:

Why Not prepublish?

The prepublish 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