master
Download ZIP Propose a change
Name Last commit message Last updated
.github issue #10: rebase retired wiki-ufypy5dpx93o.adom.cloud -> wiki.adom.inc (CONTRIBUTING x2, CI workflow, page.json readme… · John Lauer 3mo ago
certs Update 40 file(s) · John Lauer 2mo ago
dashboard Publish 1.0.152 · John Lauer 1mo ago
demo ESC routing to 100%: the place-route loop (smaller signal vias, 13 parts moved, 114 commits, 0 unconnected), kicad-plac… · John Lauer 1mo ago
dev-skills Update 2 file(s) · John Lauer 2mo ago
docs Delete docs/linux.md · Colby Knox 8d ago
handlers Product name out of hints, examples and docs (wiki #118); skills package 1.0.152 · John Lauer 1mo ago
parsers 0.9.340: Live routing verbs through KiCad's IPC API (routing_state, route_net, remove_route, routing_validate), offline… · John Lauer 2mo ago
pcm pcm: sample library 1.2.0 for the headless update proof · John Lauer 1mo ago
plugin_payload Update 40 file(s) · John Lauer 2mo ago
publish-skills Add dev-skills + publish-skills (SDK 3-skill set; source-only, not in the user pkg) · John Lauer 4mo ago
resources 0.9.333: Tour: every beat in two parts (A loads the window with its own line, B starts once verified with the explainin… · John Lauer 2mo ago
rust Merge PR #454: 1.0.107: kicad_move_footprint refuses unknown arguments (PR #70) without refusing real calls · Colby Knox 2d ago
screenshots hero: regenerated into the shared dock family style (adom/hydrogen#48); showcase.png is the exact source image so the h… · John Lauer 1mo ago
skills Merge PR #399: 1.0.100: update_pcb sets every reference (closes #138); the verbs ruled on standard #29 · Colby Knox 8d ago
staging staging: 1.0.61 signed · John Lauer 14d ago
templates v0.9.8 place_footprint · John Lauer 4mo ago
tests 0.9.350 notes and the model check tests · John Lauer 2mo ago
tools Restore 25 files to their state before PR #61: the wiki's pr revert left them truncated to the diff's context · Colby Knox 8d ago
tour Delete tour/bridge_client.py · John Lauer 2mo ago
tour-pack Merge PR #326: kicad-lane: 1.0.76, fanout conflicts, engine 0.10.0, tour template (#136) · Colby Knox 13d ago
tour-pack-rp2040 Ship the rp2040 tour-pack template board/schematic/project the verb-test runner needs (issue #78) · John Lauer 2mo ago
3d-viewer.png docs: window-tour screenshots captured on ADOMBASELINE (Mesa software-OpenGL fallback) · John Lauer 4mo ago
adom_library.py 0.9.341: Release-day fixes: stock library path resolution (#80), screenshot_all sizeKB (#81), readiness re-detect (#82)… · John Lauer 2mo ago
adom-5parts-demo.mp4 Demo (for review): 5 NEW basic parts (47R, 10nF, green/yellow/blue LEDs) into KiCad on ConfRoomROG (RTX GPU) — symbols,… · John Lauer 4mo ago
adom-bridge-kicad-manifest-macos.json mac manifest -> adom/kicad-bridge-macos 2.0.0 (mac line moved to its own page) · Kyle Bergstedt 1d ago
adom-bridge-kicad-manifest.json promote 1.0.107 to public: PR #70 + #72: kicad_move_footprint refuses unknown arguments (rot -> rotation) while real ca… · Colby Knox 2d ago
adom-bridge-kicad-source.tar.gz Migrate asset from Helium wiki · Kyle Bergstedt 5mo ago
adom-bridge-kicad-v0.9.100.zip v0.9.100: background audit fixes — demo worker thread arms its own full-duration focus guardian (dispatcher's 45s expir… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.101.zip v0.9.101: PREVENTION guardian (WS_EX_NOACTIVATE on offenders, cleared on last-guard/bring_to_user/close); quiet_console… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.102.zip v0.9.102: guardian pre-suppresses ALL visible KiCad windows (0.5s sweep) — closes the free-first-steal hole the 0.9.101… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.103.zip v0.9.103: end-of-verb restore is KiCad-conditional — never re-raise the start-of-verb snapshot over a window the user h… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.104.zip v0.9.104 FINAL background design (John): guardian touches ONLY KiCad windows — minimize-bounce the offender (OS returns… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.105.zip v0.9.105: every forced foreground announces itself first — ab notify_user caption (attributed to the calling thread) fi… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.106.zip v0.9.106: chords resolve via the menu-bar accelerator table -> WM_COMMAND (background); Alt+3 keystroke fallbacks delet… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.107.zip v0.9.107: kicad_install_footprint gains model (3D .step/.wrl, base64) -> installs to 3dmodels/Adom + wires the footprin… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.108.zip v0.9.108: kicad_make_part_project (generate pro/sch/pcb around an installed part, for the Web Control per-part surfaces… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.109.zip v0.9.109: kicad_export_part (one-off single-part library exports: symbol-only .kicad_sym, footprint-only .pretty, bare… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.110.zip v0.9.110: pure-stdlib PNG encoder for screenshots - ab's managed runtime ships no PIL, so fresh boxes captured only .bm… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.111.zip v0.9.111: faulthandler at boot (issue #27) - native crash now dumps all thread stacks to stderr, which ab 2.0.44+ captu… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.112.zip v0.9.112: single-component demo projects (John: extra components on a one-part demo board just confuse the user) - the… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.113.zip v0.9.113: always-on focus sentinel (John saw late self-raises land in the foreground after per-verb guards expired) - b… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.114.zip v0.9.114: sentinel exemption for sanctioned foregrounds (bring_to_user / announce_foreground set expect_foreground so t… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.115.zip v0.9.115: sentinel bless test fixed - 'recent input' wrongly blessed self-raises while the user typed in ANOTHER app (c… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.116.zip v0.9.116: proactive KiCad update nudge - throttled (24h) async check, surfaced as kicadUpdate{installed,latest,_hint} o… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.117.zip v0.9.117: update-nudge attachment moved to the HTTP funnel (readiness/bridge_status return via early dispatch paths and… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.118.zip v0.9.118: nudge hint copy edit · John Lauer 2mo ago
adom-bridge-kicad-v0.9.119.zip v0.9.119: point-release version blindness fixed in ALL THREE places - detection ranks installs by probed kicad-cli X.Y.… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.120.zip v0.9.120: per-step screenshot evidence streamed to the demo caller (#25 web-control contract) - stepShot{step,title,ima… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.121.zip v0.9.121: stepShot capture keys off the beat's window field (title is the display label, not a window title - 0.9.120's… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.122.zip v0.9.122: background demo beats sweep modal dialogs before retrying (staged calls get the dispatcher's sweep, the job t… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.123.zip v0.9.123: failed demo beats now report failReason (handler success/error/output) in the result and log raw to stderr -… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.124.zip v0.9.124: symbol-editor appearance wait 6s -> 30s with WM_COMMAND repost at 10s (cold 10.0.5 PM races the demo job's ba… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.125.zip v0.9.125: PM menu command ids resolved by menu walk, not hardcoded (10.0.5 renumbered 20011/20013 - beats 1-3 fired WM_… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.126.zip v0.9.126: find_menu_command returns (id,label) - 0.9.125 passed the tuple into PostMessageW (ctypes ArgumentError kille… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.127.zip v0.9.127: symbol-editor tier 1 waits up to 15s for the plugin to bind on a fresh PM - on 10.0.5 the in-process plugin p… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.128.zip v0.9.128: tier 1 falls through on NO-WINDOW, not just on post-failure - a stale eeschema menu id posts 'successfully' w… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.129.zip v0.9.129: PM plugin bind-wait 15s -> 45s (KiCad starts the PM's embedded Python lazily; a fresh 10.0.5 PM takes 30-45s… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.130.zip v0.9.130: demo beats reordered (design file-opens first, plugin-dependent part beats after) - KiCad starts each process… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.131.zip v0.9.131: John's foreground contract - NO foreground without foregroundReason (refused otherwise), every sanctioned for… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.132.zip v0.9.132: every window-spawning response now declares openedInBackground:true + _foregroundHint (how to foreground: for… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.133.zip v0.9.133: #31 root cause - stale discovery files at scale poisoned plugin resolution; dead-pid files are now skipped AN… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.134.zip v0.9.134: menu ids resolved LIVE via the plugin's get_menu_ids (10.0.5 renumbered eeschema 20390->20391); demo warm lau… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.135.zip v0.9.135: board3d beat waits for the PCB editor to be findable before invoking the 3D viewer (mid-transition race made… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.136.zip v0.9.136: kicad_state.userIdleSeconds - the presence gate for automation (John was actively working when a window-spawn… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.137.zip v0.9.137: event-driven focus enforcement (SetWinEventHook on SHOW/FOREGROUND) - during bridge work a KiCad window is su… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.138.zip v0.9.138: off-screen parking (John's design) - the SHOW hook teleports new KiCad windows to -32000,-32000 before first… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.139.zip v0.9.139: parking engages DURING handlers - windows are created before guards arm, so the dispatcher now marks GUI-verb… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.140.zip v0.9.140: hook diagnostics (armed + per-event stderr) + SetWinEventHook restype · John Lauer 2mo ago
adom-bridge-kicad-v0.9.141.zip v0.9.141: 50ms parking sweep (deterministic) - baselines existing windows at verb start, parks anything newer off-scree… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.142.zip v0.9.142: re-park - KiCad applies saved geometry late in init and moved itself back on-screen after the early park; the… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.143.zip v0.9.143: SetWindowPlacement-based parking - SetWindowPos cannot move a MAXIMIZED window (the silent no-op); park demot… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.144.zip v0.9.144: focusDebug introspection in kicad_state (sweep/hook/sentinel liveness, inflight/guard counters, parked/baseli… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.145.zip v0.9.145: bridge-created windows stay bridge-created across verbs (rebaselining adopted the previous verb's window as t… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.146.zip v0.9.146: parking instrumentation (attempts, last error, sweep ticks, bridge-window count in focusDebug) · John Lauer 2mo ago
adom-bridge-kicad-v0.9.147.zip v0.9.147: guardian arms for EVERY spawn verb (was gated on a captured user foreground that can be None) - closes the un… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.148.zip v0.9.148: guardian arms without an hwnd (the vestigial not-hwnd early-return silently disabled ALL post-verb guards whe… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.149.zip v0.9.149: fight escalation - a window reasserting its geometry (eeschema mid-load) gets minimized-no-activate after 4 r… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.150.zip v0.9.150: park = minimize-no-activate from first sighting (hwnd churn during eeschema load reset the fight threshold an… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.151.zip v0.9.151: taskbar icon repair - minimize-parking froze windows into the taskbar before KiCad assigned their icon (blank… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.152.zip v0.9.152: Adom overlay badges on bridge-driven KiCad taskbar buttons (ITaskbarList3, pup pattern) + kicad_get_settings/… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.153.zip v0.9.153: overlay badges survive bridge restarts (rebadge ALL live KiCad windows at boot + on setting flip, not just _b… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.154.zip v0.9.154: overlay badges via AD desktop_taskbar (in-process ITaskbarList3 is a no-op cross-process, pup/fusion lesson);… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.155.zip v0.9.155 EMERGENCY: ownership ledger - the bridge only parks/bounces/badges windows from process trees it spawned; user… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.156.zip v0.9.156: geometry-poison prevention (unpark before close verbs, atexit unpark, boot heal of off-screen-stranded window… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.157.zip v0.9.157: session sanitize - bridge projects are scrubbed from KiCad restore-on-launch (kicad.json system.open_projects… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.158.zip v0.9.158: start the parking sweep at boot - the 60s session-sanitize retry (and parked-window defense) armed only on th… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.159.zip v0.9.159: every verb response now carries bridgeVersion (it only ever reached /health, so no caller could ask which bri… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.160.zip v0.9.160: THE taskbar-icon root cause - WS_EX_NOACTIVATE removes a window from the taskbar by design, so backgrounded w… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.161.zip v0.9.161: THE 'weird' root cause - the park baseline excluded bridge-created windows, so an already-open KiCad got re-p… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.162.zip v0.9.162: ROOT CAUSE + fix for the 10.0.5 plugin bind regression (#31) - KiCad 10.0.5 GUI processes no longer run site.… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.163.zip v0.9.163: deploy the plugin loader to the interpreter's REAL user-site too (10.0.5 reports the default %APPDATA%/Python… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.164.zip v0.9.164: heal window usability by INSPECTION - a window suppressed by an earlier bridge process was unknown to the new… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.165.zip v0.9.165 HOTFIX: boot maintenance ran BEFORE the port bind and SetWindowLongPtr blocks forever against a hung KiCad, so… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.166.zip v0.9.166: #31 - load the reverse bridge from KiCad's scripting/plugins dir, the hook that still fires on 10.0.5 (verifi… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.167.zip v0.9.167: the already-current short-circuit skipped 0.9.166's new plugin-dir loader entirely; the up-to-date check now… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.168.zip v0.9.168: the plugin-dir loader guarded with an ENV VAR, which children inherit - so after one KiCad process ran it, ev… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.169.zip v0.9.169: the install gate compared only EXISTENCE of generated loaders, so 0.9.168's rewritten loader never shipped to… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.170.zip v0.9.170: defer the plugin start - KiCad scans its plugin dir before sys.path is complete (inline import died on 'No mo… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.171.zip v0.9.171: the live menu-id resolver only understood frames[].menus[], but get_menu_ids returns a FLAT list on 10.0.5 pc… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.172.zip v0.9.172: THE IDLE RULE - never bounce a KiCad foreground when no verb or guard is running, so a taskbar click always w… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.173.zip v0.9.173: a click is a GOAL - the footprint/3D-chip surfaces now bind the plugin themselves (open a board in the backgr… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.174.zip v0.9.174: the footprint tier waited 6s for a window that needs 10-30s on a cold pcbnew, so it declared failure while th… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.175.zip v0.9.175: STOP FIGHTING KiCad's geometry - after 3 rounds concede the position and just keep the window behind and unfo… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.176.zip v0.9.176: implements #32 - measured progress on every slow verb, rolling per-machine history (p50/p90, cold vs warm), h… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.177.zip v0.9.177 HOTFIX: 0.9.176 defined the progress phase map INSIDE the dispatcher after its first use, so every verb raised… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.178.zip v0.9.178: report progress for every instrumented verb, not only runs over 3s - a fast warm run is exactly the cold-vs-w… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.179.zip v0.9.179: fixes wiki issue #33 - the focus GUARDIAN demoted a self-raising window on every 100ms tick with no debounce… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.180.zip v0.9.180: NEVER blip. Remove the minimize-bounce and off-screen parking entirely - both are visible frames by construct… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.181.zip v0.9.181: backgrounding is now ONE SetWindowPos to the bottom, once per window, only if that window took the foreground… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.182.zip v0.9.182: deterministic user-intent detection (WH_MOUSE_LL + WH_KEYBOARD_LL - a taskbar click or alt-tab can no longer… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.183.zip v0.9.183 URGENT: 0.9.182's low-level mouse hook did window lookups and SetWindowLongPtr INSIDE the system input path, w… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.184.zip v0.9.184: REMOVE the machine-wide input hooks added in 0.9.182. They degraded the user's cursor and cost him four reboo… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.185.zip v0.9.185: background the project manager too (a spawned window that appears after the verb returned is still ours, for… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.186.zip v0.9.186: closes #34 Bug B - the cold footprint path no longer requires the user to already have a board; if the machin… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.187.zip v0.9.187: #34 - the loader started an RPC server inside the bridge's OWN short-lived python probes (exeName python, ali… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.188.zip v0.9.188: closes #37 - symbol extraction required leading whitespace, so a valid .kicad_sym with its top-level symbol a… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.189.zip v0.9.189: new kicad_plugin_diagnose - one read-only call that answers 'why is the reverse bridge not loading' with a ve… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.190.zip v0.9.190: THE #34 ROOT CAUSE, and it was mine - a dedupe edit stripped 'import sys' from inside the GENERATED loader's… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.191.zip v0.9.191: SDK #38 canonical response contract - windowEtiquette enum replaces openedInBackground, errorCode foreground_… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.61.zip v0.9.61: kicad_export_molecule — one-shot molecule export pack (STEP + silk renders + sch/pro discovery + container nex… · John Lauer 3mo ago
adom-bridge-kicad-v0.9.62.zip v0.9.62: SLIM runtime zip — drop skills/, demo/, docs, hero fonts and all images from the AD-bundled bridge (488.9->335… · John Lauer 3mo ago
adom-bridge-kicad-v0.9.63.zip v0.9.63: warm BOTH eeschema and pcbnew — Symbol Editor lives in eeschema, Footprint Editor in pcbnew · John Lauer 3mo ago
adom-bridge-kicad-v0.9.64.zip v0.9.64: NEVER steal the user's screen. navigate_symbol.ps1 rewritten to UIA ValuePattern + PostMessage (was foreground… · John Lauer 3mo ago
adom-bridge-kicad-v0.9.65.zip v0.9.65: align kicad_demo to the fusion_demo contract (stage/done/narrate/screenshots/steps), capture its own screensho… · John Lauer 3mo ago
adom-bridge-kicad-v0.9.66.zip issue #9: watcher description no longer points at AD's removed Settings->KiCad panel · John Lauer 3mo ago
adom-bridge-kicad-v0.9.67.zip issues #12/#13: capture + log the X-Adom-Caller-* identity per verb; caller_identity module with forward_headers()/ad_c… · John Lauer 3mo ago
adom-bridge-kicad-v0.9.68.zip v0.9.68: #12.3 window labeling finds the editor window by title (no hwnd threading) so it fires for every open verb · John Lauer 3mo ago
adom-bridge-kicad-v0.9.69.zip v0.9.69: FIX caller identity read — AD delivers it in args.caller.aiThread (--ai-thread flag), not X-Adom-Caller-* head… · John Lauer 3mo ago
adom-bridge-kicad-v0.9.70.zip v0.9.70 (issue #15): rename cut-over — updateManifestUrl/docs/homepage/hero + mesa URL to the kicad-bridge slug; Adom D… · John Lauer 3mo ago
adom-bridge-kicad-v0.9.71.zip v0.9.71: live-verify fixes — demo/export_molecule join the dispatcher focus sets (windows were landing ON TOP of the us… · John Lauer 3mo ago
adom-bridge-kicad-v0.9.72.zip v0.9.72: demo clears stale .lck files (force-killed KiCad left locks that popped File Open Warning and blocked every lo… · John Lauer 3mo ago
adom-bridge-kicad-v0.9.73.zip v0.9.73: plugin __version__ -> 0.9.0 (discovery reports the truth) · John Lauer 3mo ago
adom-bridge-kicad-v0.9.74.zip v0.9.74: plugin 0.9.1 two-hop background load (filter -> settle 0.8s on worker thread -> activate; fixed DataViewEvent… · John Lauer 3mo ago
adom-bridge-kicad-v0.9.75.zip v0.9.75: naming sweep per adom/definitions — bare AD/HD abbreviations removed everywhere; say Bridge (ab) and Hydrogen… · John Lauer 3mo ago
adom-bridge-kicad-v0.9.76.zip v0.9.76: kicad_launch (cold-start, #19) + kicad_uninstall (SDK cascade, #18) + open_editors teaching hint; SKILL.md CLI… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.77.zip v0.9.77: open_symbol_editor honors symbolName/libraryName (#20) — waits for cold-start plugin, library-qualified filter… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.78.zip v0.9.78: CLI-name sweep adom-bridge-cli -> adom-bridge (ab 2.0.35); kicad_uninstall echoes cascade flag · John Lauer 2mo ago
adom-bridge-kicad-v0.9.79.zip v0.9.79: KiCad-aware focus guardian (never fights the user, demotes thief below, 45s guard for async self-raises), laun… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.80.zip v0.9.80: NEVER dismiss progress dialogs (their button is Cancel — sweeper was aborting loads mid-verb; suite finding);… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.81.zip v0.9.81: kicad_uninstall testResidue mode — the verb suite cleans up ALL its residue after every run (phase 7) · John Lauer 2mo ago
adom-bridge-kicad-v0.9.82.zip v0.9.82: rm_tree chmod-and-retry onerror (read-only git objects in demo .history blocked cleanup) · John Lauer 2mo ago
adom-bridge-kicad-v0.9.83.zip v0.9.83: plugin-free background symbol load (WM_SETTEXT filter + Enter) — #20 works even while eeschema python is cold… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.84.zip v0.9.84: lib-table self-heal (merge missing stock libraries at boot) — root cause of Device:R failing: early bootstrap… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.85.zip v0.9.85: win32 tier uses Down+Enter (KiCad filter forwards nav keys to tree) · John Lauer 2mo ago
adom-bridge-kicad-v0.9.86.zip v0.9.86: activate the selected tree row (Enter to tree hwnd + PostMessage dblclick) · John Lauer 2mo ago
adom-bridge-kicad-v0.9.87.zip v0.9.87: kicad_state verb (#22, all windows as base64 + logical state) + process-verified window matching (#23, no more… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.88.zip v0.9.88: background kicad_demo with structured progress (#24) — percent/ETA/stepLabel polling + kicad_state final paylo… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.89.zip v0.9.89: footprint editor gets the plugin-free win32 background load tier + honest failures (#21 remainder); suite fp t… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.90.zip v0.9.90: fp editor cold-start — retry the PM plugin menu tier AFTER launching the PM (tier order bug) · John Lauer 2mo ago
adom-bridge-kicad-v0.9.91.zip v0.9.91: fp editor cold-spawn wait 8s->34s (new pcbnew + 100+ fp libs post-self-heal) · John Lauer 2mo ago
adom-bridge-kicad-v0.9.92.zip v0.9.92: library-only browse mode (open a LIBRARY without demanding a part load) in both editors · John Lauer 2mo ago
adom-bridge-kicad-v0.9.93.zip v0.9.93: kicad_show_* family (Fusion fusion_show_* parity) — one clean verb per surface: symbol/footprint/3d_chip/schem… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.94.zip v0.9.94: show_3d_board/show_3d_chip wait for the async editor window before the 3D viewer (no more 'not open' race) · John Lauer 2mo ago
adom-bridge-kicad-v0.9.95.zip v0.9.95 (#26): FP path gets plugin-free UIA 3D-viewer tier; 3D window poll 3s->9s for slow renders · John Lauer 2mo ago
adom-bridge-kicad-v0.9.96.zip v0.9.96: kicad_show_project — the 8th surface (electronics project / project manager). All 8 surfaces John listed now h… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.97.zip v0.9.97: background-first hard rule — keystroke fallbacks gated behind allowFocusSteal (were leaking keys to the user's… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.98.zip v0.9.98: show_* verbs added to the dispatcher focus-guardian + foreground-opt-in sets (they were bypassing both because… · John Lauer 2mo ago
adom-bridge-kicad-v0.9.99.zip v0.9.99 (#26): plugin-free Win32 menu-bar tier for open_3d_viewer (GetMenu->resolve 3D Viewer->PostMessage WM_COMMAND,… · John Lauer 2mo ago
adom-bridge-kicad.bundle Migrate asset from Helium wiki · Kyle Bergstedt 5mo ago
adom-desktop-kicad-bridge-hero-v4.png bigger name (+20%), smaller logo (-10%) · John Lauer 4mo ago
adom-kicad-bridge-hero-v3.png name-first hero · John Lauer 4mo ago
arch.png Upload 1 file(s) · John Lauer 4mo ago
BRIDGE_VERSION 0.9.351: Rust port plan phase 0: seeds KiCad's six do_not_show_again nags, api.enable_server, update-check and eeschema… · John Lauer 2mo ago
bridge.json Merge PR #399: 1.0.100: update_pcb sets every reference (closes #138); the verbs ruled on standard #29 · Colby Knox 8d ago
bridges-hero.png Migrate asset from Helium wiki · Kyle Bergstedt 5mo ago
caller_identity.py v0.9.75: naming sweep per adom/definitions — bare AD/HD abbreviations removed everywhere; say Bridge (ab) and Hydrogen… · John Lauer 3mo ago
capabilities.py v0.9.61: kicad_export_molecule — one-shot molecule export pack (STEP + silk renders + sch/pro discovery + container nex… · John Lauer 3mo ago
CONTRIBUTING.md 1.0.62: standard aliases for 16 of the 1.0.61 verbs, the standard-decision test, battery coverage for all 78 new verbs,… · Colby Knox 14d ago
control-surfaces.svg control-surfaces (served copy): sweep legacy naming to Adom Bridge · John Lauer 3mo ago
dialog-firstrun-wizard.png docs: window-tour screenshots captured on ADOMBASELINE (Mesa software-OpenGL fallback) · John Lauer 4mo ago
dockbar.json 1.0.113: header CSS restored per dash-header (wiki #66), brand 'KiCad Bridge · AI control for KiCad', Say-it phrases an… · John Lauer 2mo ago
export-part-oneoffs.png README: document the show_* family, the wiki-part pipeline (filePath installs + model, make_part_project), export_part… · John Lauer 2mo ago
footprint-editor.png docs: window-tour screenshots captured on ADOMBASELINE (Mesa software-OpenGL fallback) · John Lauer 4mo ago
hero-billboard-v2.png new billboard hero (single full-bleed app screenshot) · John Lauer 4mo ago
hero-billboard.png new billboard hero (single full-bleed app screenshot) · John Lauer 4mo ago
hero.png Wire RP2040 molecule hero (v4): full Adom-molecule tour collage · John Lauer 5mo ago
install.sh Publish 1.0.138 · John Lauer 1mo ago
kc-3d-board.png real-content hero + inline screenshots · John Lauer 4mo ago
kc-schematic.png real-content hero + inline screenshots · John Lauer 4mo ago
kc-symbol.png real-content hero + inline screenshots · John Lauer 4mo ago
kicad_detect.py 0.9.351: Rust port plan phase 0: seeds KiCad's six do_not_show_again nags, api.enable_server, update-check and eeschema… · John Lauer 2mo ago
kicad-bridge-demo-poster.png docs: final demo cut — AndrewNeural voiceover via adom-tts (correct KiCad pronunciation), assembled + storyboard-review… · John Lauer 4mo ago
kicad-bridge-demo.mp4 docs: final demo cut — AndrewNeural voiceover via adom-tts (correct KiCad pronunciation), assembled + storyboard-review… · John Lauer 4mo ago
kicad-bridge-hero-v5.png hero v5: Hero Studio generated (Familjen Bold title, dark-mode 3D viewer vitrine, Pup-layout alignment) · John Lauer 3mo ago
kicad-bridge-hero-v6.png hero v6: title/subtitle share one left line (79/83/83); regenerated through Hero Studio · John Lauer 3mo ago
kicad-hero-new.png Migrate asset from Helium wiki · Kyle Bergstedt 5mo ago
kicad-hero-v5.png hero v5: post-rename billboard in the pup/nb family style — lowercase 'kicad', background-driving value prop, real 3D V… · John Lauer 3mo ago
kicad-hero.png real-content hero + inline screenshots · John Lauer 4mo ago
KICAD-PLUGIN-PROMPT.md v0.9.0: fix /status health endpoint (bridgeRunning root cause) + capability/version-awareness report · John Lauer 4mo ago
kicad-staged.png Migrate asset from Helium wiki · Kyle Bergstedt 5mo ago
lib_table.py v0.9.0: fix /status health endpoint (bridgeRunning root cause) + capability/version-awareness report · John Lauer 4mo ago
LICENSE v0.9.0: fix /status health endpoint (bridgeRunning root cause) + capability/version-awareness report · John Lauer 4mo ago
navigate_symbol.ps1 v0.9.64: NEVER steal the user's screen. navigate_symbol.ps1 rewritten to UIA ValuePattern + PostMessage (was foreground… · John Lauer 3mo ago
outcomes.png Upload 1 file(s) · John Lauer 4mo ago
package.json Publish 1.0.194 · Colby Knox 8d ago
page.json kicad-bridge package 1.0.194: the 1.0.100 skills · Colby Knox 8d ago
pcb-editor-2d.png docs: window-tour screenshots captured on ADOMBASELINE (Mesa software-OpenGL fallback) · John Lauer 4mo ago
plugin_install.py 0.9.259: PAYLOAD_VERSION derives from the payload file (hardcoded 0.9.1 pinned deploys, reveal_library never shipped) · Colby Knox 2mo ago
proc.py v0.9.75: naming sweep per adom/definitions — bare AD/HD abbreviations removed everywhere; say Bridge (ab) and Hydrogen… · John Lauer 3mo ago
quiet_console.py v0.9.101: PREVENTION guardian (WS_EX_NOACTIVATE on offenders, cleared on last-guard/bring_to_user/close); quiet_console… · John Lauer 2mo ago
README.md 1.0.100: 1.0.100: kicad_update_pcb sets every new part's reference, whichever way its library wrote it (#138), and the… · Colby Knox 8d ago
RELEASE_NOTES.md 1.0.107: release record · Colby Knox 2d ago
requirements-routing.txt 0.9.340: Live routing verbs through KiCad's IPC API (routing_state, route_net, remove_route, routing_validate), offline… · John Lauer 2mo ago
schematic-editor.png docs: window-tour screenshots captured on ADOMBASELINE (Mesa software-OpenGL fallback) · John Lauer 4mo ago
server.py Product name out of hints, examples and docs (wiki #118); skills package 1.0.152 · John Lauer 1mo ago
show-2d-board.png README: single-component demo projects (0.9.112) - refreshed schematic/2D/3D board shots, no companion parts on a one-p… · John Lauer 2mo ago
show-3d-board.png README: single-component demo projects (0.9.112) - refreshed schematic/2D/3D board shots, no companion parts on a one-p… · John Lauer 2mo ago
show-3d-chip.png README: document the show_* family, the wiki-part pipeline (filePath installs + model, make_part_project), export_part… · John Lauer 2mo ago
show-footprint.png README: document the show_* family, the wiki-part pipeline (filePath installs + model, make_part_project), export_part… · John Lauer 2mo ago
show-library.png README: document the show_* family, the wiki-part pipeline (filePath installs + model, make_part_project), export_part… · John Lauer 2mo ago
show-project.png README: document the show_* family, the wiki-part pipeline (filePath installs + model, make_part_project), export_part… · John Lauer 2mo ago
show-schematic.png README: single-component demo projects (0.9.112) - refreshed schematic/2D/3D board shots, no companion parts on a one-p… · John Lauer 2mo ago
show-symbol.png README: document the show_* family, the wiki-part pipeline (filePath installs + model, make_part_project), export_part… · John Lauer 2mo ago
SKILL.md Restore 25 files to their state before PR #61: the wiki's pr revert left them truncated to the diff's context · Colby Knox 8d ago
start.bat 0.9.289: John, 2026-09-03: no caption on a Symbol Editor launch or rescan reopen (the 0.9.285 one was large, shown too… · John Lauer 2mo ago
start.sh v0.9.0: fix /status health endpoint (bridgeRunning root cause) + capability/version-awareness report · John Lauer 4mo ago
symbol-editor.png docs: window-tour screenshots captured on ADOMBASELINE (Mesa software-OpenGL fallback) · John Lauer 4mo ago
uninstall.sh Publish 1.0.138 · John Lauer 1mo ago
verbs.png Upload 1 file(s) · John Lauer 4mo ago

Adom Bridge: KiCad Bridge

A reverse bridge that lets Adom Bridge (ab), and the AI driving it, control the user's own KiCad on Windows: open and drive every editor, install symbol/footprint libraries, place parts, run DRC/ERC, export manufacturing files, and screenshot any window back to the AI.

Two artifacts on this page, which one do you want?

Release ZIP (adom-bridge-kicad-v*.zip) Package (adom-wiki pkg install adom/kicad-bridge)
What it is The bridge runtime: the native Rust kicad-bridge.exe that drives KiCad (the Python server it replaced is kept in the repo for reference) Skills + docs only, for a container/agent
Who loads it Adom Bridge downloads it automatically via adom-bridge-kicad-manifest.json You, into a container, to teach an agent the kicad_* verbs
Contains code, certs, UIA scripts, board template SKILL.md files (no binaries, no images)
You install it manually? No: Bridge handles it Yes

The package is not the bridge. Installing the package does not give you a working bridge; Adom Bridge loading the release zip does. Both are kept deliberately small, the zip is auto-bundled into Adom Bridge, so it ships only what the runtime needs.

KiCad is the user's host app. The bridge detects an existing KiCad and, if none is present, installs one for them, it never asks the user to download or click through anything by hand.

Every screenshot in this README was captured on ADOMBASELINE, a stock Hyper-V VM with no GPU, driven end-to-end through the bridge, install → libraries → editors → 2D → 3D. If it renders there, it renders on a real laptop.


The demo, recorded (2:47, narrated)

Watch the recording: the guided tour exactly as a user gets it from the dashboard's Play the demo button, recorded on a real Windows desktop. Six beats on the Adom ESC G431 motor controller pulled from the wiki: the STM32 symbol in the Symbol Editor, its LQFP-48 footprint, the chip in 3D, the full schematic, the 2D board and the 3D board with every MOSFET in place. Each window is brought forward once, captioned, and moved (zoom, pan, orbit) while the narration explains it. The same recording plays inline in the dashboard.

How the dock card, the dashboard and this demo fit together: docs/dashboard.md.

Feature guides

guide what it covers
Dashboard The dock card, the dashboard and how the demo fits in.
How the bridge compares Feature matrix against every notable KiCad MCP server and AI tool, with the gaps on both sides.
The Rust port plan One dependency-free binary: what moves to KiCad's API, what ab already does, what PowerShell goes away, phases and risks.
The ESC G431 demo: placement and routing by three engines A real public Adom board placed and routed from scratch by Claude Fable 5.1, GPT-6 Astra and Freerouting through the bridge, with real times, result quality, tokens, dollars and agent counts per engine.
Native zone plans kicad_apply_zone_plan: one Undo step, full-candidate DRC, the no-op and refill contracts.
Native silkscreen text, graphics and fields The stable-ID silk batch verbs, what each refuses, and what KiCad 10.0.5 will not do over IPC.
Linked view refresh kicad_refresh_board_views: refreshing one PCB editor and its bound 3D viewer in the background.
Astra's working notes How the AI Flow thread contributes to this bridge: preflight, branch PRs, acceptance. The three *-astra-prompt.md files beside it are the prompts used for the ESC demo runs.
KiCad wishlist: automation without the foreground Every place the bridge needs UI automation, real input or the foreground because KiCad has no API for it, ranked worst first, with the feature request that would fix each.
Your wiki page as a KiCad PCM repository The page serves repository.json, packages.json and the zips anonymously, so it is a Plugin and Content Manager repository as-is: the sample library package, the packer, adding the repository in KiCad or with kicad_pcm_add_repository, and updates through PCM's Update button or kicad_pcm_install {update:true}.

Live routing (from 0.9.340)

Four verbs edit copper in the open PCB editor through KiCad's official IPC API (KiCad 10.0.1+ with the IPC API server enabled): kicad_routing_state, kicad_route_net, kicad_remove_route and kicad_routing_validate. The AI chooses the waypoints; each call lands as one native Undo step, carries a revision guard, and is DRC-checked against a snapshot before it commits. This is not an autorouter and not an electrical sign-off. Details and the regression demo: SKILL.md and demo/routing/README.md. The guide to both engines, with a live run and screenshots: docs/autorouting.md.

The board model: the same board data as Altium and Fusion (from 1.0.59)

kicad_routing_state {"model":"standard"} reads the whole board in the EDA Bridge Standard's shape, the one altium_routing_state and fusion_routing_state answer: tracks, arcs, vias, pads with their sizes (a custom pad as its bounding rectangle), parts, copper pours, the board outline with its arcs, cutouts and keepouts, the unconnected count worked out from the copper itself (with the pads of each piece to join) and a revision that only moves when copper, parts or the outline move. Millimetres, y up, KiCad layer names. It reads the live PCB editor (unsaved edits included) or the .kicad_pcb file with KiCad closed. The edit verbs take that revision as expectedRevision, and with frame:"standard" they take its coordinates as they are.

Its companions, by the standard's names:

Verb What it tells you
kicad_layer_stack the stack-up: copper thickness per layer, the dielectric under each (thickness, Dk, material), planes and their nets, masks, finish
kicad_pour_state the copper actually poured: filled area per zone and per layer, islands, zones that poured nothing
kicad_bodies each part's 3D body as a box and its height, read from the 3D model files: the tallest parts, what a height check cannot see
kicad_netlist the netlist as {net: ["U1.8", ...]}, compared pin by pin with the nets you expect, with every pin's electrical type

And the standard's quick reads, each a view of the same model: kicad_board_summary (parts by side, nets, layers in use, board size and area), kicad_list_nets (with pad counts), kicad_list_designators, kicad_copper_layers, kicad_layers_in_use, kicad_component_data (a part's placement, size and nets) and kicad_component_pins (its pads with net, position, size and hole).

Checked against KiCad's own DRC on six of KiCad 10's demo boards: the same unconnected count on every one. The details, the rules and the pitfalls: the kicad-board-model skill.

The demo verb: kicad_demo

One verb that shows the whole bridge off, built for the AI that demos Adom Bridge during Hydrogen's install. Six beats, in the order a hardware person thinks:

Beat Shows
1 the schematic symbol in the user's own Symbol Editor
2 the footprint for that same part
3 that part in 3D
4 a schematic using it (U1 + two 10k resistors)
5 the 2D board layout
6 the finished board in 3D
adom-bridge kicad_demo '{}'                      # start: prepares, warms KiCad, opens beat 1
adom-bridge kicad_demo '{"step":"footprint"}'    # ...then follow data.nextCall each time
adom-bridge kicad_demo '{"all":true}'            # bulk (non-interactive; slower than one request budget)
adom-bridge kicad_close '{"force":true}'         # tear down

It narrates itself. Every beat returns say (a line to speak), pointOut (what's actually on screen), window (match it in kicad_screenshot_all) and nextCall. One beat per call is the default precisely so the AI can talk, screenshot, then move on.

It ships nothing. The two demo parts, the schematic and the board are all generated in code, and the 3D bodies come from KiCad's own bundled 3dmodels/*.3dshapes: so the runtime zip stays small and the 3D views are real. Parts install into the user's real Adom library; the project lands in Documents/adom-kicad-demo.

No KiCad? It offers to install it. kicad_demo returns an offer instead of an error; kicad_demo '{"installKiCad": true}' silently installs the official build (per-user, no UAC) and then runs the tour. Watching the AI install your EDA tool is itself a good demo beat.

It never takes your screen. Every window opens in the background and all input is window-targeted (UIA / PostMessage), so you can keep working while it runs.


How it fits together

The bridge is one native Rust executable, kicad-bridge.exe, that Adom Bridge launches on the user's machine (port: 0: Adom Bridge picks the port and passes ADOM_BIND_HOST). There is no Python or other runtime to provision. It speaks HTTP (POST /command, GET /status) and reaches KiCad through four control surfaces, picking the lightest one that can do the job.

Control surfaces

# Surface Used for Where
1 kicad-cli (subprocess) headless DRC/ERC, gerber/pdf/svg/step/bom export, format upgrade handlers/export.py, run_drc, run_erc, lint_*
2 KiCad IPC (kipy) board/schematic introspection, confirmed footprint placement (KiCad 9+) handlers/place_footprint.py
3 Embedded Python JSON-RPC inside each KiCad process, dispatched on its wx UI thread plugin_payload/adom_bridge.py, handlers/bridge_client.py
4 Win32 / UIA / SendKeys open editors, screenshots, clicks/keys, dialog handling, window management handlers/kicad_ui.py, handlers/close_windows.py

The window tour

Everything below was opened and captured on the GPU-less VM. Sample data is the RP2040 breakout generated by tour-pack-rp2040/ (an AdomRP2040 symbol + QFN-56_AdomRP2040 footprint + a board).

Schematic editor: kicad_open_schematic

The RP2040 breakout: the MCU (U1), USB-C, a 12 MHz crystal, decoupling, and mounting pins.

Schematic editor

Symbol editor: kicad_open_symbol_editor

Opens straight to a symbol (kicad_install_symbol puts it in a user library first).

Symbol editor

Footprint editor: kicad_open_footprint_editor

{"footprintName":"QFN-56_AdomRP2040","library":"AdomRP2040"} loads the part directly, 56 pins + thermal pad, 7×7 mm, 0.4 mm pitch, courtyard and silkscreen.

Footprint editor

PCB editor (2D): kicad_open_board

The routed breakout, copper, silkscreen, the QFN-56 land pattern, mounting holes.

PCB editor 2D

3D viewer: kicad_open_3d_viewer {"editor":"pcb"}

The full board in 3D, board body, the USB-C connector's 3D model, the QFN chip body, SMD parts, plated through-holes. Rendered on the CPU via the software-OpenGL fallback (below); reload 1.7 s.

3D viewer


Install & upgrade: zero manual steps

The bridge never tells the user to go download KiCad. kicad_upgrade fetches the official installer and runs it silently, picking the scope automatically:

  • Elevated Bridge → /allusers /S (system-wide, %ProgramFiles%\KiCad).
  • Non-elevated Bridge → /currentuser /S (%LocalAppData%\Programs\KiCad, no UAC prompt).

kicad_readiness reports whether KiCad is installed and ready without side effects; the AI routes on it before offering to install. Hard-won install details (all handled for you):

  • KiCad 10's NsisMultiUser installer requires a scope flag, bare /S errors rc=666660.
  • Bridge's portable Python has no CA bundle; the bridge ships certs/cacert.pem and uses it for TLS.
  • Downloads are size-checked against Content-Length (a truncated installer otherwise fails at NSIS).
  • %APPDATA%/kicad/<ver>/ lib tables don't exist until first launch, the bridge bootstraps them so install_library/install_footprint work on a never-opened KiCad.
  • kicad_upgrade {"diagnoseOnly":true} reports token-elevation type + EnableLUA without installing.

Dialogs & error handling: the bridge clears the pointless ones

KiCad throws modal dialogs that stall automation. The bridge scans every window owned by a running KiCad process (by PID, reliable, unlike title matching), auto-expires the benign ones, screenshots what it dismissed, and returns a hint so the AI can decide what (if anything) to tell the user.

Auto-expired benign dialogs include:

  • "Could not use OpenGL / falling back to software rendering" (GPU-less hosts).
  • "Welcome to KiCad, starting for the first time" first-run wizard (dismissing accepts defaults).
  • "This file was created by an older version of KiCad" conversion notice.

First-run wizard, auto-dismissed

Verbs:

  • kicad_window_info: lists windows and self-heals (auto-expires benign dialogs) by default.
  • kicad_dismiss_dialogs {"all":true}: clear everything blocking; {"screenshot":true} returns images of each; {"forceSoftwareCanvas":true} persists Cairo canvas; {"debug":true} dumps the raw PID-based scan.
  • kicad_screenshot_all: one call returns every open KiCad window, so the AI can spot an error dialog it didn't expect and read the message.

Software-OpenGL fallback (last resort)

kicad_enable_software_opengl deploys Mesa's llvmpipe (a CPU OpenGL rasterizer) into KiCad's bin so a box with no usable GPU: Hyper-V, RDP, headless CI, can still render the editors and the 3D viewer. This is how every 3D shot above exists.

⚠️ It renders on the CPU and is slow. It is a worst-case fallback only, a real GPU (or GPU-P / DDA passthrough) is vastly better. The bridge keeps it so a GPU-less box isn't a dead end; it is never suggested proactively.


Verb reference

Every verb of this build (361, 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)

Verb What it does
kicad_board_summary One-screen summary of the board: parts by side, nets, pads, copper layers and those actually in use, the outline's size and area, unconnected and the revision.
kicad_bodies Every part's 3D body as a box: its footprint rectangle on the board and its height range above the surface it sits on, read from the 3D model files the footprints name. For height checks, enclosure fit and placement review.
kicad_component_data Placement data for one part or all of them: footprint, value, side, position, rotation, the size of its pads' extent, pad count and the nets on its pads.
kicad_component_pins Every pad of one part with its net, position, layer, size, rotation and hole.
kicad_copper_layers The board's copper layers top to bottom by KiCad's names (F.Cu, In1.Cu.., B.Cu).
kicad_layer_stack The board's stack-up: copper layers top to bottom with copper thickness and the dielectric under each (thickness, Dk, material), the masks and the board thickness. For impedance, current capacity and fab quotes.
kicad_layers_in_use Which copper layers actually carry copper (tracks, arcs, vias, pads, pours), densest first, and which are empty.
kicad_list_designators Every part designator on the board, in natural order (R2 before R10).
kicad_list_nets Every net on the board with its pad count.
kicad_netlist The compiled netlist in the EDA Bridge Standard's shape: every net with its pins as Ref.Pin across every sheet (hierarchy resolved); or one net; or compare with the nets you expect. parts:true adds each part's pins with their electrical types.
kicad_pour_state Every copper pour (zone) on every layer with the copper KiCad actually poured: filled area per zone and per layer, islands, and the zones that poured nothing.
kicad_routing_state Inspect the live editor: pads, copper, revision and KiCad-measured net connectivity.

Schematic (45)

Verb What it does
kicad_annotate standard → kicad_sch_annotate
kicad_design_review Schematic design review from the netlist: ICs without a decoupling capacitor on each power-pin net, I2C lines without pull-ups, floating or undriven reset and enable pins, LEDs without a series resistor, regulators without input or output capacitors, rails without bulk capacitance, unannotated or duplicate references. Each finding has severity, refs, nets, why and how to fix.
kicad_render_schematic Render a schematic sheet to PNG (kicad-cli sch export svg, rasterised in the bridge), and keep visual baselines: baseline:"set" stores the image under /.adom/baselines/, baseline:"compare" reports the pixel drift percentage, the changed region and a diff image.
kicad_sch_annotate Number every X? reference on a .kicad_sch the way eeschema's Annotate does: the first free number per prefix across the project's sheets, in position order, units of one multi-unit part sharing a designator (edits the file on disk).
kicad_sch_batch Apply a list of schematic edit operations to one .kicad_sch in ONE read and ONE atomic write: all or nothing, one ERC before and after, dryRun reports the plan.
kicad_sch_bus Draw a bus polyline on a .kicad_sch (one bus segment per pair of points), optionally with a bus label such as D[0..7] at its first point (edits the file on disk).
kicad_sch_bus_entry Add a 45-degree bus entry (the short diagonal between a member wire and a bus) at a point (edits the file on disk).
kicad_sch_check Connectivity and layout check of a sheet from the file: dangling wire ends, floating labels, unconnected non-passive pins, nets that reach only one pin, distinct net names shorted together, no-connect flags on wired pins, and with overlaps:true symbol, label and text collisions (symbol body and pin extents). Each finding has a location and a fix.
kicad_sch_components List the placed symbols of a .kicad_sch: reference, value, footprint, lib id, every unit with position, rotation and mirror, and every field.
kicad_sch_connect standard → kicad_sch_connect_to_net
kicad_sch_connect_pins Wire two pins by Ref.Pin with a horizontal and vertical (L-shaped) route, adding junction dots where the route makes a T with existing wires (edits the file on disk).
kicad_sch_connect_to_bus Fan a set of pins onto a bus: per pin a wire to just short of the bus, a 45-degree bus entry onto it, and a member label (D0, D1 ...) on the wire (edits the file on disk).
kicad_sch_connect_to_net Connect one or many pins to a named net: a short stub wire away from the body plus a net label (local, global, hierarchical) or a power symbol at its end (edits the file on disk).
kicad_sch_create Create a blank KiCad 10 schematic (.kicad_sch) with a paper size and title block; optionally add it to an existing project as a hierarchical sheet of the root, or make it the root of a new project.
kicad_sch_delete Delete any top-level item (symbol, wire, label, junction, sheet ...) from a .kicad_sch by uuid, every unit of a symbol by reference, or labels by name (edits the file on disk).
kicad_sch_delete_wire Delete wires (or bus segments) by uuid, by their two endpoints, or every wire through a point, and prune junction dots that no longer join three or more items (edits the file on disk).
kicad_sch_edit standard → kicad_sch_set_property
kicad_sch_edit_label Edit net labels on a .kicad_sch: rotate (with the justify KiCad pairs with the angle), move to a point or by a delta, rename, or move every label of a net by (dx, dy) (edits the file on disk).
kicad_sch_fix_connectivity Snap near-miss wire ends onto the pin, label, sheet pin or wire end they almost touch (within a tolerance). dryRun (the default) lists the moves; dryRun:false writes them.
kicad_sch_hierarchy The sheet tree of a design, recursively: each sheet's name, file, uuid, instance path, page, position, size and pins; renumber:true reassigns page numbers depth-first (root 1).
kicad_sch_items List the wiring items of a .kicad_sch with uuids and coordinates: wires, buses, bus entries, labels (local, global, hierarchical), power symbols, junctions, no-connects, texts, sheets.
kicad_sch_junction Add junction dots at one or many points, or remove them by uuid or point (edits the file on disk).
kicad_sch_label Add a net label (local, global, hierarchical) or a power symbol on a .kicad_sch (edits the file on disk).
kicad_sch_move Move a placed symbol (by reference) so its anchor lands on a new point or by a delta; every unit of a multi-unit part and every field move with it, and stretchWires keeps the attached wires on the pins (edits the file on disk).
kicad_sch_move_region Move everything inside a box by (dx, dy): symbols by their anchor, wire ends inside the box (wires crossing the edge stretch), labels, junctions, no-connects, texts, bus entries, sheets (edits the file on disk).
kicad_sch_no_connect Put no-connect flags on pins of a .kicad_sch (an intentionally open pin: a spare GPIO, an unused connector pin) so ERC stops reporting them, or remove flags (edits the file on disk).
kicad_sch_page Read or set a schematic's page: paper size (A5 to A0, A to E, USLetter, USLegal, USLedger, custom mm), orientation and title block (title, date, rev, company, comments 1 to 9).
kicad_sch_pins Every pin's absolute (x, y) on a .kicad_sch for the given references (rotation and mirror applied), with number, name, electrical type, outward direction, and the wires, labels and net touching it.
kicad_sch_place_part standard → kicad_sch_place_symbol
kicad_sch_place_symbol Place a library symbol on a .kicad_sch (edits the file on disk; the lib_symbols entry is copied from the library when the sheet lacks it).
kicad_sch_replace_symbol Change the library symbol of a placed part (lib id), keeping its units, fields and position; the new lib_symbols entry is copied from the library (edits the file on disk).
kicad_sch_reset_fields Put a symbol's Reference and Value (or the named fields) back at the library symbol's offsets, angle and justify, through the unit's rotation and mirror (edits the file on disk).
kicad_sch_rotate Rotate a placed symbol to an absolute angle (0, 90, 180, 270); every unit turns by the same delta about its own anchor and the fields turn with it (edits the file on disk).
kicad_sch_set_property Set or add a field on a placed symbol by reference: Value, Footprint, Datasheet, a custom field, or Reference itself (edits the file on disk).
kicad_sch_sheet Hierarchical sheets on a page: add (creates the child file when missing and links it), edit (name, file, size, position), move, delete (the child file is kept), duplicate (a new child file with fresh uuids and free references).
kicad_sch_sheet_pins A sheet's pins: list, add, edit (rename, shape, move along an edge), delete; import:true adds a pin for every hierarchical label in the child not yet on the sheet; validate:true reports labels without pins, pins without labels and shape mismatches.
kicad_sch_sheet_symbol standard → kicad_sch_sheet
kicad_sch_split_wire Split the wire passing through a point into two wires there, and put a junction dot at the cut (edits the file on disk).
kicad_sch_swap_part standard → kicad_sch_replace_symbol
kicad_sch_text Add free text (a note, a title, a design comment) to a .kicad_sch with size, angle, justify, bold and italic (edits the file on disk).
kicad_sch_trace_point Everything electrically connected at a point on a sheet: the wires, labels, pins, junctions, sheet pins and no-connect flags there, and for each net they belong to the whole net (pins, labels, power symbols, wires) with its name.
kicad_sch_update_from_library Re-embed the lib_symbols definitions of a .kicad_sch from their libraries (all, or the listed lib ids) and report which changed (edits the file on disk).
kicad_sch_wire Draw a wire polyline on a .kicad_sch (one wire segment per pair of points; edits the file on disk).
kicad_sch_zoom Find parts on a schematic sheet and frame them: where each sits (mm), which are not on the sheet, and a proof frame: KiCad's own plot of the sheet cropped to the parts, each outlined. The schematic half of cross-probing (kicad_zoom_to is the board half).
kicad_update_pcb standard → kicad_update_pcb_from_schematic

Symbols, footprints and libraries (34)

Verb What it does
kicad_adom_library_heal Reconcile a SPLIT Adom library: merge the orphaned file's symbols into the registered one (default), repoint the row, or prune the symbols KiCad refuses. Human-chosen; dryRun previews.
kicad_adom_library_status Report Adom library install state across KiCad versions.
kicad_create_footprint standard → kicad_fp_create
kicad_create_symbol standard → kicad_sym_create
kicad_export_part One-off single-part library exports: a .kicad_sym with ONLY that symbol, a .pretty with ONLY that footprint, the bare 3D model file. The reverse of install.
kicad_find_symbol standard → kicad_search_library
kicad_fp_create Write a new footprint (.kicad_mod, KiCad 10) into a .pretty folder from a pad list: courtyard generated with a margin, fab outline, silkscreen box clear of the pads with a pin-1 dot, reference and value text, optional 3D model.
kicad_fp_edit Edit a .kicad_mod in place: edit, delete, add or renumber pads; append, replace or delete graphics on a layer (line, arc, rect, circle, poly); set description, tags and attributes; replace, append or delete 3D models (path, offset, scale, rotate). Everything not edited stays byte-identical.
kicad_fp_info Full details of one footprint: pads (number, type, shape, position, size, drill, layers), layers used, courtyard box, graphics per layer, attributes, properties and 3D models.
kicad_install_extension Install the bridge's extension into the tool (the standard's install_extension). Not in KiCad: KiCad needs no extension installed inside it: its IPC API is built in, so there is nothing to install, ping or keep a receipt for.
kicad_install_footprint Write a .kicad_mod into the global Adom.pretty footprint library, register it in fp-lib-table, optionally install and wire a 3D model.
kicad_install_library Register a symbol/footprint library in the user's sym-/fp-lib-table (footprint installs also carry a bundle's 3D models).
kicad_install_library_bundle Install an Adom wiki Cloud Library bundle zip (symbols + footprints + 3D models) in one call.
kicad_install_plugin Retired: the native bridge installs no Python plugin into KiCad. Returns success with nothing to do so old scripts keep working.
kicad_install_receipt The last extension install's receipt (the standard's install_receipt). Not in KiCad: KiCad needs no extension installed inside it: its IPC API is built in, so there is nothing to install, ping or keep a receipt for.
kicad_install_symbol Merge the symbol(s) of a .kicad_sym into the single global Adom library (Adom.kicad_sym), creating and registering it on first use.
kicad_lint_library Lint a symbol/footprint library: the bridge's structural check, KiCad's own verdict (kicad-cli), and the standard's content rules (pads, courtyard, origin, silkscreen, 3D body, description; pins, footprint link, pins against pads, part number), each finding with its rule and severity.
kicad_list_footprints What footprints actually exist, per library: the fp-lib-table (URIs expanded, stock libraries included) plus unregistered .pretty folders in the user dir.
kicad_list_symbols Names in a registered symbol library, with KiCad's own inventory.
kicad_make_part_project Generate a small real project (pro/sch/pcb) AROUND an installed Adom-library part, so the project/schematic/2D-board/3D-board surfaces have something true to show for one component.
kicad_model_check Read-only 3D model diagnostics for a footprint or a whole board: which (model ...) references exist, where KiCad looks, whether each file exists and holds geometry.
kicad_pcm_add_repository Register a PCM repository in kicad.json (pcm.repositories), the way Plugin and Content Manager > Manage > add URL does.
kicad_pcm_install Install or update a package from a KiCad PCM repository on disk, exactly as the Plugin and Content Manager would (no dialog).
kicad_pcm_list Packages KiCad's PCM considers installed on this machine, each with updateAvailable from its own repository (read-only).
kicad_pcm_remove_repository Drop a PCM repository from kicad.json pcm.repositories. Installed packages stay installed.
kicad_pcm_uninstall Remove a PCM-installed package: its 3rdparty directories and its record.
kicad_read_symbol standard → kicad_sym_info
kicad_remove_symbol standard → kicad_sym_delete
kicad_rescan_libraries Make newly installed parts visible ONCE: reload every open editor's library tree in place (seconds, nothing closed), then verify each listed footprint by loading it in the Footprint Editor. force:true is the process restart, the last resort.
kicad_search_library Search symbols and footprints across every registered library (project and global sym-lib-table / fp-lib-table, stock and PCM libraries included) by name, keyword and description; ranked hits with lib ids.
kicad_sym_create Append a symbol to a .kicad_sym (KiCad 10) from a pin list: rectangle body sized to the pins and names, pins on the 2.54 mm grid by side, Reference/Value/Footprint/Datasheet/Description/keywords and custom fields, multi-unit when pins name units.
kicad_sym_delete Delete one symbol from a .kicad_sym; refuses when other symbols extend it unless force:true.
kicad_sym_info Full details of one symbol: every pin (number, name, electrical type, shape, position, length, unit, hidden), unit and body-style counts, fields, power flag, extends (resolved).
kicad_uninstall_library Remove a library from the user's sym-/fp-lib-table: the inverse of kicad_install_library. Optionally deletes the copy the install made.

Placement and board edits (33)

Verb What it does
kicad_add_footprint Add a library footprint at x, y, rotation and side with a reference and value, a row or grid of them (count, pitch), or a copy of a placed one (duplicateOf); optional pad nets.
kicad_add_mounting_hole Add a mounting hole footprint at x, y: NPTH by default, or plated with a pad (and a net); KiCad's MountingHole library footprint when one matches the drill, else a generated one.
kicad_align_footprints Align footprints on a common left, right, top, bottom or centre line, or distribute them evenly, by courtyard box or anchor, through kicad_move_footprint's checked move.
kicad_board_outline Draw the board outline on Edge.Cuts: a rectangle, a rounded rectangle with true arcs, or a polygon; replace:true removes the old outline first.
kicad_board_pads Every pad in BOARD coordinates with its net: the input a router needs.
kicad_check_clearance Measure the gap between footprints, courtyard to courtyard or pad copper to pad copper, for the listed refs or the whole board, and report every pair under a threshold, closest first.
kicad_cross_probe From a schematic symbol (reference, uuid or sheet path) to the board footprint linked to it, and back, by the footprint's symbol path link.
kicad_delete_footprint Delete footprints by reference, as one native Undo step live or one atomic write to a closed file.
kicad_delete_graphics Delete board graphics (lines, rects, circles, arcs, polygons, curves, texts, text boxes, dimensions) by uuid, or every one on a layer and/or of a type.
kicad_edit_footprint Edit placed footprints: value, reference, any field (add, change, remove), DNP, exclude from BOM or position files and other attributes, and the lock.
kicad_flip_footprint Move footprints to the other side of the board, mirrored about their anchors: KiCad's own FlipItems live on 10.0.6+, a full client-side mirror otherwise (and on a closed file).
kicad_footprint_graphics List a placed footprint's graphics (silkscreen, fab, courtyard lines, rects, circles, arcs, polygons, texts) and edit one by uuid: vertices, width, layer, fill, or delete it.
kicad_footprint_models List, add, replace or remove the 3D model entries (path, offset, scale, rotation, visibility) of a placed footprint.
kicad_get_selection What is selected in the PCB editor right now: ids, types, footprint references, nets and positions.
kicad_import_svg Import an SVG logo or artwork as filled polygons on a silkscreen, copper, mask or user layer, at a position and size; curves flattened, holes kept.
kicad_move_footprint Move one footprint, or a batch, live in the PCB editor as ONE native Undo step, after checking the revision, courtyard collisions and the board outline.
kicad_place_decoupling Plan positions for decoupling capacitors beside an IC's power pins (each cap just outside the courtyard, power pad facing its pin), dryRun by default; apply moves them through kicad_move_footprint's live commit as one Undo step.
kicad_placement_state Every footprint with its courtyard box, side, pose, pads and nets, the board outline, the nets each footprint touches and a ratsnest estimate: the input an AI needs to place a board.
kicad_placement_validate Check the placement: courtyard overlaps between every footprint pair, footprints outside the outline or parked, the ratsnest total, and KiCad DRC filtered to placement-class violations.
kicad_save Save the document at filePath, or the topmost open board or sheet (the standard's save): a board through KiCad's API, a schematic through the Schematic Editor's own File > Save.
kicad_save_board Save the board open in the PCB editor (File > Save through the IPC API) and confirm the file on disk matches the editor.
kicad_score_placement Score a placement 0 to 100 with named deductions: courtyard overlaps, parts off the board, connectors away from the edge, decoupling caps far from their IC's power pin, and ratsnest length.
kicad_select_clear Clear the live PCB editor's selection.
kicad_select_items Set the PCB editor's selection to items by id and/or footprints by reference: replace (default), add or remove.
kicad_select_net Select every copper item of one net on the live board (pours, tracks, vias, pads) so the editor highlights the net as a whole; no cursor, no hotkey.
kicad_selection standard → kicad_get_selection
kicad_set_layer_count Set the copper layer count (2, 4, 6 or 8) of a closed board: the layers table and, when the board has one, the physical stack-up (board thickness kept).
kicad_silk_fields_batch Update native footprint reference/value field geometry by stable field UUID.
kicad_silk_graphics_batch Create/update/remove native silkscreen lines, borders, arcs and Bezier leaders by stable ID.
kicad_silk_text_batch Create, update and remove standalone silkscreen text by stable UUID with native Undo and DRC preflight.
kicad_text_bounds Measure candidate silkscreen text using native KiCad text metrics without editing.
kicad_update_footprints_from_library Compare placed footprints with their current library definition and, with apply:true, replace the ones that differ, keeping position, side, reference, value, fields, pad nets and the schematic link.
kicad_update_pcb_from_schematic Compare the schematic's netlist with the board (missing, extra and changed footprints, changed values, pad net changes) and, on a closed board file, apply it: add missing footprints from the libraries in a row below the board, update values and links, assign pad nets, mark extras.

Routing, copper and rules (26)

Verb What it does
kicad_add_rule standard → kicad_custom_rules
kicad_add_track Write one copper segment to a CLOSED board file.
kicad_add_via Drop one via so a route can change layer.
kicad_add_zone Add copper zones (pours) live as one Undo step: DRC preflight with the zone filled, then created and filled through the IPC API.
kicad_apply_zone_plan Reconcile a complete explicit-owned zone plan as one native Undo step after full-candidate DRC.
kicad_autoroute Route a board with the engine the USER picked: "ai" (recommended) returns the plan request you drive with kicad_route_net; "freerouting" runs Freerouting headless (installed on demand) and lands its copper live as one undo step per net, or into the closed file.
kicad_board_rules Read or write the project's board constraints (Board Setup > Constraints: min clearance, track width, via, annular ring, hole sizes and spacing, copper to edge, silk, text) and the predefined track widths, via sizes and diff pairs in the .kicad_pro.
kicad_copy_routing Copy the tracks and vias inside a source box to a target offset, optionally remapping nets by pairing footprints (refMap or a reference pattern), live with DRC preflight as ONE Undo step.
kicad_custom_rules List, add, replace, remove and validate the named rules in the project's .kicad_dru (per-layer width or clearance, netclass pairs, any KiCad constraint).
kicad_freerouting The Freerouting engine's lifecycle: status (disk facts only), install (88 MB download with its own Java, no elevation, only when asked), uninstall (removes the bridge's Freerouting folder and nothing else).
kicad_list_design_rules List the fabs / processes / layer counts on adom/pcb-design-rules.
kicad_modify_track Change the width, layer or endpoints of existing tracks by id, live in the PCB editor as ONE Undo step after a KiCad DRC preflight.
kicad_net_classes standard → kicad_netclasses
kicad_netclasses Read every netclass in the project (.kicad_pro) with its clearance, widths, via and diff pair sizes, its patterns and the board nets they match; create or update a class, assign nets by pattern, remove a class.
kicad_plan_fanout Plan the fanout of a BGA or QFN/QFP: detect the pad pitch, pick dogbone or via-in-pad per ball, the escape layer, surface stubs for the outer ring, a via grid for an exposed pad, returned as kicad_route_net-ready calls.
kicad_refill_zones Refill every copper zone (or the listed ones when KiCad accepts a list) in the open PCB editor, wait for the fill to settle, and report the filled copper per zone and layer.
kicad_remove_route Remove specific unlocked copper item IDs live as one Undo step.
kicad_remove_zone Remove zones (pours or keepouts) by id live as one Undo step.
kicad_repour standard → kicad_refill_zones
kicad_route Lay a whole path for one net in a single write, vias included.
kicad_route_diff_pair Route a differential pair as two coupled parallel paths offset from one centerline (gap, width, layer, vias placed as pairs), each half through kicad_route_net's planner, DRC preflight, ONE Undo step, with the length skew reported.
kicad_route_net Commit a waypoint path or branching paths for ONE net live with native Undo and DRC preflight.
kicad_route_pair standard → kicad_route_diff_pair
kicad_routing_validate Run KiCad DRC against the current unsaved live board snapshot.
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 (29)

Verb What it does
kicad_errors Every KiCad error/warning DIALOG on screen, with its exact text (read-only, background).
kicad_estimate_cost The board's numbers in the shape a quote tool needs (size, layers, thickness, min track/space/drill, holes, SMD/THT parts and joints, unique parts) plus a rough JLCPCB-style price table with every assumption stated.
kicad_export_3d Export the board's 3D model through kicad-cli in a format other than STEP: stl, glb, vrml, ply, brep, xao, u3d, stpz or 3dpdf (the standard's export_3d). obj, 3mf, iges and other formats KiCad cannot write are refused by name.
kicad_export_bom Export the project's bill of materials as a CSV through kicad-cli from its root schematic (the standard's export_bom).
kicad_export_bom_csv Export a BOM CSV from a schematic via kicad-cli.
kicad_export_dxf Export board layers to DXF via kicad-cli, one .dxf per layer (mechanical outline, panel drawings, laser stencils).
kicad_export_fab_package One-call fab package: Gerbers and drill, a BOM grouped from the board (value + footprint + MPN), the CPL, a README listing every file, all zipped. fab:"jlcpcb" writes JLCPCB's BOM and CPL columns (LCSC part field included).
kicad_export_gencad Export the board as GenCAD 1.4 via kicad-cli (test-fixture and some assembly houses' CAM input).
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).
kicad_export_pdf Plot a board or schematic to PDF via kicad-cli.
kicad_export_pos Export the pick-and-place (component position / CPL) file from a board via kicad-cli, optionally reformatted for a fab's assembly service.
kicad_export_spice Export a schematic's SPICE netlist with KiCad's own exporter (kicad-cli), headless, and say what it holds: its elements, the analyses the schematic carries, and the model files it includes.
kicad_export_step Export a STEP model of the board via kicad-cli.
kicad_export_svg Plot a board or schematic to SVG via kicad-cli.
kicad_fab_check Will a fab make this board? Its smallest features (track, clearance rule, via and pad holes and rings, SMD pads, edge clearance, hole spacing, silkscreen text and lines, layers, size) measured and compared with a fab's limits from adom/pcb-design-rules, each finding naming the fab's page and the date it was read; or with limits you give.
kicad_format_upgrade Upgrade a file to the current KiCad file format.
kicad_lint_board Lint a .kicad_pcb (DRC pre-check) via kicad-cli.
kicad_lint_schematic Lint a .kicad_sch (ERC pre-check) via kicad-cli.
kicad_render_board Render a 3D image (PNG/JPG) of a board from a side via kicad-cli pcb render, headless, no KiCad window.
kicad_run_drc Run kicad-cli pcb drc on a board and return the parsed JSON report (violations, unconnected, counts by severity).
kicad_run_erc Run kicad-cli sch erc on a schematic and return the parsed JSON report.
kicad_run_script Run a Python script of your own with KiCad's bundled Python, where import pcbnew works, headless; its output comes back.
kicad_validate_for_fab Manufacturability pre-flight: closed outline, layer count, min track, space, drill and ring vs a fab profile, copper near the edge, silkscreen on pads, vias in pads, acid traps, footprints without 3D models, fiducials (assembly), plus KiCad DRC errors and unconnected items. Pass or fail with findings.

Projects (4)

Verb What it does
kicad_project_create Create a new KiCad 10 project folder: .kicad_pro, a blank .kicad_sch and a blank .kicad_pcb (2 to 32 copper layers), optional title and text variables; a fab rules name is recorded to stage later.
kicad_project_info A project at a glance: name, files with sizes and dates, the schematic sheet tree, the board (layers, footprints, nets, size), text variables, net classes, last modified, and KiCad lock files.
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 /snapshots/[-label]/, plus schematic and board PDFs made with kicad-cli.

Windows, editors, install and the bridge (178)

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_activate_document Make a board or schematic the current one, in the background (the standard's activate_document): KiCad's verbs take the file's path, and a board opened here is the one the PCB editor's API serves.
kicad_add_body Put a 3D body (a STEP or VRML model) on a library footprint. It REPLACES the footprint's models unless keepExisting:true, so a re-import never stacks a second body.
kicad_add_models Attach footprints, parameters, comment and description to a library symbol (the standard's add_models). KiCad has one Footprint field: the first model goes there when it is empty, and every model joins the symbol's footprint filters.
kicad_add_symbol_art Draw artwork (polylines: a chip outline, a logo) inside a library symbol's body rectangle, scaled to fit with a margin and centred, keeping its aspect; the art comes as point lists or from another symbol's polylines (adom-symbol's baked chip outline).
kicad_agent_recover Recover a halted script agent (the standard's agent_recover). Not in KiCad: KiCad has no resident script agent to manage: the bridge reaches KiCad through kicad-cli, its built-in IPC API and KiCad's own Python per call, so there is nothing to start, stop, check or recover.
kicad_agent_start Start the tool's resident script agent (the standard's agent_start). Not in KiCad: KiCad has no resident script agent to manage: the bridge reaches KiCad through kicad-cli, its built-in IPC API and KiCad's own Python per call, so there is nothing to start, stop, check or recover.
kicad_agent_status Report the tool's resident script agent (the standard's agent_status). Not in KiCad: KiCad has no resident script agent to manage: the bridge reaches KiCad through kicad-cli, its built-in IPC API and KiCad's own Python per call, so there is nothing to start, stop, check or recover.
kicad_agent_stop Stop the tool's resident script agent (the standard's agent_stop). Not in KiCad: KiCad has no resident script agent to manage: the bridge reaches KiCad through kicad-cli, its built-in IPC API and KiCad's own Python per call, so there is nothing to start, stop, check or recover.
kicad_align_parts standard → kicad_align_footprints
kicad_analyze_connections Connectivity overview: suspected-unconnected pins, power nets, highest-fanout nets/components (read-only).
kicad_animate_view Camera choreography on the open board, run inside the bridge so the timing is tight enough to narrate over: zooms on the PCB editor (KiCad's own actions through its API), and in the 3D Viewer orbits, rolls, views, pans and flips (its View-menu commands), all in the background.
kicad_assembly_check Ready for JLCPCB assembly? The board against both JLCPCB PCBA tiers as published (Economic and Standard): board or panel size, thickness and layers, parts on one or both sides, the smallest package and the finest pin pitch, fiducials, and the purchased parts with no LCSC number; answers the cheapest tier every rule allows.
kicad_auto_classes Net classes from the nets' own names: GND, Power (VCC, VDD, 3V3, VBAT...), Clock and HighSpeed (USB, Ethernet, HDMI, PCIe, DDR, MIPI, LVDS, SATA), and the differential pairs their names spell; a proposal first, written into the project's net classes with apply.
kicad_board_report One shareable page per board: every check run against the board and its project (KiCad's DRC and ERC, a fab's limits, the board against the schematic, symbols against footprints, return paths, copper balance, impedance widths, 3D heights, pair skew and part orientation) with a picture of the board, written as a single HTML file.
kicad_bom The project's bill of materials: every schematic part (fields, DNP, exclude from BOM) merged with the board (footprint, position, side), one line per manufacturer part number, checked for what an order needs, and written as bom.csv, bom-jlcpcb.csv + cpl-jlcpcb.csv, bom-mouser.csv and bom-digikey.csv (+ bom.json).
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.
kicad_build_board Build a NEW board from a parts list and a netlist: the outline (a rectangle with rounded corners allowed, or a polygon), every footprint from its library placed by its own origin, pad nets assigned, saved; then read back pin by pin.
kicad_build_schematic Draw a design's schematic from its netlist with library symbols, as a new sheet (and project): one column per block, every part placed, a wire stub and a net label on every connected pin, the title block filled; then KiCad's netlist of it checked against the nets given, pin by pin, and ERC run.
kicad_build_symbol_modes Give a library symbol its De Morgan alternate body (KiCad's second display mode): the alternate drawing for every unit, the standard body's pins copied with any pin shapes changed (inverted inputs), and the symbol marked as having two body styles.
kicad_cancel_run Stop the bridge's own long job (the standard's cancel_run): a kicad_autoroute Freerouting job in the background, keeping what is done. Nothing else in KiCad can be interrupted from outside.
kicad_check_dialogs List every KiCad dialog open right now, classified, each with its buttons, what it means and what is safe to do, and a screenshot (the standard's check_dialogs). Answers nothing, closes nothing.
kicad_check_for_updates Read-only: installed KiCad vs latest stable.
kicad_check_orientation Advisory: two-pad parts whose rotation could be better. Each part is scored at 0, 90, 180 and 270 degrees by airline length (a net's spanning tree, or for a plane-like net the distance to its nearest pad); parts whose best turn saves minImprovementMm are listed. Nothing is moved.
kicad_cleanup_libs Clean a symbol or footprint library: the parts no given project uses, and parts that repeat another part under a different name (same pins and graphics, or same pads and graphics). A plan by default; apply removes the names you list.
kicad_click Click at coordinates inside a KiCad window.
kicad_clone_symbol Copy a symbol inside a .kicad_sym under a new name, every unit and body style included.
kicad_close Close KiCad (editors first, then the project manager).
kicad_close_3d_viewer Close the 3D viewer window.
kicad_close_all_documents Close every open board, schematic and library editor without a save dialog (the standard's close_all_documents); unsaved work stays open and is listed unless save or discardUnsaved says what to do.
kicad_close_document Close ONE open board or schematic by its path, never saving (the standard's close_document): the editor window goes, KiCad and the project stay.
kicad_close_footprint_editor Close the Footprint Editor window.
kicad_close_symbol_editor Close the Symbol Editor window.
kicad_compile Check a project's schematic the way a compile does: KiCad's ERC on the root sheet (hierarchy followed) and the netlist, with the messages counted by class and the net and part counts.
kicad_component_classes List, make or remove component classes on the board (KiCad 9+), each optionally with a room: a rule area that keeps the class's parts together (fitted around their pads or a rectangle), enforced by a custom DRC rule. The classes scope rules (A.hasComponentClass('')) and group a channel for kicad_replicate_layout.
kicad_connect_workspace Connect the tool to a cloud workspace (the standard's connect_workspace). Not in KiCad: KiCad has no cloud workspace to connect to.
kicad_copper_balance Copper per layer as a share of the board, poured copper included, and how evenly mirrored layers match (F.Cu against B.Cu, In1 against the last inner layer): a pair that differs by more than 20 points can bow or twist through reflow.
kicad_copy_footprint Duplicate a footprint inside a .pretty library under a new name (every pad, graphic, text and 3D model copied).
kicad_create_part_project standard → kicad_make_part_project
kicad_cross_check Compare the schematic's designators with the board's (the standard's cross_check, computed by its engine): parts on the sheets but not on the board, and parts on the board but not on any sheet.
kicad_current_capacity Whether each named net's copper carries its current: per layer, the narrowest track against the width IPC-2221 needs for the temperature rise, and how many vias a layer change needs.
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_dialog_log What the bridge's dialog sweeps pressed since it started, newest last: each KiCad dialog it dismissed (benign notices, error boxes after a verb), with its title, body, the button and when.
kicad_diff_pairs Differential pairs on the board: list the pairs KiCad's router recognises from net names (+/-, P/N, _P/_N), with the net class that sets their width and gap; define one (a net class holding both nets, with diffPairWidth and diffPairGap) or remove that class.
kicad_dismiss_dialogs Programmatically expire KiCad dialogs (auto-clears the benign OpenGL/software-render notice; {all:true} clears every dialog).
kicad_doc_params Read or set a sheet's document parameters: KiCad's title block (Title, Revision, Date, Company, Comment1 to Comment9).
kicad_document_info The active KiCad document (the topmost KiCad window): its name, kind (board, schematic, library, project, model), whether it has unsaved changes, where it is saved, and its project (the standard's document_info). Read only; opens nothing.
kicad_edit_parts standard → kicad_edit_footprint
kicad_edit_pours Change existing copper pours (zones) in place without redrawing them: clearance, minimum width, thermal reliefs (on/off, spoke width, gap) or the pad connection, priority, the net, and whether islands are kept; then refill (the standard's edit_pours).
kicad_edit_tracks Change given tracks by their routing_state id: width, layer and ends (the standard's edit_tracks). One Undo step, read back.
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_ensure_licensed One call to a usable KiCad (the standard's ensure_licensed): KiCad needs no seat or sign-in, so this says it is free and starts it if it is not running.
kicad_eval Run a Python snippet with KiCad's pcbnew module, headless: with filePath the board is loaded as board; set result to return a value as JSON.
kicad_extension_ping Ping the bridge's extension inside the tool (the standard's extension_ping). Not in KiCad: KiCad needs no extension installed inside it: its IPC API is built in, so there is nothing to install, ping or keep a receipt for.
kicad_extensions KiCad's plugins and add-ons through its Plugin and Content Manager (the standard's extensions): list what is installed, install one, remove one.
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).
kicad_find_space Free spots on the board for a part near another: clear of every other part's courtyard on that side, of that side's tracks and vias, and inside the outline, nearest first. check:true lists parts that already overlap or leave the outline.
kicad_fix_keyboard Reset stuck modifier keys on a KiCad window.
kicad_footprint_from_land_pattern Build a complete footprint from the land pattern a datasheet prints: pads numbered the standard way (chip, dual SOIC/TSSOP/DFN, SOT, quad QFP/QFN, BGA), an exposed pad, the courtyard, silkscreen kept clear of the copper with a pin-1 dot, a fab outline with a pin-1 chamfer, and a 3D body box when the height is given.
kicad_footprint_primitives Geometry of one PLACED part on the board (the standard's footprint_primitives): its graphic lines and arcs, pads (shape, size, hole, net, solder and paste mask expansion in um) and texts, in mils in KiCad's board frame with each item's layer; other kinds are counted.
kicad_foreground Bring a KiCad window in front of the user: the one sanctioned exception to the never-foreground rule. A reason written for the person is required; the bridge captions it first.
kicad_generate_body Make a part's 3D body from its package family and datasheet dimensions (chip, SOIC, QFN, QFP, BGA, SOT-23, DFN, MELF, electrolytic can, crystal, pin header and others), to IPC-7351 proportions, optionally with a marking on its top; written as a STEP file and, given a footprint, attached to it.
kicad_get_settings Read the bridge's user-visible settings (overlay badges, ...).
kicad_height_check Will it fit the enclosure? Each part's height from its 3D model (top and bottom), the parts over a height limit board-wide or under a lid feature in a region, and bodies that collide or come closer than a gap.
kicad_impedance The track width for a target impedance (and the pair width and gap for a differential target) on each copper layer, from the board's own stack-up; optionally the width or pair rules for kicad_custom_rules.
kicad_import_design Bring a board from another tool into a NEW KiCad project through kicad-cli's importer: eagle, altium, pads, cadstar, fabmaster, pcad or solidworks (the standard's import_design). The source files are never changed.
kicad_import_step Place a STEP as free 3D geometry with the board (the standard's import_step). Not in KiCad: KiCad places 3D models only as a footprint's own model.
kicad_instances Every running KiCad process (the standard's instances): the project manager and any standalone editors, with pid and version.
kicad_ipc_api Read or flip KiCad's IPC API server switch (Preferences > Plugins) that live routing needs.
kicad_jlcpcb_order A JLCPCB order in one call: the board checked against JLCPCB's fab limits, the Gerbers and drill zipped the way JLCPCB's order page takes them, the JLCPCB BOM and pick-and-place (CPL), the assembly-tier check and the order-form values, in one folder with every issue in one list.
kicad_launch Cold-start KiCad (project manager) when nothing is running.
kicad_layers The board's whole layer set: KiCad's id, name, kind (signal, power, mixed, user) and the user's name for each, and whether the open PCB editor shows it.
kicad_length_tune Lengthen a routed net to a target length, or to match another net (a pair's skew, a DDR byte lane): a serpentine in its longest straight track that has room beside it, the bumps sized to add exactly the length missing, every bump clear of other copper and inside the board. Live as one Undo step after a DRC check, else in the closed file.
kicad_library_views Pictures of library parts for review, each as an image file: the schematic symbol, the footprint (pads with their numbers), the 3D body seated on the footprint, and the device view (every symbol pin mapped to a pad).
kicad_license Drive the tool's licence page (the standard's license). Not in KiCad: KiCad is GPL-3.0-or-later and has no licence page to drive.
kicad_license_status What licence KiCad is on, in plain words: KiCad is free, open-source software (GPL-3.0-or-later), so there is no seat, sign-in or trial; with the installed version.
kicad_list_installed_libraries Every symbol and footprint library KiCad loads: the global tables and, with projectPath, the project's own, with nickname, path and whether the path exists.
kicad_list_library Names of every symbol in a .kicad_sym or every footprint in a .pretty folder, the kind taken from the path (the standard's list_library).
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.
kicad_open_board Open a .kicad_pcb in the PCB editor (pcbnew).
kicad_open_document Open a board, schematic or project by path in KiCad without taking the foreground (the standard's open_document): .kicad_pcb in the PCB editor, .kicad_sch in the Schematic Editor, .kicad_pro in the project manager.
kicad_open_editors List currently open KiCad editor windows.
kicad_open_footprint_editor Open the Footprint Editor (optionally at a footprint).
kicad_open_project Open a KiCad project (.kicad_pro) in the project manager without taking the foreground (the standard's open_project).
kicad_open_schematic Open a .kicad_sch in the schematic editor (eeschema).
kicad_open_symbol_editor Open the Symbol Editor (optionally at a symbol).
kicad_panelize Step a rectangular board into a manufacturing panel: rows x cols copies, each copy's nets renamed B-, rails, three tooling holes and three fiducials; separated by V-score (copies abutting, V-cut lines on Cmts.User) or mouse-bite tabs (copies a gap apart, the rout path on Edge.Cuts broken at the tabs, five 0.6 mm holes a tab), with JLCPCB's panel rules checked; written as a new board and checked with KiCad's DRC.
kicad_part_parameters The parameter (field) names a project's placed parts carry, with how many parts carry each; or, with name, that parameter's value on every part. Read only.
kicad_pcb_report Numbers instead of pixels (the standard's pcb_report): for a footprint library, every footprint's pads, pad box, primitive census and 3D bodies; for a board, outline, parts with nets and bodies, census and tracks.
kicad_physical_properties Volume, mass and centre of mass per part (the standard's physical_properties). Not in KiCad: it has no materials or masses on a part.
kicad_pin_pad_check Do the footprints fit their symbols? Part by part, the symbol's pin numbers (every pin, from the schematic's netlist) against the footprint's pad numbers on the board: pins with no pad, pads with no pin, and parts only on the sheets or only on the board.
kicad_place_footprint Deterministically place a footprint into a board preview.
kicad_place_on_sch Place one symbol or a ';' list of symbols from a .kicad_sym on ONE new sheet, sized from the measured parts (12.7 mm gaps, 15.24 mm margins, A4 at least), each with the next free designator and its name as the value; fills the title block.
kicad_place_parts Put footprints from a library onto a board, each with its position, rotation and side (the standard's place_parts), and read them back.
kicad_placement_check A placement review before routing: parts whose pads and 3D bodies come closer than a margin on the same side, parts off the board or over its edge, pads too close to the edge for assembly and depanelling, and parts on a mounting hole.
kicad_plan_route Plan a path for one net between two pads without changing the board: a grid search around the existing copper that keeps the clearance rules, on the allowed copper layers, with vias where they help. Answered as kicad_route_net's own arguments.
kicad_plate_vias Make every drilled pad in a footprint library a plated hole through every copper layer (thru_hole, *.Cu *.Mask): a thru_hole pad on only some copper layers, or an smd pad with a drill (thermal vias written as surface pads). Numbered unplated holes are listed, and plated only with includeNpth.
kicad_plugin_diagnose Retired: reports that no plugin is expected and whether a leftover Python plugin payload is still on disk.
kicad_preferences Read KiCad's own settings, all or one by dotted path, or change them with set (the standard's preferences). KiCad rewrites its settings on exit, so set is refused while it runs.
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_board The whole board in one read (the standard's read_board): components, nets, layers, copper, rules, occupancy and outline, from the open PCB editor when it serves the board, else the file.
kicad_read_footprint standard → kicad_fp_info
kicad_read_schematic The parts on one schematic sheet (the standard's read_schematic): designator, library reference, comment, position and parameters, for filePath or the sheet open in the Schematic Editor.
kicad_read_sheet_file Read a schematic sheet straight from its .kicad_sch file, with no KiCad running: every placed part unit with its designator, library symbol, value, description, uuid, unit and unit count, position, rotation, flags, and optionally its fields and pins.
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_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.
kicad_render_board_3d standard → kicad_render_board
kicad_render_board_layers Render chosen board layers to a PNG or SVG through kicad-cli without opening a window (the standard's render_board_layers): a preset view (copper, silkscreen, solder mask, paste, outline, drill, assembly, fabrication, either side) or a list of layers.
kicad_replicate_layout Copy one channel's placement to matching channels: each target keeps its anchor part where it is, and every other part takes the source's offset and rotation from the anchor (turned by the anchors' rotation difference). One Undo step, with kicad_move_footprint's checks.
kicad_return_path Signal tracks that run over a gap in the reference copper (pours and planes) on their neighbouring layers, with how far and where the gap starts, and a ready kicad_apply_zone_plan call that pours the reference net under each gap.
kicad_review_board Design review of the whole board in one read (with the schematic's parts from KiCad's netlist when the project has one): duplicate designators, parts off the board or near its edge, placeholder values on the board and the sheets, one-pin nets, parts without a footprint, missing vendor part numbers and datasheets, and disabled or missing design rules, each finding with its severity.
kicad_ripup_nets Delete every unlocked track, arc and via of the named nets live, as one Undo step (pads, pours and locked copper stay).
kicad_routing_drc KiCad's DRC on the board as the PCB editor holds it (unsaved edits included; the file when no editor serves it), with the project's rules and zones refilled: one clean or not-clean answer with every violation's place (the standard's routing_drc).
kicad_rules_by_kind Every design rule the board answers to, grouped by kind (Clearance, Width, RoutingVias, HoleSize, ...) and sorted by priority (1 wins), from the project's custom rules (.kicad_dru), net classes and Board Setup minimums (the standard's rules_by_kind).
kicad_schematic_data The parts on one schematic sheet with their pins (the standard's schematic_data): number, name, electrical type, position, orientation and length of each pin; designator filters to one part.
kicad_schematic_review Review the schematic before updating the board: every pin (with its electrical type) against KiCad's own netlist of the design. Errors: power pins on no net, outputs driving each other. Warnings: pins on no net, one-pin nets, inputs nothing drives, IC supplies with no decoupling capacitor to ground.
kicad_screenshot_all Screenshot every open KiCad window.
kicad_selftest_script_error Self-test the script-error safety net (the standard's selftest_script_error). Not in KiCad: KiCad runs no resident script engine to test: a failing kicad_eval snippet already comes back as eval_failed with its traceback.
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_layer_visibility Show or hide one layer in the open PCB editor (KiCad's own layer visibility, through its API), read back.
kicad_set_models Set a library symbol's one footprint link (the standard's set_models): replaces the Footprint field of a symbol in a .kicad_sym and says whether another was there.
kicad_set_params Set parameters on a library symbol (fields; a missing one is added hidden), optionally its value (the standard's comment) and its footprint link.
kicad_set_settings Change bridge settings; applies immediately (e.g. overlay badges stamped/cleared on live windows).
kicad_set_track_width Set the width of the EXISTING tracks and arcs on nets or a net class, optionally on one layer (the standard's set_track_width): widen power nets after routing, or thin a net that fails clearance. Net-class rules only steer new routing.
kicad_set_visibility Show or hide one field of a library symbol.
kicad_setup_trial From nothing to a working KiCad, one step per call (the standard's setup_trial): reports stage install, launch or done and the one next action. KiCad has no trial or sign-in, so no person is needed.
kicad_sheet_params Write parameters onto PLACED parts on the schematic sheets (the BOM write-back: MPN, Manufacturer, Mouser/DigiKey/LCSC numbers, anything): every unit of each designator, on whichever sheet of the project holds it. A missing parameter is added hidden.
kicad_show_2d_board Show the 2D board layout in the PCB Editor.
kicad_show_3d_board Show the whole board in 3D (the board's 3D viewer).
kicad_show_3d_chip Show a single part in 3D (the footprint's 3D view).
kicad_show_footprint Show a footprint in the Footprint Editor.
kicad_show_library Browse a symbol or footprint library (no part loaded).
kicad_show_project Show the whole electronics PROJECT: the KiCad Project Manager (top of the design tree).
kicad_show_schematic Show a schematic (2D) in the Schematic Editor.
kicad_show_symbol Show a schematic symbol in the Symbol Editor (design/library surface).
kicad_signin Sign in to the tool's account (the standard's signin). Not in KiCad: KiCad has no account to sign in to.
kicad_signin_status Account and workspace state (the standard's signin_status): KiCad has neither, so licensed is true, workspaceConnected false, and running says whether it is up.
kicad_silk_designators Place every reference designator the way assembly houses want: one size, upright, beside its own part, clear of every pad (JLCPCB: 0.15 mm), every other part's body and the other designators, inside the board, then read back from KiCad. Parts with no clear spot are reported, not forced onto pads.
kicad_silk_state The silkscreen as it stands: every part's body box, its designator and value as placed (text, position, size, rotation, shown), and the free texts and graphics on both silkscreen layers.
kicad_silkscreen_prep Get the silkscreen off the copper for fab: the Gerbers set to subtract the solder mask from the silkscreen (KiCad's own clipping), silkscreen lying outside the board deleted, designators that sit on pads moved beside their parts, and KiCad's silkscreen DRC findings counted before and after.
kicad_simulate Simulate a schematic with SPICE, headless: KiCad's netlist of the sheet run by the ngspice library KiCad installs, with the analysis you give (transient, AC, DC sweep, operating point) or the one the schematic carries, optionally stepped over a part's value, a model parameter or the temperature; each probe comes back downsampled with its first, last, min and max values (AC as dB and phase), and as a CSV file.
kicad_state KiCad's full state of the union: every owned window as inline base64 PNG + logical state.
kicad_status Bridge health, KiCad version, install location and uptime.
kicad_swap_footprint Put another library footprint on one placed part at the same position, rotation and side, keeping its reference, fields, schematic link, DNP/BOM flags and lock; pads keep their nets by number and assigns sets nets on any pad. Tracks are not moved.
kicad_symbol_mode Show one body style of a library symbol as a picture: mode 0 the standard body, mode 1 the De Morgan alternate (KiCad's two display modes), for one unit, plotted by KiCad itself (kicad-cli) without opening an editor.
kicad_symbol_prims A library symbol's drawing: primitives counted by kind, the body rectangle, the polylines' bounding box, units and body styles, the footprint link and filters. Read only.
kicad_taskbar_repair Fix the white taskbar icon on standalone KiCad editors by writing KiCad's own AUMID onto its Start Menu shortcuts.
kicad_teardrops Add (or remove) teardrops with KiCad's own Edit > Edit Teardrops on the board open in the PCB editor: on vias, PTH pads and SMD pads, optionally track to track, for the whole board or the selection; teardrops counted before and after.
kicad_test_board Place one footprint, or a ';' list, from a library on ONE board: a NEW board (wMm x hMm outline) when pcbPath does not exist, APPENDED right of the parts already there when it does; optionally pad nets on the last part.
kicad_thermal_vias A thermal via grid in a part's exposed pad (the ground or thermal pad under a QFN, DFN, PowerPAD or regulator): centred, inset from the pad's edge, on the pad's net, sized by the project's Default net class. Live as one Undo step after a DRC preflight, else written into the closed file.
kicad_tool_update KiCad's own updates (the standard's tool_update): check whether a newer stable KiCad is offered, apply it with the official installer when KiCad is closed, or read or set KiCad's own automatic update check.
kicad_trace_net Every pin on one named net (read-only).
kicad_uninstall Remove everything this bridge created: plugin payload, Adom symbol/footprint/3D libraries and their lib-table rows, Mesa fallback DLLs, discovery files, demo and staging projects. Never KiCad itself, never user projects.
kicad_upgrade Install/upgrade KiCad via the official installer (agent installs for the user).
kicad_variants KiCad 10's design variants (which parts are fitted on which build): list every variant with its not-fitted parts and changed fields, make or change one with not-fitted parts (or put parts back), or remove one, on the project's schematic files; KiCad's own netlist for the variant reads the result back.
kicad_verb_times Measured per-verb run times ON THIS MACHINE: count, p50, p90, max, last, failures from the append-only run log, sorted by p90 descending.
kicad_via_fence A via fence for EMC: a row of ground vias on both sides of RF or fast nets' tracks, and/or round the board edge, at a pitch from the frequency (lambda/20 in FR-4) or given; each via clear of other copper and pads, other vias, via keepouts and the edge. Live as one Undo step after a DRC preflight, else written into the closed file.
kicad_window_info Report geometry/state for open KiCad windows (auto-expires benign OpenGL dialogs).
kicad_xcopy_footprint Copy a footprint ACROSS libraries: from fromLib into toLib (created when missing), optionally under a new name.
kicad_zoom_to Frame the open PCB editor's view on parts or a whole net (or the whole board), with KiCad's own Zoom to Selected Objects run through its API, so it works while KiCad stays in the background.

Running / dependencies

Bridge provisions everything; there is nothing to install by hand.

  • Python ≥ 3.11 (Bridge provisions it), stdlib only, plus the bundled certs/cacert.pem.
  • KiCad ≥ 7.0 (host app; kicad_upgrade installs it if absent).
  • OS: Windows (macOS/Linux detection stubs exist; the GUI surfaces are Windows-first).

The bridge binds ADOM_BIND_HOST on a Bridge-assigned port, never 0.0.0.0. Auto-updates via updateManifestUrl in bridge.json.


Developer docs ship as user-invocable:false skills in the package itself, kicad-bridge-dev (architecture + hard-won findings), kicad-bridge-publish (release recipe), and kicad-bridge-hero (page hero recipe). Maintainers get them with the normal pkg install; everyday users are never offered them.

Contribute

This page's repo is the full source (adom-wiki repo clone adom/kicad-bridge): the Rust bridge, the skills, the docs and the release tooling. Hit a bug or a missing verb? File it with the verbatim reply, and if you fix it, send a branch PR off the current head; Adom merges PRs within minutes during business hours and ships to the insiders tier the same day. The recipe, the build commands and the rules that keep a PR mergeable are in the kicad-bridge-contributing skill and in CONTRIBUTING.md.