
KiCad to Circuit JSON
https://github.com/tscircuit/kicad-to-circuit-json- Category
- Developer Tools
- Rank
- No. 1626Tools index
Previous survey · No. 1644 ·
- Pricing
- Open Source
- Type
- TOOL
- Builder
- tscircuit
- GitHub
- 4 stars
- Date
About
Convert KiCad projects into Circuit JSON for use with the tscircuit ecosystem.
What it does
It reads KiCad board, schematic, symbol-library, and standalone-footprint content, then processes each input through ordered conversion stages. The result is structured circuit data, accompanied by warnings and conversion statistics. A browser viewer also accepts dropped files and previews converted boards or schematics.
Why it's ranked here
The tool covers both board and schematic workflows, with dedicated paths for symbol libraries and footprints. Its staged design, diagnostics, layer mapping, and legacy-footprint upgrade make it practical for targeted conversions. The repository still calls it an MVP, and several fidelity gaps limit confidence for complex designs.
What's good
Board handling includes footprints, pads, holes, traces, vias, copper zones, outlines, silkscreen graphics, and net mappings. Schematic handling includes components, pins, wires, junctions, and key properties. It also accounts for coordinate-system differences, internal copper layers, named nets from newer KiCad data, arcs, curves, and circles.
Tradeoffs
Symbol sizes are estimated, port positions use simplified transforms, and routing groups segments by net and layer. Some pad shapes can map imperfectly. Net labels and power symbols remain partial, while multi-sheet schematics are not fully tested. Legacy KiCad 5 footprint support only rewrites the root token as a best-effort upgrade.
How to use it well
Use it when a TypeScript workflow needs structured data from a board, schematic, symbol library, or individual footprint. Inspect warnings and preview the result before trusting geometry-sensitive output. It suits migration, visualization, and ecosystem integration work. It does not replace full-fidelity KiCad editing or guarantee complete multi-sheet schematic conversion.
Technical notes+
package.json defines an ESM package built from lib/index.ts with tsup-node and TypeScript declarations. lib/KicadToCircuitJsonConverter.ts selects pipelines by file extension, parses inputs with kicadts, stores output through @tscircuit/circuit-json-util, and exposes warnings and stats. lib/types.ts caps each ConverterStage at 100 iterations and records a warning on overflow. lib/KicadFootprintToCircuitJsonConverter.ts upgrades legacy input before parsing and applies a flipped PCB transform. lib/stages/pcb/arc-utils.ts approximates arcs, cubic Bézier curves, and circles with point sequences. lib/stages/pcb/layer-mapping.ts maps front, back, and internal copper layers. lib/stages/pcb/net-utils.ts accepts numeric and named net identities.
Observed
- License
- MIT
- Primary language
- TypeScript
- Packaging
- ES module package installable with npm or Bun
- Library interface
- Exports general, standalone-footprint, and symbol-library converter classes
- Browser interface
- Includes a Vite drag-and-drop viewer with embedded board and schematic previews
- Input formats
- KiCad board, schematic, symbol-library, and standalone-footprint content
Read from README.md, package.json, lib/index.ts, lib/types.ts, lib/KicadToCircuitJsonConverter.ts, lib/KicadSymbolToCircuitJsonConverter.ts, lib/KicadFootprintToCircuitJsonConverter.ts, lib/stages/index.ts, lib/kicad5/upgradeKicad5FootprintToKicad6.ts, lib/stages/pcb/index.ts, lib/stages/pcb/arc-utils.ts, lib/stages/pcb/net-utils.ts, lib/stages/schematic/index.ts, lib/stages/pcb/layer-mapping.ts, lib/stages/symbol-library/index.ts.
What it can do
Convert KiCad project files to Circuit JSON format
KiCad project files → Circuit JSON files
Parse KiCad schematic data
KiCad schematic files (.sch) → Structured circuit data
Extract component information from KiCad designs
KiCad component libraries and placements → Component metadata in JSON format
Convert PCB layout data to tscircuit format
KiCad PCB files (.kicad_pcb) → Circuit JSON with layout information
Enable tscircuit ecosystem integration
Circuit JSON files → Compatible data for tscircuit tools
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.