circuit-json-to-kicad
Exporter from tscircuit Circuit JSON to KiCad schematics and layouts.
What it does and how it connects
circuit-json-to-kicad converts Circuit JSON files to KiCad schematic (.kicad_sch), PCB (.kicad_pcb), and project (.kicad_pro) files. Circuit JSON is an open-source file format for describing electronic circuits, and this library lets the user generate KiCad-compatible files from Circuit JSON, so KiCad's PCB design tools can be used with circuits defined in code.
Three converters cover the three outputs: CircuitJsonToKicadSchConverter for schematics, CircuitJsonToKicadPcbConverter for layouts, and CircuitJsonToKicadProConverter for projects. It installs from npm or bun, and the README walks through a complete example with tscircuit: define the circuit in TypeScript and React, render it, then convert to a schematic and a PCB.
If a circuit declares tscircuit schematicsheet elements and assigns components to them with the schSheetName prop, the converter emits a KiCad hierarchical schematic: a root .kicad_sch with one sheet node per sheet, plus a separate child .kicad_sch file for each sheet's contents. The README also documents the project structure and links a page explaining Circuit JSON.
Alternatives
Compare side by side- tscircuit core
Builds Circuit JSON from TypeScript and React elements, producing what this exporter consumes, rather than converting it to KiCad.
- tscircuit
The full code-based PCB toolchain that produces Circuit JSON, rather than the exporter that turns Circuit JSON into KiCad files.
- atopile
Describes boards in the atopile language and compiles them to KiCad, rather than converting Circuit JSON to KiCad.
- diodeinc/pcb
Describes schematics in Zener, a Starlark-based language, and generates KiCad layouts, rather than converting Circuit JSON.
- pcbkit
Generates KiCad boards from Python code, rather than converting Circuit JSON into KiCad files.
Recurring errors it addresses
Error Index entries this tool is built to reduce or work around.
- Importing a TI TMDS62LEVM board misplaced polygon pads because the polygon vertices already carry the pad's position and the converter added the X/Y again. The fix, with PR #221, was checked against all 152 polygon pads on 57 components.Error Index
- Exported .kicad_pcb files carried a KiCad 9 version stamp over KiCad 8 layer numbers, so EasyEDA Pro rejected them, and placed schematic symbols had an empty Footprint field while the PCB had the footprint.Error Index
- 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
Sources
Not verified
- License: the GitHub API classifies the license as NOASSERTION, but the LICENSE file text is the MIT License (copyright tscircuit Inc.), so MIT is used from the LICENSE text.
- No GitHub releases exist, so latest release fields are null.
- Pricing: none stated on the repo.
- Real user voices: recent repo activity is bot and contributor 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.