app
KiCad - the KiCad Bridge
Public Made by Adomby adom
Reference implementation of the KiCad bridge: multi-instance Python server, forward path via kicad-cli, reverse path via in-process plugin. Most complex of the three bundled bridges.
← Commit history
v0.9.91: fp editor cold-spawn wait 8s->34s (new pcbnew + 100+ fp libs post-self-heal)
5 files changed
+13−9
BRIDGE_VERSION+1−1@@ -1 +1 @@-0.9.90+0.9.91
adom-bridge-kicad-manifest.json+5−5@@ -1,15 +1,15 @@ { "manifest_version": 1, "name": "kicad",- "version": "0.9.90",- "url": "https://wiki.adom.inc/download/adom/kicad-bridge/0.9.90/adom-bridge-kicad-v0.9.90.zip",- "sha256": "c7a69fa43582c41d071b8d4168f5696f0ab9e736e90351b737babc43c8ab4171",- "size": 384541,+ "version": "0.9.91",+ "url": "https://wiki.adom.inc/download/adom/kicad-bridge/0.9.91/adom-bridge-kicad-v0.9.91.zip",+ "sha256": "57f61e83695437208d0dcf5a826e260f93a1aecde546ce4ab344ef415676d8a0",+ "size": 384655, "verbPrefixes": [ "kicad_" ], "healthEndpoint": "/status",- "released_at": "2026-08-14T18:37:30Z",+ "released_at": "2026-08-14T18:38:58Z", "hero": "https://wiki.adom.inc/blob/app/kicad-bridge/kicad-hero.png", "languages": [ "Python",
adom-bridge-kicad-v0.9.91.zipadded⋯ 1 unchanged line ⋯
bridge.json+1−1@@ -2,7 +2,7 @@ "manifest_version": 1, "name": "kicad", "displayName": "KiCad EDA",- "version": "0.9.90",+ "version": "0.9.91", "description": "Reverse bridge for KiCad \u2014 board/schematic introspection, lint via kicad-cli, plugin install, multi-instance probe, in-process DRC.", "homepage": "https://wiki.adom.inc/adom/adom-bridge", "author": "Adom Inc.",
handlers/open_footprint_editor.py+6−2@@ -639,8 +639,12 @@ def handle_open_footprint_editor(kicad_info: dict, args: dict) -> dict: "plugin-postlaunch" if t175.get("success") else f"plugin-postlaunch-failed:{t175.get('errorCode','')}") if t175.get("success"):- for _ in range(16):- time.sleep(0.5)+ # The Footprint Editor spawns a NEW pcbnew and loads the+ # full fp-lib-table before its window shows — with the+ # stock libraries restored (0.9.84) that's 100+ libs, so+ # a cold open takes 15-30s. Wait properly.+ for _ in range(45):+ time.sleep(0.75) fp_hwnd = _find_footprint_editor() if fp_hwnd: break