Fragua es una herramienta de diseño de PCB nativa para agentes. El modelo sintetiza el esquemático, coloca componentes, rutea y pasa ERC/DRC en tiempo real; tú observas el render en vivo y rediriges cuando hace falta. Un binario de escritorio en Rust + Tauri con una API de scripting local para el agente — del prompt al zip de fabricación sin kicad-cli ni freerouting.jar.
Cualquier agente que hable HTTP (Claude Code, GPT, un loop de shell) manda el DSL de pcb-script a POST /script: sym, net, place, route, pack. La referencia completa se sirve en GET /.
La app de escritorio es la fuente única de verdad. Atiende una API HTTP sin estado en 127.0.0.1:7878 y reemite cada cambio al webview vía un bus de eventos broadcast. Guarda proyectos .fragua en JSON.
El frontend re-renderiza el board a SVG en cada evento — sistema de coordenadas Y-up, geometría en nm de coma fija. Si el agente se desvía, te metes y corriges. Sin commits, sin guardar.
Un lenguaje de líneas — lib, sym, net, class, place, route, erc, drc, pack. Agente y visor comparten un único Project sin sincronización extra.
Cada evento del proyecto regenera el SVG: sustrato, cobre, silkscreen con trazos Hershey y overlay de violaciones DRC. Coordenadas Y-up en nanómetros de coma fija.
A* sobre grid de 2 capas con rip-up-and-reroute, congestión negociada y multi-source estilo Steiner. Respeta el NetClass de cada red: ancho de pista y clearance por clase.
Simulated annealing sobre HPWL con penalización de huecos y proxy de congestión. Tú puedes arrastrar cualquier componente en cualquier momento; el agente re-planifica alrededor de lo fijado.
ERC por roles (pines flotantes, múltiples drivers, redes sin alimentar) con heurísticas de decoupling y pull-ups I²C. DRC de clearance, drill, borde — más DRC de fabricación por proveedor.
Gerbers RS-274X, taladros Excellon, BOM y pick-and-place en el formato de cada proveedor — JLCPCB, PCBWay o genérico. pack lo deja todo en un único zip listo para subir.
Nada más que el binario: el instalador lo deja en /usr/local/bin (o ~/.local/bin). Rust y Node solo hacen falta si compilas de fuente.
Agente y humano comparten un Project en vivo: esquemático + ERC, placement con annealing, auto-router de 2 capas, DRC continuo, pours y salida de fabricación por proveedor. Lo siguiente, según VISION.md: steering más rico (pen tool, anotaciones sobre el canvas), progreso en streaming y biblioteca de símbolos más amplia.
Open source (MIT), escrito en Rust, sin nube. Instala el binario, abre la app, conecta tu agente.