git clone https://github.com/feastorg/KiCad-Master-Lib.git
Preferences → Configure Paths:
| Variable | Value |
|---|---|
KICAD_MASTER_LIB |
the repository root |
KMLIB_LOCAL |
${KICAD_MASTER_LIB}/kmlib-local |
Use a forward slash on all platforms. A backslash does not resolve on Linux or macOS, and KiCad gives no error — 3D models simply do not appear.
The repository commits its library tables:
| File | Registers |
|---|---|
kmlib.fp-lib-table |
51 footprint libraries |
kmlib.sym-lib-table |
46 symbol libraries |
kmlib.design-block-lib-table |
10 design-block libraries |
They cover kmlib-local and the vendored upstream libraries. Every URI is relative to
${KICAD_MASTER_LIB}, so a clean clone resolves everything with no per-machine setup.
Merge them into your KiCad configuration (~/.config/kicad/10.0/, or
~/.var/app/org.kicad.KiCad/config/kicad/10.0/ for the flatpak):
fp-lib-table ← kmlib.fp-lib-tablesym-lib-table ← kmlib.sym-lib-tabledesign-block-lib-table ← kmlib.design-block-lib-tableKeep your existing entries for the stock KiCad libraries; these only add to them.
Regenerate after adding or removing a library:
python3 scripts/gen_lib_tables.py
KMLib_* library and browse.Place → Add Design Block, browse the KMLib_* blocks.git pull origin main
Upstream libraries are vendored under vendor/ and pinned in vendor.yaml.
| Library | Licence |
|---|---|
| SparkFun-KiCad-Libraries | CC-BY-4.0 |
| OPL_Kicad_Library (Seeed) | CC-BY-SA-4.0 |
| digikey-kicad-library | CC-BY-SA-4.0, with an exception — see its LICENSE.md |
| arduino-kicad-library | CC-BY-SA-4.0 |
They are registered in the committed tables; nothing extra to configure.
A daily upstream-drift workflow opens a
tracking issue when an upstream moves past its pin. Nothing syncs automatically.
python3 scripts/check_drift.py # report drift
python3 scripts/vendor_sync.py <name> --check # preview upstream commits
python3 scripts/vendor_sync.py <name> # three-way merge; local edits preserved
Before advancing a pin, check that the parts your boards use have not changed pad geometry — not merely that they still resolve.
ERC, DRC and netlist generation never read a 3D model; only renders and STEP export do. Excluding them gives a ~73 MB checkout with every library present:
git clone --filter=blob:none --sparse https://github.com/feastorg/KiCad-Master-Lib.git
cd KiCad-Master-Lib
git sparse-checkout set --no-cone '/*' \
'!*.step' '!*.STEP' '!*.stp' '!*.STP' '!*.wrl' '!*.WRL'
Exclude by extension, not directory — some upstreams keep models loose in product folders
rather than under *.3dshapes/.