Skip to content

Quick Start

Three commands. Three minutes. Your AI agent learns your project’s standards automatically.

macOS / Linux:

Terminal window
curl -sSL https://aka.ms/apm-unix | sh

Windows (PowerShell):

Terminal window
irm https://aka.ms/apm-windows | iex

Verify it worked:

Terminal window
apm --version

For Homebrew (macOS/Linux), Scoop (Windows), pip, or manual install, see the Installation guide.

Create a new project:

Terminal window
apm init my-project && cd my-project

Or initialize inside an existing repository:

Terminal window
cd your-repo
apm init

Either way, APM creates an apm.yml manifest — your dependency file for AI agent configuration:

apm.yml
name: my-project
version: 1.0.0
dependencies:
apm: []

This is where it gets interesting. Install a package and watch what happens:

Terminal window
apm install microsoft/apm-sample-package#v1.0.0

APM downloads the package, resolves its dependencies, and deploys files directly into the directories your AI tools already watch:

my-project/
apm.yml
apm.lock.yaml
apm_modules/
microsoft/
apm-sample-package/
.github/
instructions/
apm-sample-package/
design-standards.instructions.md
prompts/
apm-sample-package/
accessibility-audit.prompt.md
design-review.prompt.md
.claude/
commands/
apm-sample-package/
...
.cursor/
rules/
design-standards.mdc
agents/
design-reviewer.md
.opencode/
agents/
design-reviewer.md
commands/
design-review.md

Three things happened:

  1. The package was downloaded into apm_modules/ (like node_modules/).
  2. Instructions, agents, and skills were deployed to .github/, .claude/, .cursor/, and .opencode/ (when present) — the native directories that GitHub Copilot, Claude, Cursor, and OpenCode read from.
  3. A lockfile (apm.lock.yaml) was created, pinning the exact commit so every team member gets identical configuration.

Your apm.yml now tracks the dependency:

apm.yml
name: my-project
version: 1.0.0
dependencies:
apm:
- microsoft/apm-sample-package#v1.0.0

Open your editor. GitHub Copilot, Claude, Cursor, and OpenCode pick up the new context immediately — no extra configuration, no compile step, no restart. The agent now knows your project’s design standards, can run your prompt templates, and follows the conventions defined in the package.

This is the core idea: packages define what your AI agent knows, and apm install puts that knowledge exactly where your tools expect it.

When a new developer joins your team:

Terminal window
git clone <your-repo>
cd <your-repo>
apm install

The lockfile ensures everyone gets the same agent configuration. Same as npm install after cloning a Node project.

Add more packages as your project evolves:

Terminal window
apm install github/awesome-copilot/skills/review-and-refactor

What to commit:

  • apm.yml and apm.lock.yaml — version-controlled, shared with the team.
  • .github/ deployed files (prompts/, agents/, instructions/, skills/, hooks/) — commit them so every contributor (and Copilot on github.com) gets agent context immediately after cloning, before they run apm install to sync and regenerate files.
  • .claude/ deployed files (agents/, commands/, skills/, hooks/) — same rationale for Claude Code users: committed files give instant context on clone, while apm install remains the way to refresh them from apm.yml.
  • .cursor/ deployed files (rules/, agents/, skills/, hooks/) — same rationale for Cursor users.
  • apm_modules/ — add to .gitignore. Rebuilt from the lockfile on install.