Public command
plugin
Installs and inspects bundled KiCad IPC plugin packages.
Usage
kicad-cruncher plugin list-targets
kicad-cruncher plugin install --dry-run
kicad-cruncher plugin install --enable-api
kicad-cruncher plugin status
kicad-cruncher plugin uninstall --dry-runArguments
Subcommands accept --plugins-dir and --kicad-version to target one KiCad user plugin folder. install also accepts --dry-run, --create-default, --best-effort, --enable-api, --skip-api-setup, and --python-interpreter. The default bundled plugin package is kicad-cruncher-tools.
Output
The command prints discovered target directories, installed/uninstalled plugin paths, post-install KiCad IPC plugin discovery notes, and KiCad IPC API preference diagnostics. When --enable-api is passed without --python-interpreter, the installer looks for a matching local KiCad install and uses that install's bundled Python interpreter when available. Installed plugin files are copied from the public package into the user KiCad plugin directory. The bundled kicad-cruncher-tools action resolves the daemon URL from KICAD_CRUNCHER_DAEMON_URL, then the local daemon state file, then the default 127.0.0.1:8765; state-file URLs must be loopback HTTP URLs. The action health-checks the local daemon, starts it for loopback URLs when needed, and opens the daemon tool center. Cleanup planning and apply are driven from the daemon UI instead of happening as a toolbar-click side effect. Live-board mutation remains reserved for an explicit apply path, where the plugin-side adapter applies daemon mutation requests through KiCad IPC commit, update, push, and drop operations.
Roadmap
Active deferred plugin obligations are tracked in docs/plugin/requirements/. The remaining gates are live validation of direct-file web UI apply on copied boards, live KiCad editor apply through the daemon mutation request path, packaged daemon auto-start on a normal workstation install, and future footprint-local HLR preview/apply flows. The plugin remains a thin adapter; durable behavior belongs in shared command logic and daemon request contracts.
Tests
L0 verifies command registration, help, explicit-target list/install/status/uninstall behavior, status detection through the plugin manifest identifier, and API preference updates against temporary KiCad config/install roots. L3 verifies installer package-data copying, copy filters, daemon command inventory, daemon-state discovery, plugin-mode PCB clean routing contract, and mocked KiCad IPC apply-adapter behavior.