Getting Started
Build and install your first AMC plugin in under five minutes.
Prerequisites
- Node.js v18 or later
- Agent Mission Control installed and running
- A terminal (PowerShell, bash, zsh)
Install the CLI
Install the AMC Plugin CLI globally:
npm install -g @agent-mc/plugin-cliVerify the installation:
amc-plugin --version
# 1.0.0Scaffold a New Plugin
Run amc-plugin create with a kebab-case name:
amc-plugin create my-pluginThe CLI walks you through an interactive prompt:
? Display name: My Plugin
? Description: An AMC plugin
? Author: Your Name
? Category: other
? Lucide icon name: puzzle
Scaffolding my-plugin with template: basic...
Installing dependencies...
added 2 packages in 3s
Plugin scaffolded at ./my-plugin/
Next steps:
cd my-plugin
npm run build
npm run devTemplates
Choose a template with the -t flag:
| Template | What you get |
|---|---|
basic (default) | UI only (src/ui/) |
with-backend | UI + backend (src/backend/) with storage permission |
full | UI + backend + cron job + CLI endpoint with storage, cron, and cli permissions |
# Scaffold with a backend
amc-plugin create my-tool -t with-backend
# Scaffold with everything
amc-plugin create my-suite -t fullYou can also skip the interactive prompts entirely:
amc-plugin create my-plugin \
-t basic \
--display-name "My Plugin" \
--description "Does something useful" \
--author "Your Name" \
--category development \
--icon wrenchExplore the Generated Files
After scaffolding, your plugin directory looks like this:
my-plugin/
manifest.json # Plugin metadata, settings, permissions
package.json # npm dependencies and scripts
tsconfig.json # TypeScript configuration
.gitignore # Ignores node_modules/, dist/, *.amcplugin
src/
ui/
index.html # Plugin UI entry point
plugin.ts # TypeScript for the UITIP
See Project Structure for a detailed breakdown of every file.
Build
Compile TypeScript and copy non-TS assets (HTML, CSS, images) into dist/:
cd my-plugin
npm run buildExpected output:
Manifest validated
Compiling TypeScript...
Build completeThe build command does three things:
- Validates
manifest.jsonagainst the SDK schema - Runs
tscto compile TypeScript intodist/ - Copies non-TypeScript files from
src/ui/intodist/ui/(HTML, CSS, images)
Validate
Run validation checks without producing build output. Useful for CI pipelines:
npx amc-plugin validateExpected output:
PASS: Manifest schema
PASS: SDK version declared (^1.0.0)
PASS: UI entry point exists
PASS: TypeScript compilation
All checks PASSEDWARNING
The validate command also scans compiled output for banned imports (electron, child_process, better-sqlite3, node:worker_threads). Plugins run in a sandboxed worker and cannot access these modules directly.
Package
Bundle your plugin into a .amcplugin archive:
npx amc-plugin packageExpected output:
Packaged: my-plugin-1.0.0.amcplugin (0.01 MB)If dist/ does not exist, the package command builds automatically before packaging.
The archive contains:
manifest.jsondist/(compiled output)assets/(if present)
WARNING
The marketplace enforces a 50 MB package size limit. The CLI warns you if your archive exceeds this.
Install in AMC
- Open Agent Mission Control
- Go to Settings > Plugins
- Click Install from file
- Select your
.amcpluginfile - The plugin appears in the sidebar
Your plugin is now running inside AMC. Open it from the sidebar to see your UI.
Next Steps
- Project Structure -- understand every file in your plugin
- Manifest -- configure settings, permissions, storage, cron, and CLI endpoints
- Permissions -- learn what each permission grants
- Dev Shell -- develop with hot-reload outside AMC
- Publishing -- submit your plugin to the AMC Marketplace