Package
Un package est un dépôt Git capable de partager d’un coup un ensemble de composants.
Les packages peuvent être installés via l’Agent Package Manager, un CLI simple qui installe, met à jour, et suit les packages installés dans les dépôts ou à l’échelle utilisateur sur une machine.
Les packages peuvent aussi être distribués via des plugins ou des marketplaces, voir distribution ci-dessous.
Structure
Un package est identifié par son apm.yml,
qui définit ses dépendances (autres packages, serveurs MCP, serveurs LSP).
Les composants distribués sont placés sous le répertoire .apm.
repository/
├── apm.yml
└── .apm/
├── agents/
│ └── architect.agent.md
├── hooks/
│ └── pre-tool.json
├── instructions/
│ └── style.instructions.md
├── prompts/
│ └── review.prompt.md
└── skills/
└── my-skill/
└── SKILL.mdWarning
Le répertoire .apm doit toujours être présent dans un package pour que apm install fonctionne (un .gitkeep suffit).
Distribution
Comme indiqué ci-dessus, les packages peuvent être distribués via des plugins ou des marketplaces à l’aide de la commande apm pack.
Les composants incompatibles sont automatiquement filtrés lors de l’installation côté consommateur (par exemple les instructions).
curl -fSL https://aka.ms/apm-unix | sh
apm packLimitation
Actuellement, seuls les formats Claude Code et Copilot sont supportés pour la distribution de plugins. Mais cela ne signifie pas que les autres agent runtimes ne peuvent pas consommer de plugins, ils ont juste besoin de supporter ces formats.
En fournissant la propriété target(s) dans le apm.yml, un fichier plugin.json est automatiquement généré.
name: example
version: 0.1.0
author: Author Name
description: Package example
license: <LICENSE>
targets: [claude, codex, copilot, gemini, kiro, opencode, windsurf]