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.
Available types
Section titled “Available types”| Type | Description | Tool setup |
|---|---|---|
skill | A discrete AI capability with defined inputs and outputs | Yes |
agent | An autonomous agent with tool bindings and a system prompt | Yes |
command | A slash command for AI coding assistants | No |
rule | A rule or guideline for AI coding assistants | No |
Choosing a type
Section titled “Choosing a type”- 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.
Common manifest fields
Section titled “Common manifest fields”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.