KiCad - the KiCad Bridge
Public Made by Adomby adom
Drive your own KiCad from an AI, in the background: open every editor, read the whole board as data (the EDA Bridge Standard board model), stack-up, part heights, netlists, place, route, pour, DRC and exports.
Footprint Editor never opens from cold on KiCad 10: reverse-bridge plugin auto-install reports no_kicad_installed and never deploys
Footprint Editor never opens from cold on KiCad 10: the reverse-bridge plugin auto-install reports no_kicad_installed and never deploys
Live, on Colby-ROG2, 2026-08-19 (kicad-bridge 0.9.178, KiCad 10.0, ab relay): every kicad_show_footprint (and any footprint-editor open) fails when no board/pcbnew is already running, because the reverse-bridge plugin is never loaded. Root cause is a detection/caching bug in the plugin AUTO-install, and there is no working cold-start fallback. Symbol shows fine (it opens via a direct launch, no plugin dependency), so this is footprint-open specific.
This is what was blocking the wiki Quick Actions "Open in Footprint Editor" button (a user clicks it, accepts the ab prompts, KiCad flashes, then the verb errors and nothing opens).
The failing verb
kicad_show_footprint {"footprintName":"IN-S42ATR","library":"Adom"} ->
success: false
error: "Could not open the Footprint Editor via the background (plugin) path."
kicadVersionUsed: "10.0"
durationMs: ~23000-38000
pathwaysTried: [
"pcbnew-failed:plugin_not_running",
"plugin-failed:plugin_not_running",
"uia-not_invokable",
"plugin-postlaunch-no-plugin",
"icon_click_skipped_background_mode" // or "icon_click_failed" with allowCursorClick:true
]
Every tier fails on the same thing: no running KiCad has the reverse-bridge plugin loaded (plugin_not_running), and launching one post-hoc does not load it either (plugin-postlaunch-no-plugin).
Bug A (root cause): auto-install reports no_kicad_installed for a KiCad that IS installed
kicad_bridge_status {} ->
summary: { alive: 0, total: 0 }
plugins: []
pluginAutoInstall: {
errorCode: "no_kicad_installed",
summary: "no-kicad",
_hint: "Auto-install skipped because kicad_detect found zero KiCad installs.
Report this to the user; recommend installing KiCad ...",
triggered: true
}
So the AUTO-install path's kicad_detect finds zero KiCad installs and caches that (auto-install runs once per bridge boot). But KiCad 10.0 IS installed: the very same session's kicad_show_footprint reports kicadVersionUsed: "10.0" and launches it. So the launcher's detection and the plugin auto-install's kicad_detect disagree, and the plugin auto-install silently no-ops forever (until a bridge restart re-triggers the same failing detect).
Proof it is a DETECTION bug and not a real "no KiCad": the EXPLICIT verb detects it fine.
kicad_install_plugin {} -> succeeds, action: "installed", writes:
C:/Users/cknox/Documents/KiCad/10.0/3rdparty/Python311/site-packages/adom_bridge.py
C:/Users/cknox/Documents/KiCad/10.0/3rdparty/Python311/site-packages/usercustomize.py
C:/Users/cknox/Documents/KiCad/10.0/3rdparty/Python311/site-packages/adom_bridge_boot.{py,pth}
C:/Users/cknox/AppData/Roaming/kicad/10.0/scripting/plugins/adom_bridge_plugin.py
The explicit kicad_install_plugin finds KiCad 10.0 and deploys; the auto-install's kicad_detect does not. That mismatch (and the once-per-boot cache of the false negative) is the bug: on a machine with KiCad 10, the reverse bridge never comes up on its own, so every plugin-dependent verb (footprint open, kicad_open_editors, kicad_bridge_call) silently degrades or fails, and nothing tells the user why.
Bug B: footprint-open has no working fallback when the plugin is absent
Even after kicad_install_plugin succeeded, kicad_show_footprint still failed with the same pathwaysTried (the already-running KiCad instance, pid 39508, was launched before the deploy and will not load the plugin until closed + reopened, per kicad_install_plugin's own hint; and the verb's own post-launch attempt reports plugin-postlaunch-no-plugin). So from cold:
pcbnewtier: no pcbnew running ->plugin_not_runningplugintier: no process has the plugin ->plugin_not_runninguiatier:uia-not_invokable- post-launch: launches KiCad but the plugin is not present after ->
plugin-postlaunch-no-plugin - icon-click: skipped in background mode, and with
{"allowCursorClick":true}it ran but returnedicon_click_failed(KiCad 10 launcher icon detection)
Net: a user with no board open cannot open the Footprint Editor at all. The Symbol Editor path does not hit this because kicad_install_symbol opens its editor via a direct launch, not the plugin.
Asks
- (root) Make the plugin auto-install detect KiCad 10 the same way the launcher / the explicit
kicad_install_plugindoes, and do not cache a falseno_kicad_installedfor the whole bridge boot. When detection genuinely finds nothing, that is fine; the bug is a false negative on an installed KiCad 10 that then poisons every plugin-dependent verb silently. - Give footprint-open a reliable cold-start path that does not require the user to already have pcbnew + the plugin loaded (e.g. auto-open a board / launch pcbnew and wait for the plugin to come online, or fix the post-launch plugin load so
plugin-postlaunchactually finds it), or at minimum surfaceplugin_not_runningas an actionable "restart KiCad / run kicad_install_plugin" hint to the calling AI instead of a generic "could not open via the background path". - Related, already filed separately (the focus-guardian flicker + foreground-for-user-initiated-show): the wiki Quick Actions button is an explicit "show me," so once the plugin path works the show should surface the editor to the user rather than open it demoted behind their work.
Repro (verbatim)
kicad_bridge_status {}
kicad_show_footprint {"footprintName":"IN-S42ATR","library":"Adom"}
kicad_install_plugin {}
kicad_show_footprint {"footprintName":"IN-S42ATR","library":"Adom","allowCursorClick":true}
Filed from the wiki side (git-wiki Quick Actions) after driving the exact verb sequence through the ab relay. Happy to re-run anything against this machine.