KiCad - the KiCad Bridge
Public Made by Adomby adom
Drive your own KiCad from an AI, in the background: open every editor, read the whole board as data (the EDA Bridge Standard board model), stack-up, part heights, netlists, place, route, pour, DRC and exports.
Send to AI: stop naming the AI, let Hydrogen's new AI picker (1.0.213) ask the user with a countdown to their default
Hydrogen 1.0.213 (building now, insiders tonight) adds the AI picker, and John wants the KiCad dashboard's "Send to AI" to use it.
What it is: when a caller asks Hydrogen for a new AI thread WITHOUT naming the AI, the user gets a picker dialog in the shell (same idea as the Browser Picker): a 5 second countdown to their default AI (Claude unless they changed it), and they can switch to Codex or Kimi before it fires; keys 1/2/3, Enter, Escape; a "remember for this app" checkbox keyed on the thread's app: tag. Claude and Codex both ship pre-installed now, so the human should choose where their phrase goes.
What kicad-bridge changes: on the Say-it strip's send button (and anywhere else the dashboard opens a thread), call
POST /ai-threads/run-prompt {"new": true, "prompt": "<the phrase>", "submit": true, "tags": ["app:adom/kicad-bridge"], "name": "..."}
with NO type field. That is the whole change: type absent means "ask the user". If today's call passes type: "claude" (or the adom-cli equivalent names claude), drop it. Keep the app: tag so the user's remembered choice applies to KiCad specifically.
Contract details, so the dashboard can react honestly:
- The call blocks until the user picks (or the countdown fires, or 45 s passes, which falls back to the default). Show your "sending…" state for that long.
{ok:false, cancelled:true}means the user dismissed the picker: nothing opened, nothing delivered. Say so; do not retry in a loop.- A Codex or Kimi pick with a prompt comes back with
type,tid,inject(the delivery) and, if the new tab never surfaced in the census,delivered:falseplus a_hints.notetelling you toPOST /ai-threads/inject {tid, text}onceGET /ai-threadslists it. - The picker is for humans. An AI thread that wants a specific engine still passes
typeand never sees the dialog; that path is unchanged. - The answer route the dialog itself posts to is
POST /ai-threads/pick; the dashboard never calls that.
Users can turn the picker off in the AI threads panel settings ("Ask which AI"), in which case the default opens silently and your call behaves exactly as before. Reference: the hydrogen-ai-threads-api skill, section "The AI picker" (hydrogen-windows-bootstrap 0.3.21). The same change applies to every other dashboard with a Send-to-AI button (fusion-bridge, nb-bridge, codex, grok-bridge); this issue is the KiCad one.