pcbkit
Code-first PCB workflow where a Python project generates the KiCad schematic, routed board, design checks and fab files, with agent instructions for coding tools.
What it does and how it connects
pcbkit designs, places, routes, checks, and exports KiCad boards from Python. A board is a small project of plain Python modules and one pcbkit.toml file; the schematic, placement, routed copper, fab files, and a suite of design checks are all generated from it, so a change to a board is a code change that can be reviewed, rebuilt, and checked. It is built and tested on macOS with KiCad 10.0.6, makes two-layer boards, routes them with Freerouting, and knows PCBWay limits and order forms.
Commands come in two tiers because KiCad's pcbnew Python module only imports under the Python that ships inside KiCad. Tier 1 needs no pcbnew and runs anywhere: new, doctor, setup, sch, report, quote, and shots. Tier 2 imports pcbnew and runs in the board project's own virtual environment: build, route, promote, finalize, check, mutants, and compare. The pipeline runs from build (schematic, ERC, netlist, placement) through route (Freerouting, ground pours, DRC) to finalize (rebuild from the golden route, DRC, Gerbers, BOM, renders).
The repository is also a Claude Code plugin, with skills for starting a board, running the build loop, adding a check, reviewing a layout, and ordering from PCBWay, plus two helper agents and hooks that stop edits to generated folders. Requirements are KiCad 10, Java 17 or newer, ngspice, librsvg, and uv.
Alternatives
Compare side by side- atopile
Describes boards in the atopile language and compiles them to KiCad, rather than generating KiCad boards from Python.
- tscircuit core
Creates electronics with TypeScript and React and compiles to Circuit JSON, rather than generating KiCad boards from Python.
- diodeinc/pcb
Describes schematics in Zener, a Starlark-based language, and generates KiCad layouts, rather than writing boards in Python.
- circuit-json-to-kicad
Converts Circuit JSON into KiCad schematics and layouts, rather than generating the design from Python code.
- tscircuit
The full code-based PCB toolchain in TypeScript and React, rather than a Python project that generates KiCad boards.
Recurring errors it addresses
Error Index entries this tool is built to reduce or work around.
- Interactive routing creates unwanted micro-segments and awkward paths that take time to clean up.Error Index
- Grid snap and move commands can disconnect items or reposition them in unwanted ways.Error Index
- GUI lag, occasional freezes, and sluggish editor switching interrupt concentration.Error Index
- Wayland/NVIDIA users report graphical glitches, flicker, or instability.Error Index
Sources
Not verified
- Pricing: none stated on the repo or docs site.
- Real user voices: recent issues are all by the owner.
Last verified November 6, 2026. Listings are informational. The evidence score measures public, verifiable evidence and is not an endorsement or a compatibility claim.