apm plugin
Synopsis
Section titled “Synopsis”apm plugin init [PROJECT_NAME] [-y] [--target TARGETS] [-v]
# Exampleapm plugin init my-skill --yesDescription
Section titled “Description”apm plugin init scaffolds a publishable plugin in the current directory: a plugin.json manifest plus an apm.yml carrying a devDependencies block. The result is a working tree you can commit, tag, and reference from a marketplace.
apm plugin is the noun-verb home for plugin-author workflows, mirroring apm marketplace for marketplace-author verbs. Today it ships a single verb — apm plugin init. Sibling verbs live under the same namespace as they ship.
The two common repo shapes for plugin authors — single-plugin (one plugin per repo) and aggregator (one repo that ships a marketplace plus the plugins it indexes) — are not gated by flags. They emerge from composing apm plugin init and apm marketplace init in the same working tree.
Subcommands
Section titled “Subcommands”apm plugin init
Section titled “apm plugin init”Scaffold a plugin authoring project. Writes plugin.json and an apm.yml with a devDependencies block in the current directory (or under PROJECT_NAME/ if provided).
apm plugin initapm plugin init my-skill --yesapm plugin init my-skill --target copilot,claude --yes| Flag | Description |
|---|---|
PROJECT_NAME | Optional positional. If provided, scaffolds into a new subdirectory of that name; otherwise writes into the current directory. |
--yes, -y | Skip interactive prompts and use auto-detected defaults. |
--target | Comma-separated target list (e.g. copilot,claude,codex). Skips the target prompt and writes selections directly. |
--verbose, -v | Show detailed output. |
Migration from apm init --plugin
Section titled “Migration from apm init --plugin”If you’ve used apm init --plugin before, here’s the move: run apm plugin init instead. The generated files are byte-for-byte identical.
The legacy apm init --plugin flag still works and still produces the same output, but prints a deprecation warning on stderr:
[!] Deprecation: 'apm init --plugin' is deprecated. Use 'apm plugin init' instead. Legacy flag will be removed in v0.16.Migrate at your convenience before v0.16.
Examples
Section titled “Examples”Single-plugin repo
Section titled “Single-plugin repo”One repo, one plugin. Author publishes a git tag; consumers reference it as owner/repo@version.
mkdir my-skill && cd my-skillapm plugin init --yesgit init && git add . && git commit -m "init"git tag v0.1.0Aggregator repo
Section titled “Aggregator repo”One repo that ships a marketplace and the plugins it indexes side-by-side. Useful when you want one place to govern a small fleet of related plugins.
mkdir agents-hub && cd agents-hubapm marketplace init --yesapm plugin init review-bot --yesapm plugin init lint-bot --yesThe top-level apm.yml carries the marketplace authoring config; each plugin lives in its own subdirectory with its own plugin.json and apm.yml.
See also
Section titled “See also”apm marketplace— author and publish marketplaces that index your plugins.