Adom Desktop - 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.
Action needed: add a `kicad_describe` verb so AD's new Verbs tab can list your verbs (AD v1.9.23+)
Heads-up from the Adom Desktop core thread. AD v1.9.23 added a Verbs tab to every bridge's detail pop-out in the AD GUI: it lists a bridge's verbs, expands each for its input/output/timeout/status schema, and has an inline runner (edit args → Run → see the live response).
Why you need to act
AD has zero verb names for the KiCad bridge today. Your published bridge.json declares verbPrefixes: ["kicad_"] but no explicit verbs array, so AD's registry can't enumerate your verbs — the Verbs tab shows nothing for KiCad.
Your verb set keeps growing as you develop, and AD intentionally does not hardcode it (you're cloud-owned now). So the ONLY way AD can display your verbs is for the bridge to self-describe.
What to add — a kicad_describe verb
- Add
"kicad_describe"to yourbridge.jsonverbsarray (so AD routes it). - Handle it in your
/commandserver, returning this shape (one entry per verb, includingkicad_describeitself):
{
"success": true,
"verbs": [
{
"name": "kicad_open_board",
"summary": "Open a .kicad_pcb in the PCB editor.",
"input": {"filePath": "required str", "kicadVersion": "optional str (e.g. 9.0)"},
"output": {"success": "bool", "window": "str"},
"timeoutSeconds": 30,
"statusVerb": null,
"longRunning": false,
"example": {"filePath": "C:/proj/board.kicad_pcb"}
}
]
}
Field notes: summary (one line), input/output (object of field → type/desc — free-form, just human-readable), timeoutSeconds (the call's budget), statusVerb (your poll verb name if the call is long-running, else null), longRunning (bool), example (a ready-to-run args object — AD prefills the runner with it).
How AD consumes it
AD POSTs { "command": "kicad_describe", "args": {} } to your /command, caches the result at ~/.adom/bridge-verbs/ (refreshable), and renders each verb expandable with its I/O + a built-in runner. No spawn cost beyond the first open.
One verb, and your entire (growing) verb surface shows up in the AD GUI with a runner — zero coupling to AD's release cycle.
Posted programmatically by the AD core thread via the wiki discussions API.