kicad-to-circuit-json
Converter that turns KiCad projects into Circuit JSON for downstream tooling.
What it does and how it connects
kicad-to-circuit-json converts KiCad schematic, symbol library, PCB, and standalone footprint files into Circuit JSON format. A staged pipeline mirrors the reverse converter: the schematic pipeline collects library symbols, traces, wires and junctions, while the PCB pipeline builds net mappings, converts footprints to components with pads and holes, turns segments and vias into trace routes, and extracts the board outline and silkscreen graphics.
Dedicated converters cover a single .kicad_mod footprint and a single .kicad_sym symbol library, and legacy KiCad 5 standalone footprints go through a separate best-effort upgrade step before parsing. The package installs from npm or bun, and the repository includes a small Vite browser viewer that accepts drag-and-drop .kicad_pcb, .kicad_sch and .kicad_sym files, converts them with the local library source, and renders the resulting Circuit JSON in an embedded preview.
The README states its MVP limits plainly: component sizes are estimated rather than derived from actual symbol geometry, port positions are simplified, trace routing is basic, some pad shapes may not map perfectly, power symbols and net labels need enhancement, and multi-sheet schematics are not fully tested.
Alternatives
Compare side by side- dsn-converter
Converts Specctra DSN files to Circuit JSON, rather than KiCad projects.
- circuitron
An agent-driven PCB prototyper that turns natural-language requirements into SKiDL scripts and KiCad files, rather than converting KiCad files to Circuit JSON.
- tscircuit
Designs boards in TypeScript and React with Circuit JSON under the hood, rather than converting KiCad files into it.
- universal-netlist
An MCP server that reads and queries electrical schematics and netlists from Cadence, Altium and KiCad designs, rather than converting KiCad files to Circuit JSON.
Recurring errors it addresses
Error Index entries this tool is built to reduce or work around.
- The importer kept nine filled copper polygons but silently dropped all eight unfilled copper circles from an Antmicro logo.Error Index
- The tscircuit KiCad importer parsed resistor and capacitor values correctly, then wrote them only to manufacturer_part_number, leaving schematic components with no resistance or capacitance.Error Index
- The same importer turned KiCad courtyard lines into 558 zero-area polygons, so placement DRC threw and board conversion stalled.Error Index
Sources
Not verified
- Pricing: none stated on the repo.
- Real user voices: no real linked post read for this page; the repo has no public issues listed via the API.
- No GitHub releases exist, so latest release fields are null.
- A named individual builder: the repository names the tscircuit organization, not a person.
Last verified November 6, 2026. Listings are informational. The evidence score measures public, verifiable evidence and is not an endorsement or a compatibility claim.