diodeinc/pcb
Command-line PCB design tool: describe schematics in Zener, a Starlark-based language, build the design, manage dependencies, and generate KiCad layout files.
What it does and how it connects
diodeinc/pcb is a command-line tool for circuit board projects written in Zener, a Starlark-based language for describing PCB schematics. The pcb command builds those designs, manages dependencies, and generates KiCad layout files. It installs through a launcher script on macOS, Linux, or WSL2 (native Windows support is experimental), and the launcher downloads the toolchain selected by each project.
A design is a .zen file that imports modules from a standard library or dependencies, declares nets and power, places parts with packages, and names a board with its layer count and layout path. The commands pcb build and pcb layout produce the design and the KiCad layout. KiCad 10.x is required for layouts, but not for building Zener designs. Documentation and a language reference live at docs.pcb.new.
The README credits KiCad, the starlark-rust library from Meta, and atopile and tscircuit as inspiration. Diode-authored code and docs are MIT licensed except where otherwise noted.
Alternatives
Compare side by side- atopile
Describes boards in the atopile language and compiles them to KiCad, rather than in Zener, a Starlark-based language.
- tscircuit
Creates electronics with TypeScript and React and compiles to Circuit JSON, rather than describing schematics in Zener.
- tscircuit core
Builds Circuit JSON from TypeScript and React elements, rather than building KiCad layouts from Zener files.
- pcbkit
Generates KiCad boards from Python code, rather than from Zener, a Starlark-based language.
- circuit-json-to-kicad
Converts Circuit JSON into KiCad schematics and layouts, rather than generating layouts from Zener designs.
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 for the pcb tool on the repo or docs site; diode.computer states prices for Diode's design service (enterprise from $10,000 per design), not for the tool.
- Real user voices: recent repo activity is maintainer pull requests.
Last verified November 6, 2026. Listings are informational. The evidence score measures public, verifiable evidence and is not an endorsement or a compatibility claim.