KiComp: Managing JLCPCB Components in KiCad with a Terminal UI

Why JLCPCB part management in KiCad is a grind

If you use JLCPCB’s assembly service, you already know the problem: every component needs an LCSC part number (formatted as C followed by digits, like C1337258), a matching schematic symbol, a PCB footprint, and ideally a 3D model. KiCad doesn’t ship with these. You either hand-craft each entry, pull from community libraries that may or may not match the real part, or stitch together a chain of scripts every time you need a new component.

That’s the gap KiComp is trying to close.

What KiComp does

KiComp is a terminal user interface (TUI) tool by Rein Bentdal that wraps the JLC2KiCad_lib Python script to give you a more structured way to fetch and browse JLCPCB components inside a KiCad project directory. Run kicomp and you get an interactive interface rather than a bare command line.

Two things stand out:

  • One-shot asset download: It pulls the schematic symbol, PCB footprint, and 3D model for any JLCPCB part number in a single operation, handling directory layout for you.
  • Multiple library support: You can maintain separate libraries — one for passives, one for ICs, one for connectors — and switch between them from inside the TUI. This sounds minor until your part collection hits a few dozen entries and a single flat library becomes impossible to navigate.

The engine underneath: JLC2KiCad_lib

JLC2KiCad_lib, maintained by TousstNicolas on GitHub, is the actual workhorse. Given an LCSC part number, it queries EasyEDA’s API and produces a KiCad-compatible symbol, footprint, and 3D model in both STEP and WRL formats. The only required argument is the part number itself.

pip install JLC2KiCadLib
JLC2KiCadLib C1337258

That single command generates all three asset types for the specified part. KiComp automates those calls and organises the output into whichever library is active, so you don’t have to think about directory structure on every new component.

The generated assets come from EasyEDA’s database. It’s generally accurate for JLCPCB-stocked parts, but footprint quirks and pin naming inconsistencies do show up. Verify each new part against its datasheet before committing it to a production design.

Where it fits in the broader tooling ecosystem

KiComp is not the only tool for this job. Bouni’s kicad-jlcpcb-tools is a KiCad PCB editor plugin that covers a different slice: it lets you search the JLCPCB parts database, assign LCSC numbers to footprints already placed in the layout, correct rotation offsets, and generate properly formatted BOM and CPL files ready for upload. There’s also easyeda2kicad, a converter similar to JLC2KiCad_lib with slightly different output options and its own active maintenance track.

KiComp’s focus is pre-layout: building and organising the symbol/footprint/3D model library before placement begins. Pair it with kicad-jlcpcb-tools and you have coverage across the full cycle.

The rotation problem won’t go away

One persistent headache with JLCPCB assembly is component orientation. Footprint rotation in KiCad doesn’t always match what the pick-and-place machine expects, and EasyEDA-sourced footprints are no exception to this. Plan on correcting rotations for at least some parts. kicad-jlcpcb-tools ships a rotation correction database that covers many common packages, but manual spot-checking before submission is still wise.

Getting started

Clone the repo and install into your Python environment:

git clone https://github.com/ReinBentdal/KiComp
cd KiComp
pip install .

Then navigate to a KiCad project directory and run kicomp to launch the TUI. From there you can browse your libraries, fetch new parts by LCSC number, and switch between library sets.

The project is early — MIT-licensed, light on documentation, a small commit history. For hobby workflows it looks practical right now. For production use, keep a versioned local copy of any generated library and check each part’s symbol and footprint against its datasheet before tape-out.

Sources


Similar Posts