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.96: 1.0.96: three more standard verbs answered fully: net_connections, remove_items and doc_params (standard 0.30.4).
- **kicad_net_connections:** every pad with its net and owner (U1.3) in mils. Per net it gives the span and the airline length: the minimum spanning tree over its pads, the shortest copper a router could need.
- **kicad_remove_items:** deletes free tracks, arcs and vias given by their geometry, exactly as kicad_routing_state reported them (the standard's y-up frame; frame:"kicad" for KiCad's own).
- One result per item: ok, or err:not found.
- An open board takes it as one Undo step; a closed board is written with a backup.
- expectedRevision is optional, and the live edit still refuses a board that changed while it was prepared.
- **kicad_doc_params:** parameters KiCad's title block has no field for (DrawnBy, DocumentNumber, ...) are now kept as the project's text variables, which the title block and any text show as ${Name}. The reply lists them all as params, with the standard's set and saved. Before, those parameters were reported as notStored.
1 file changed
+4−2
README.md+4−2@@ -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 (339, `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 (341, `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) @@ -477,7 +477,7 @@ Every verb of this build (339, `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** (156)+**Windows, editors, install and the bridge** (158) | Verb | What it does | |---|---|@@ -557,6 +557,7 @@ Every verb of this build (339, `kicad_describe` is the live catalog with inputs, | `kicad_list_versions` | Every KiCad install found (registry and standard folders) with bin dir, kicad-cli path and version. | | `kicad_log_tail` | New KiCad log output since a byte offset: what KiCad said about ITSELF (read-only). | | `kicad_menu_items` | List a KiCad window's menu bar items (path, id, accelerator), optionally filtered by a substring: what kicad_send_key {menu} and kicad_3d_view can fire. |+| `kicad_net_connections` | Every pad on the board with its net and owner (U1.3), and per net its span and airline length: the minimum spanning tree over its pads, the shortest copper a router could need (the standard's net_connections). | | `kicad_net_lengths` | Routed length of every net (or the ones named) by layer, with its vias; the skew inside each differential pair; and the spread of matched-length groups against a tolerance. | | `kicad_normalize_bodies` | Move each 3D model of a footprint library (or one footprint) onto its pad cluster when its body sits more than minShiftMm from the pads' centre, by its offset; models already on their pads are left alone. | | `kicad_open_3d_viewer` | Open the 3D board viewer for a .kicad_pcb. |@@ -584,6 +585,7 @@ Every verb of this build (339, `kicad_describe` is the live catalog with inputs, | `kicad_refresh_board_views` | Refresh the exact PCB editor and its already-open linked 3D viewer without focus or mouse. | | `kicad_remove_footprint` | Delete one footprint from a .pretty library (a library file, not a part on the board: that is kicad_remove_parts). | | `kicad_remove_graphics` | *standard* → `kicad_delete_graphics` |+| `kicad_remove_items` | Delete specific free tracks, arcs and vias given by their geometry, exactly as kicad_routing_state {model:"standard"} reported them, as one Undo step (the standard's remove_items). | | `kicad_remove_parts` | *standard* → `kicad_delete_footprint` | | `kicad_rename_footprint` | Rename a footprint in a .pretty library: the file and the name inside it. | | `kicad_rename_symbol` | Rename a symbol in a .kicad_sym (its units too); symbols that extend it follow the new name. |