app
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.
← Commit history
1.0.63: 1.0.63: the EDA Bridge Standard's shapes for the 47 verbs KiCad brought to the standard (standard 0.3.0). KiCad's own names and arguments keep working.
- **Standard names:** render_board_3d, remove_parts, edit_parts, align_parts, remove_graphics, read_footprint, export_library_part, create_part_project. kicad_edit_footprint with library arguments edits the library footprint (fp_edit), as the standard means it.
- **Standard arguments:**
- sheet and project paths;
- id/ids for KiCad's uuids;
- mm-named numbers;
- bomFields on IPC-2581;
- at and box on import_svg and copy_routing.
- **Lists are one write:** sch_connect_pins pairs, sch_bus_entry entries, sch_edit_label edits, sch_text texts and sch_junction add+remove run as one kicad_sch_batch. kicad_edit_parts takes `edits: [{ref, ...}]`, a different edit per part, in one undo step, live or on the file.
- **y up:** frame:"standard" on all 47. Sheet verbs answer y up too; sch_pins also answers one flat pins list.
- **estimate_cost** names its price source (the bridge's built-in JLCPCB-style rates; no check date is recorded) and lists prices per quantity.
- **create_part_project** refuses to overwrite an existing project unless overwrite:true.
- **kicad_describe** marks these verbs with standardShape.
- **The release script** now pushes only reference/kicad-<ver>.json to the standard, which standard-lane owns.
- **Battery:** phase 9 runs the standard shapes on a real KiCad.
1 file changed
+11−3
README.md+11−3@@ -257,7 +257,7 @@ viewer. This is how every 3D shot above exists. <!-- verbs:start (tools/readme_verbs.py writes this) --> -Every verb of this build (227, `kicad_describe` is the live catalog with inputs, hints and pitfalls). A name marked *standard* is the EDA Bridge Standard's name for the verb after the arrow.+Every verb of this build (235, `kicad_describe` is the live catalog with inputs, hints and pitfalls). A name marked *standard* is the EDA Bridge Standard's name for the verb after the arrow. **Board model and reads (EDA Bridge Standard)** (12) @@ -427,7 +427,7 @@ Every verb of this build (227, `kicad_describe` is the live catalog with inputs, | `kicad_set_design_rules` | Stage a fab's .kicad_dru next to a board and run DRC with it. | | `kicad_zone_state` | Read every zone on the live board with KiCad's filled copper area per layer and the coverage. | -**Checks, exports and manufacturing** (24)+**Checks, exports and manufacturing** (25) | Verb | What it does | |---|---|@@ -440,6 +440,7 @@ Every verb of this build (227, `kicad_describe` is the live catalog with inputs, | `kicad_export_gerber` | Export Gerbers AND Excellon drill files (plated and non-plated separate, with drill maps) from a board via kicad-cli: a complete fab set in one call. | | `kicad_export_ipc2581` | Export the board as IPC-2581 (one XML with copper, drill, stackup, netlist and BOM) via kicad-cli. | | `kicad_export_ipc356` | Export the IPC-D-356 netlist (bare-board electrical test) via kicad-cli. |+| `kicad_export_library_part` | *standard* → `kicad_export_part` | | `kicad_export_manufacturing` | *standard* → `kicad_export_fab_package` | | `kicad_export_molecule` | One-shot molecule export pack: STEP + silk renders + sch/pro discovery for the Adom molecule pipeline. | | `kicad_export_odb` | Export the board as ODB++ via kicad-cli (zip by default). |@@ -465,12 +466,13 @@ Every verb of this build (227, `kicad_describe` is the live catalog with inputs, | `kicad_project_rename` | Rename a project: the .kicad_pro, root .kicad_sch, .kicad_pcb, .kicad_prl (and .kicad_dru, backups folder), with the references inside updated (project file entries, every schematic's instance headers, the board's sheet references and title). Refused while KiCad has the project open. | | `kicad_project_snapshot` | Timestamped copy of the project's files into <project>/snapshots/<stamp>[-label]/, plus schematic and board PDFs made with kicad-cli. | -**Windows, editors, install and the bridge** (56)+**Windows, editors, install and the bridge** (63) | Verb | What it does | |---|---| | `kicad_3d_view` | Drive the 3D Viewer without the mouse: zoom, rotate, view orientation, flip, or a scripted tour; menu commands posted to the viewer in the background. | | `kicad_3d_viewer_settings` | Read or set the 3D viewer's model-visibility toggles (SMD, through-hole, virtual, not-in-POS, DNP) that can hide every chip body. |+| `kicad_align_parts` | *standard* → `kicad_align_footprints` | | `kicad_analyze_connections` | Connectivity overview: suspected-unconnected pins, power nets, highest-fanout nets/components (read-only). | | `kicad_bridge_call` | Retired: there is no in-KiCad plugin to call. Use the verb that does the job directly. | | `kicad_bridge_status` | Retired: the in-KiCad Python plugin (reverse bridge) is not part of the native bridge. Reports that, plus what replaced each of its jobs. |@@ -480,10 +482,12 @@ Every verb of this build (227, `kicad_describe` is the live catalog with inputs, | `kicad_close_3d_viewer` | Close the 3D viewer window. | | `kicad_close_footprint_editor` | Close the Footprint Editor window. | | `kicad_close_symbol_editor` | Close the Symbol Editor window. |+| `kicad_create_part_project` | *standard* → `kicad_make_part_project` | | `kicad_demo` | Six-beat KiCad showcase tour: staged, or a background job with structured progress (percent/ETA), an ab demo-panel remote, captions, narration, per-beat verification and a kicad_state final payload. | | `kicad_describe` | List every verb with input, example, hint, related verbs and pitfalls. | | `kicad_diagnostics` | Environment the bridge runs in: user, paths, env vars that matter, KiCad config dir. | | `kicad_dismiss_dialogs` | Programmatically expire KiCad dialogs (auto-clears the benign OpenGL/software-render notice; {all:true} clears every dialog). |+| `kicad_edit_parts` | *standard* → `kicad_edit_footprint` | | `kicad_enable_software_opengl` | LAST-RESORT fallback: deploy Mesa llvmpipe software OpenGL into KiCad's bin so it renders on a GPU-less host (Hyper-V/RDP/headless). SLOW (CPU). Never suggest proactively. | | `kicad_extract_netlist` | Extract the full netlist from a schematic: every component and every net with its nodes (read-only, via kicad-cli). | | `kicad_find_connections` | Everything one component connects to, pin by pin, with peer pins per net (read-only). |@@ -504,8 +508,12 @@ Every verb of this build (227, `kicad_describe` is the live catalog with inputs, | `kicad_plugin_diagnose` | Retired: reports that no plugin is expected and whether a leftover Python plugin payload is still on disk. | | `kicad_prewarm` | Get this machine ready for a fast first KiCad call: detect KiCad, seed its first-run config, mark its setup wizard done, repair its taskbar shortcuts. Idempotent. | | `kicad_progress` | What this bridge is doing RIGHT NOW: one progress block per in-flight phase for THIS caller (stepLabel, percent, etaSec, confidence, blockedBy, stepShot), plus the machine's timing history. |+| `kicad_read_footprint` | *standard* → `kicad_fp_info` | | `kicad_readiness` | Is KiCad installed and usable here; if not, the three alternatives (service-kicad, kicad-cli in your container, another box). | | `kicad_refresh_board_views` | Refresh the exact PCB editor and its already-open linked 3D viewer without focus or mouse. |+| `kicad_remove_graphics` | *standard* → `kicad_delete_graphics` |+| `kicad_remove_parts` | *standard* → `kicad_delete_footprint` |+| `kicad_render_board_3d` | *standard* → `kicad_render_board` | | `kicad_screenshot_all` | Screenshot every open KiCad window. | | `kicad_send_key` | Send a key to KiCad, or fire a menu item by label; chords and menu labels resolve to menu commands (background) | | `kicad_set_settings` | Change bridge settings; applies immediately (e.g. overlay badges stamped/cleared on live windows). |