--- topic: overview source_keys: - context7-microsoft-apm --- ## What APM is APM (Agent Package Manager) applies a standard package-management model — declare, lock, install, audit — to AI agent configuration. It manages the skills, prompts, instructions, agents, and tools an AI coding assistant needs, so that configuration is version-controlled, peer-reviewed, and reproducible across developer machines and CI pipelines, the same way a dependency manager keeps application code reproducible. ## Scope: install and integrity plane only APM is deliberately narrow. It governs what reaches disk and enforces policy conformance on that install — nothing more. It is explicitly **not**: - A runtime for executing agents - An LLM gateway or model-call proxy - A fine-tuning tool - A marketplace requiring a specific distribution platform It also does not manage agent permissions or version model weights. Any git repository can serve as a valid APM package — there's no mandated central registry, though named registries are supported for teams that want one. ## Producer / consumer model - A **producer** package is a directory containing an `apm.yml` manifest, primitives under `.apm/`, and a `README.md`. - A **consumer** project declares dependencies on producer packages in its own `apm.yml` and installs them with `apm install`. - `apm compile` generates per-target output (e.g., Claude-specific or Copilot-specific files) from the vendor-neutral `.apm/` source tree. - `apm pack` bundles a producer package into a distributable artifact. ## Package anatomy APM packages organize content into subdirectories under `.apm/` by primitive type: - `skills/` — multi-file capabilities (each with its own `SKILL.md`, plus optional `scripts/`, `references/`, `assets/`) - `prompts/` — reusable prompt templates (`*.prompt.md`) - `instructions/` — always-on rules (`*.instructions.md`) - `agents/` — model and tool configuration for a named agent (`*.agent.md`) - `hooks/` — host-harness lifecycle event bindings This mirrors how the vendor-neutral primitives compile down to provider-specific formats (Claude, Copilot, etc.) via `apm compile`.