CLI
Commands
Shared option groups
Source commands — build, prepack, validate, eval:
Artifact commands — mcp list, mcp invoke, mcp run, hooks list, hooks simulate:
the same --root, --config, --mode, and --json, plus --artifact <path> to use exactly
one built artifact and --target <target> to select the artifact target. --target is
required for mcp list, mcp invoke, mcp run, and hooks simulate.
dev
dev runs in the foreground and closes the session on a termination signal. See
Developer Workbench.
dev proxy
The proxy inherits --root from the parent dev command and writes diagnostics to stderr.
build and prepack
Both take the source option group plus:
Both build package outputs when the project declares bin or lib.
install
The emitted standalone install.mjs and the package-relative installer bin accept the same
--replace. Cursor copies carry an install receipt (.agent-bundle-install.json), replacement
touches owned files only, and --replace adopts a pre-receipt copy; Claude replacement runs
claude plugin uninstall --keep-data before reinstalling and Codex runs codex plugin remove
before add.
doctor
Doctor exits 1 when it reports any error diagnostic, and never modifies anything. With --from,
it reports the installed copy per host as current, stale (same version, different content —
AB7308), version-mismatch (AB7309), foreign (AB7321), or not-installed (AB7307). For
Cursor it also proves plugin-scoped hook registration from the installed manifest (AB7322), warns
when ~/.cursor/hooks.json would deliver a plugin hook a second time (AB7323), and tracks a
staged marketplace from unregistered to registered once Cursor imports it (AB7324).
validate
eval
eval compare <baseline> <candidate> takes two persisted run ids and inherits the source options
from eval.
inspect
inspect takes --root, --config, --mode, --json, and a single --target <target> filter
(not repeatable), plus at most one focus flag:
Passing more than one focus is an error. inspect exits 1 when the normalized model is invalid.
Every inspection plan reports each component with its canonical kind — agent, cli, command,
event-route, hook, lsp, mcp-app, mcp-server, native-diagnostics, native-extension,
rule, script, skill (AgentComponentKind from agent-bundle/api) — as selected or
skipped with its cause, plus a kinds matrix: one entry per kind with the target's own four-state
capability judgment and selected/omitted counts. The human output prints one line per target,
each omission and its reason, then kinds this host cannot emit:. Filesystem src/events routes
report as event-route, judged by the host's event:<canonical event> row, not as hook.
mcp
mcp list requires --server <server>. mcp invoke requires --server and --tool <tool>, and
takes exactly one of --input <json> or --input-file <path>; the parsed value must be a JSON
object, not an array or scalar.
mcp run requires --server and runs one stdio server in the foreground with inherited stdio:
Because the server owns the JSON-RPC channel for the whole foreground run, mcp run writes
nothing of its own to stdout. See Runtime environment for the
.env precedence rules and what the plugin-root anchor changes.
hooks
hooks list reports the hooks in an artifact. hooks simulate requires --hook <hook> (an id or
a name) and the same --input / --input-file pair as mcp invoke.
Exit codes
An eval run exits 1 when any trial fails or is inconclusive — an inconclusive trial produced
no evidence, so it cannot report success either.