TL;DR

AI エージェント向けの依存関係管理ツール(CLI)。AI エージェント版の npm のようなもので、Skills、Prompts、Hooks、MCP サーバ、Instructions(Rules)などを宣言的に管理する。Microsoft が開発した MIT ライセンスの OSS である。このページは v0.25.0 時点の情報である。

なぜ必要か

リポジトリをクローンした開発者が apm install を実行すれば、同じ Skill などをさまざまな AI エージェントで使える。

仕組み

npm や pip、cargo のマニフェストとロックファイルという形を、AI エージェントを構成するファイルに当てはめたものである。AI エージェントの実行には介入しない。マニフェストは apm.yml、ロックファイルは apm.lock.yaml で、パッケージに含まれる Skill などの原本は .apm/ に置く。apm install を実行すると、推移的な依存関係も含めた依存ツリー全体を解決し、各エージェントが読むファイルとして展開する。

管理できるのは Instructions、Skills、Prompts、Agents、Hooks、Commands、Plugins、MCP サーバである。出力先は GitHub Copilot(.github/)、Codex(.codex/、.agents/)、Claude(.claude/)、Gemini(.gemini/)、OpenCode(.opencode/)、Cursor(.cursor/)、Antigravity(.agents/)、Windsurf(.windsurf/)、Kiro(.kiro/)などに対応している。

安全性とポリシー

apm install は、エージェントの挙動を乗っ取り得る不可視の Unicode を検査し、コンテンツのハッシュをロックファイルに固定する。深い依存関係が持ち込む MCP サーバは、トップレベルの apm.yml で宣言し直すか、--trust-transitive-mcp で信頼を明示しない限り、ディスクに書き込む前の検査でブロックする。apm audit で意図しない変更がないかを確認できる。

GitHub Organization の .github リポジトリに apm-policy.yml を置くと、Organization 内の全リポジトリに対して、ソース、スコープ、プリミティブの許可リストを定義できる。apm install と apm audit --ci --policy org の実行時に、Git の remote から自動で検出される。

name: "Contoso Engineering Policy"
version: "1.0.0"
enforcement: block # warn | block | off
 
dependencies:
  allow:
    - "contoso/**"
    - "microsoft/*"
  deny:
    - "untrusted-org/**"
 
mcp:
  transport:
    allow: [http, stdio] # sse と streamable-http を拒否

注意点

リポジトリ側に独自の apm-policy.yml を置いてポリシーを拡張できるが、ルールは厳しくすることしかできず、緩めることはできない。

関連

出典