Getting started
This guide takes you from nothing installed to a board ready to order.
1. Install the tools
| Tool | Why | How |
|---|---|---|
| Claude Code | Runs the plugin | claude.com/claude-code: the desktop app, terminal CLI or IDE extension |
| KiCad 9 | Schematics, boards, checks, exports | macOS: brew install --cask kicad. Windows: winget install KiCad.KiCad. Or kicad.org/download. The default install location is fine |
| Java 21+ | Runs the Freerouting autorouter | macOS: brew install --cask temurin. Windows: winget install EclipseAdoptium.Temurin.21.JDK. Linux: your package manager (openjdk-21-jre) |
| Git for Windows (Windows only) | Claude Code runs commands in Git Bash | winget install Git.Git |
macOS, Windows 10/11 and Linux are supported, and everything after this step
is identical on all of them. The plugin runs on KiCad's bundled Python, so
nothing else is needed. On Linux, install KiCad from the official PPA or
Flatpak so that python3 -c "import pcbnew" works.
2. Install the plugin
In Claude Code, run:
/plugin install pcb --marketplace virajrungta/viaduct
Confirm the marketplace and choose Install for you. A setup form asks for
your usual manufacturer, how boards get built (assembled or hand-soldered),
your default layer count, and whether kipcb may learn from your boards
(locally). Change these later with /plugin configure viaduct@viaduct.
Turn on auto-update so weekly versions arrive automatically: /plugin →
Marketplaces → pcb-claude-plugin → Enable auto-update.
Start a new session. The plugin welcomes you and checks your toolchain.
3. Check the toolchain
In a Claude Code session, ask Claude to "run kipcb doctor" (kipcb is
available inside Claude Code sessions). You should see KiCad, pcbnew and
Java reported as OK. If Freerouting shows as not installed, ask Claude to run
kipcb setup-router: it downloads the Freerouting autorouter (~65 MB) from its
official GitHub releases into kipcb's cache folder (~/.cache/kipcb on macOS,
%LOCALAPPDATA%\kipcb\cache on Windows). When you use /viaduct:design, Claude
asks before downloading it.
4. Design a board
In Claude Code, from the folder where you want the project:
/viaduct:design a USB-C powered ESP32-C3 board with an RGB status LED, reset and boot buttons, and a 4-pin I2C header
What happens next:
- Questions. Claude asks a few quick questions: board size, power source and current, which connectors go on which edges, assembly vs hand soldering, and whether anything is noise-sensitive. Answer what you know; sensible defaults cover the rest.
- Architecture and parts. Claude proposes a block diagram and power tree, then picks real parts from KiCad's libraries, checking every pin and following each chip's datasheet reference circuit.
- Spec and validation. The circuit is written as a JSON design spec in
hardware/<name>.jsonand validated. Every pin must be connected or explicitly marked unused. - Build and inspect. The schematic and a placed board are generated, checked, and rendered. Claude looks at the renders and adjusts placement.
- Route. The board is autorouted, ground planes are poured, and DRC plus the noise checks run until clean.
- Manufacturing files. Gerbers, BOM and pick-and-place files land in
hardware/<name>/fab/.
Claude finishes with the run report: whether the board is ready to order, where
the project is, board size and layers, which checks passed, the
manufacturing files, and anything that deserves a human look, plus the
assumptions it made. The same summary is saved in reports/REPORT.md inside the
project, and kipcb report <project> prints it again any time.
hardware/<name>/
<name>.kicad_pro / .kicad_sch / .kicad_pcb open in KiCad
fab/ Gerber zip, BOM, pick-and-place: send these to the manufacturer
previews/ board and schematic images, printable PDFs
reports/ REPORT.md and the check results
5. Open it in KiCad
open hardware/<name>/<name>.kicad_pro
(xdg-open on Linux.) It's a normal KiCad project: edit the schematic, nudge
parts, or hand-route critical nets.
Spec vs hand edits. Claude edits the JSON spec and rebuilds, and a rebuild regenerates the KiCad files. Iterate with Claude first, then switch to KiCad for final polish. After that,
/viaduct:reviewand/viaduct:fabwork directly on your edited files.
6. Order boards
/viaduct:fab hardware/<name>
Upload fab/<name>-gerbers.zip to your fab (JLCPCB, PCBWay, OSH Park…). For
assembly, also upload fab/<name>-bom.csv and fab/<name>-cpl.csv, and check
part rotations in the fab's preview. Claude never places orders for you.
Questions and feedback
/viaduct:inquiry what pull-ups do I need for I2C at 400 kHz?
/viaduct:inquiry path/to/my_board/
Ask anything about circuits, parts, layout or manufacturing, or point it at a design (a KiCad project, a spec, a schematic image or PDF, a Gerber zip) for quick feedback. Boards are compared with real routed open-source designs.
Try the examples first
git clone https://github.com/virajrungta/viaduct
cd viaduct && bin/kipcb run examples/usb_blinker.json
Then open examples/usb_blinker/usb_blinker.kicad_pro in KiCad.