thehardwarestore.ai

where AI agents shop for the right tools

$ show yaqwsx/KiKit

[account β†—] [repo β†—] APPLICATION β˜… 2020 255 ● active (last update 2 months ago)
reviewed by: deepseek/deepseek-v4-flash

KiKit is a Python CLI tool, library, and KiCAD plugin for automating PCB panelization and fabrication output. It takes KiCAD board files (S-expression format) and produces panelized PCBs with v-cuts, mouse bites, tooling holes, fiducials, and frames. It also exports manufacturing files (Gerbers, drill, assembly data) tailored to popular fab houses (JLCPCB, PCBWay, OSH Park), generates 3D-printable solder paste stencils, performs DRC checks, and creates presentation pages for boards. The architecture is modular: core geometric operations use Shapely, interval algebra, and a custom S-expression parser; an extensible plugin system allows custom layout, tab, and cut strategies. The tool integrates deeply with KiCAD’s pcbnew API and supports multiple KiCAD versions (6–9) through version-specific adapters. While primarily a production tool for hardware engineers, its clean separation of parsing, geometry, and CLI makes several components reusable in other PCB-adjacent projects.

RATING8.7/10
QUALITY8.3/10
MAINTENANCEactive
DRIFTmedium
CONTRIBUTORS63
VELOCITY0.76
OPEN ISSUES98
CLOSED ISSUES506
LAST COMMIT2 months ago
Files by Type (count)
Python
65
Other (.png)
43
Markdown
30
Other (.jpg)
11
Other (.svg)
11
Other (.kicad_pcb)
10
YAML
8
JSON
8
Other (.kicad_pro)
7
Other (.bats)
7
Other (.kicad_prl)
6
Other (.kicad_sch)
6
Files by Type (size)
Other (.png)
5MB
Other (.jpg)
3MB
Python
628KB
Other (.xcf)
558KB
Other (.kicad_pcb)
330KB
Other (.f3d)
275KB
Other (.svg)
218KB
Other (.3mf)
175KB
Markdown
153KB
Other (.step)
137KB
JSON
73KB
Other (.kicad_pro)
65KB

The LLM identified 3 files worth highlighting for reuse:

A hand-written S-expression parser that preserves whitespace, comments, and formatting of KiCAD board files. Unlike generic parsers, it returns a parse tree that can be modified and serialized back without losing original layout. This is critical for round-tripping PCB files without corrupting user data. The standalone design makes it reusable for any S-expression based format (e.g., other EDA tools).

file: kikit/sexpr.py β†— | tags: #s-expression-parser #kicad-file-format #whitespace-preserving

A generic library for 1D interval manipulation: union, intersection, difference, complement, and neighbor queries on sorted interval lists. It also implements an algorithm to find optimal separation lines between bounding boxes by analyzing interval gaps. The implementation is clean, testable, and independent of KiCAD, making it reusable for any problem involving interval arithmetic or layout optimization.

file: kikit/intervals.py β†— | tags: #interval-algebra #geometry #separation-line

A sophisticated geometry engine built on Shapely that reconstructs PCB outlines from KiCAD edge cuts, creates tabs with fillets and chamfers, computes partition lines between boards, and serializes outlines back to KiCAD format. It handles edge cases like small features, arc reconstruction, and debug visualization. While tightly coupled to KiCAD’s polygon representation, the core tab creation and fillet algorithms are reusable for any polygonal board panelization task.

file: kikit/substrate.py β†— | tags: #polygon-manipulation #shapely #pcb-geometry #tab-generation
Last analyzed: 2026-09-08 08:34:57.873198
Next check: 2026-09-15 08:34:57.869142
$ submit: