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
server.py+22@@ -51,6 +51,12 @@ from handlers.bridge_client import handle_bridge_status, handle_bridge_call, han from handlers.launch import handle_launch from handlers.state import handle_state from handlers.uninstall import handle_uninstall+from handlers.netlist import (+ handle_extract_netlist,+ handle_trace_net,+ handle_find_connections,+ handle_analyze_connections,+) from handlers.kicad_cli_lint import ( handle_run_erc, handle_lint_board, handle_lint_schematic, handle_lint_library, handle_format_upgrade,@@ -382,6 +388,18 @@ _VERB_CATALOG = { "run_erc": {"summary": "Run ERC on a schematic via kicad-cli (read-only).", "long": False, "hint": "Absolute schematic path; runs kicad-cli ERC and returns violations.", "related": ["kicad_lint_schematic", "kicad_open_schematic", "kicad_run_drc"], "pitfalls": ["needs kicad-cli (KiCad >= 7)"]},+ "extract_netlist": {"summary": "Extract the full netlist from a schematic: every component and every net with its nodes (read-only, via kicad-cli).", "long": False,+ "hint": "Absolute .kicad_sch path. includeNodes:false returns net names/sizes only — use it first on big schematics.",+ "related": ["kicad_trace_net", "kicad_find_connections", "kicad_analyze_connections"], "pitfalls": ["needs kicad-cli (KiCad >= 7)", "hierarchical designs: pass the ROOT sheet"]},+ "trace_net": {"summary": "Every pin on one named net (read-only).", "long": False,+ "hint": "filePath + netName. A miss returns candidates instead of an empty success; unlabeled nets are auto-named like /Net-(R1-Pad1).",+ "related": ["kicad_extract_netlist", "kicad_find_connections"], "pitfalls": ["needs kicad-cli (KiCad >= 7)"]},+ "find_connections": {"summary": "Everything one component connects to, pin by pin, with peer pins per net (read-only).", "long": False,+ "hint": "filePath + reference (U1, R5). Pins absent from the answer are in no net.",+ "related": ["kicad_trace_net", "kicad_analyze_connections"], "pitfalls": ["needs kicad-cli (KiCad >= 7)"]},+ "analyze_connections": {"summary": "Connectivity overview: suspected-unconnected pins, power nets, highest-fanout nets/components (read-only).", "long": False,+ "hint": "Heuristic from the netlist alone; kicad_run_erc is the authoritative check and knows no-connect flags.",+ "related": ["kicad_extract_netlist", "kicad_run_erc"], "pitfalls": ["needs kicad-cli (KiCad >= 7)", "single-node nets can be intentional test points"]}, "lint_board": {"summary": "Lint a .kicad_pcb (DRC pre-check) via kicad-cli.", "long": False, "hint": "Fast DRC pre-check on a board file; use before opening in the GUI.", "related": ["kicad_run_drc", "kicad_open_board"], "pitfalls": ["needs kicad-cli (KiCad >= 7)"]},@@ -826,6 +844,10 @@ COMMAND_HANDLERS = { "rescan_libraries": _handle_rescan_libraries, # v1.7.12+: headless lint pre-checks via kicad-cli "run_erc": handle_run_erc,+ "extract_netlist": handle_extract_netlist,+ "trace_net": handle_trace_net,+ "find_connections": handle_find_connections,+ "analyze_connections": handle_analyze_connections, "lint_board": handle_lint_board, "lint_schematic": handle_lint_schematic, # v1.7.13+: library lint + file-format upgrade