Skip to content
Agent Package Manager

Agent Package Manager

The Agent Package Manager (APM) installs packages, plugins (directly) or through marketplaces.

Unlike plugins installed natively through each agent runtime, the APM CLI takes care of placing the components in the right place for each agent runtime, so that they can be used without any additional configuration (.agents, .claude, .copilot, .github, etc.), broadening agent runtime compatibility.

Usage

Installation can be made within repositories (to have dependencies or plugins scoped to a repository) or user-scoped. Scope management is done through the --global / -g flag.

To install components for only specific agent runtimes, use the target(s) property.

Install any package from anywhere (Git repository, local directory, remote component, etc.).

curl -fSL https://aka.ms/apm-unix | sh
apm install <path_to_primitive>
apm install --mcp <path_to_primitive>
name: my-project
version: 0.1.0
description: Dependencies for project

dependencies:
  apm: []
  mcp: []
  lsp: []

targets: [claude, codex, copilot, gemini, kiro, opencode, windsurf]

Lockfile

Every install is tracked in a lockfile so teams can use the exact same dependencies and plugins (similar to package-lock.json).

User scope (-g flag):

~/.apm/
  └── apm.lock.yaml

Repository scope (default), meant to be committed:

repository/
└── apm.lock.yaml

Limitations

Namespacing

Slash-like components installed through APM aren’t namespaced (e.g. /plugin:skill-name) and can be subject to naming conflicts.