Skip to main content

Format Capabilities API

The format capabilities API provides information about what features each AI editor format supports. Use this to determine compatibility when converting packages between formats.

Get All Format Capabilities

GET /api/v1/formats/capabilities
Returns the complete format capabilities matrix. Example Response:
{
  "version": "1.0.2",
  "description": "Format capability matrix for PRPM converters",
  "formats": {
    "cursor": {
      "name": "Cursor",
      "supportsSkills": false,
      "supportsPlugins": false,
      "supportsExtensions": false,
      "supportsAgents": false,
      "supportsAgentsMd": true,
      "supportsSlashCommands": true,
      "markdownFallback": "cursor-rules.md",
      "notes": "Cursor supports AGENTS.md files for project instructions..."
    },
    "claude": {
      "name": "Claude Code",
      "supportsSkills": true,
      "supportsPlugins": true,
      "supportsExtensions": false,
      "supportsAgents": true,
      "supportsAgentsMd": false,
      "markdownFallback": "CLAUDE.md",
      "notes": "Claude Code supports skills, agents, and plugins..."
    },
    "kiro": {
      "name": "Kiro AI",
      "supportsSkills": false,
      "supportsPlugins": false,
      "supportsExtensions": false,
      "supportsAgents": true,
      "supportsAgentsMd": true,
      "markdownFallback": "kiro-agent.md",
      "notes": "Kiro supports agents in .kiro/agents/ directory..."
    }
  },
  "agentsMdSupport": {
    "description": "Formats that support agents.md for progressive disclosure",
    "formats": ["cursor", "copilot", "kiro", "opencode", "ruler", "droid", "replit", "zed"],
    "notes": "These formats can use AGENTS.md as a universal fallback..."
  }
}

Get Specific Format Capabilities

GET /api/v1/formats/capabilities/:format
Returns capabilities for a single format. Path Parameters:
ParameterTypeDescription
formatstringFormat name (e.g., cursor, claude, kiro)
Example Request:
curl https://registry.prpm.dev/api/v1/formats/capabilities/kiro
Example Response:
{
  "format": "kiro",
  "name": "Kiro AI",
  "supportsSkills": false,
  "supportsPlugins": false,
  "supportsExtensions": false,
  "supportsAgents": true,
  "supportsAgentsMd": true,
  "markdownFallback": "kiro-agent.md",
  "notes": "Kiro supports agents in .kiro/agents/ directory. Full agents.md support."
}
404 Response (format not found):
{
  "error": "Format not found",
  "message": "Format \"invalid\" does not exist in the capabilities matrix",
  "availableFormats": ["cursor", "claude", "continue", "windsurf", "copilot", "kiro", ...]
}

Capability Fields

FieldTypeDescription
namestringHuman-readable format name
supportsSkillsbooleanCan use skill packages
supportsPluginsbooleanCan use plugin packages
supportsExtensionsbooleanCan use extension packages
supportsAgentsbooleanHas native agent support
supportsAgentsMdbooleanReads AGENTS.md files
supportsSlashCommandsbooleanHas custom slash commands
markdownFallbackstringFallback filename for unsupported features
notesstringAdditional capability notes

Progressive Disclosure

When a target format doesn’t support a specific feature (e.g., skills), PRPM uses progressive disclosure to convert to the best available alternative:
  1. Native format - Use if supported
  2. Format-specific markdown - e.g., CLAUDE.md, GEMINI.md
  3. Universal fallback - AGENTS.md for maximum compatibility
Use the capabilities API to determine the best conversion strategy for your packages.

Example: Check Agents.md Support

const response = await fetch('https://registry.prpm.dev/api/v1/formats/capabilities');
const { agentsMdSupport } = await response.json();

// Check if a format supports agents.md
const supportsAgentsMd = agentsMdSupport.formats.includes('cursor');
console.log(`Cursor supports agents.md: ${supportsAgentsMd}`); // true

Available Formats

FormatKeySupports Agents.md
CursorcursorYes
Claude CodeclaudeNo (uses CLAUDE.md)
ContinuecontinueNo
WindsurfwindsurfNo
GitHub CopilotcopilotYes
Kiro AIkiroYes
Gemini CLIgeminiNo (uses GEMINI.md)
OpenCodeopencodeYes
RulerrulerYes
Factory DroiddroidYes
TraetraeNo
AideraiderNo (uses CONVENTIONS.md)
ZencoderzencoderNo
Replit AgentreplitYes
ZedzedYes