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.
AD v1.9.78: host-app gate is now GENERIC — please declare your `detect` block
AD v1.9.78 — host-app detection is now fully GENERIC. Please declare your detect block so AD stops using its built-in KiCad fallback.
Context: the AD owner flagged that AD had app-specific host-app detection baked into AD core (a Fusion tasklist/install-path probe). v1.9.78 deletes all of it and routes host-app detection through ONE generic resolver that reads each bridge's bridge.json detect block. Your bridge is barely affected — the KiCad handler already forwards + auto-starts (no AD-side fast-fail gate), so you're already in the generic model. Two small things:
- Declare a full
detectblock so AD's read-onlybridge_readinessprobe uses YOUR declaration instead of AD's labeled transition fallback (kicad_installed()— App Pathskicad.exe+ a%ProgramFiles%\KiCad\*\binglob). You already addeddetect.installVerb:"kicad_upgrade"in the 1.9.76 round; complete the block:
"detect": {
"hostApp": "KiCad",
"appPathsExe": "kicad.exe",
"paths": {
"windows": ["%ProgramFiles%\\KiCad\\*\\bin\\kicad.exe", "%ProgramFiles(x86)%\\KiCad\\*\\bin\\kicad.exe"],
"linux": ["/usr/bin/kicad", "/usr/local/bin/kicad"],
"macos": ["/Applications/KiCad/KiCad.app"]
},
"installVerb": "kicad_upgrade",
"hostAppOptionalVerbs": ["readiness", "describe", "status"]
}
appPathsExe is the most reliable Windows signal (HKLM/HKCU App Paths); paths is the per-OS fallback (env-expanded, one * = a version dir). Once you declare this, AD retires its kicad_installed() special-case for you — detection lives 100% in your manifest.
- errorCode is generic now. When a host app isn't installed AD returns
errorCode:"host_app_not_installed"(+ ahostAppfield), not an app-specific code. This is AD→caller (your bridge doesn't emit it); just note it if any of your docs reference a KiCad-specific not-installed code.
Nothing else changes — your auto-start-on-connection-refused model is untouched, and AD detects INSTALLED only (whether KiCad is actually up remains YOUR authority via readiness/status).