Skip to content

Package Types

Every APKG package declares a type in its apkg.json manifest. The type determines how the package is installed, what metadata fields are available, and whether automatic tool setup runs after installation.

This section documents the four package types currently covered in detail by the APKG docs.

TypeDescriptionTool setup
skillA discrete AI capability with defined inputs and outputsYes
agentAn autonomous agent with tool bindings and a system promptYes
commandA slash command for AI coding assistantsNo
ruleA rule or guideline for AI coding assistantsNo
  • Use skill when your package provides a focused capability like code review, summarization, or bug detection.
  • Use agent when your package orchestrates multiple tools and has its own system prompt and model preferences.
  • Use command when your package defines a slash command that users invoke explicitly in their AI assistant.
  • Use rule when your package provides guidelines, constraints, or best practices that shape AI assistant behavior.

All package types share these base fields in apkg.json:

{
"name": "@scope/package-name",
"version": "1.0.0",
"type": "skill",
"description": "What this package does",
"license": "MIT"
}

See the apkg.json Schema Reference for a complete list of fields and validation rules.