An attempt to make a master KiCad library for symbols and footprints as well as their associated 3D models and a collection of design blocks.
This is mainly to help manage the libraries used by FEAST (https://feastorg.github.io) in a single place for easy updating and sharing across projects.
If you are looking for KiCad-Hierarchical-Designs, that repository has been archived and all relevant content has been moved here under kmlib-local/blocks/.
Hopefully this prevents me from going completely insane. - CKB
git clone https://github.com/feastorg/KiCad-Master-Lib.gitThen set KICAD_MASTER_LIB to wherever you cloned it, and add the committed tables to
your KiCad configuration:
| Table | Registers |
|---|---|
kmlib.fp-lib-table |
51 footprint libraries |
kmlib.sym-lib-table |
46 symbol libraries |
kmlib.design-block-lib-table |
10 design-block libraries |
Every URI in those tables is written relative to ${KICAD_MASTER_LIB}, so a clean clone
resolves every symbol, footprint and design block with no dependence on a developer's
global KiCad configuration. That is what makes designs in this ecosystem reproducible
from source.
Regenerate the tables after adding or removing a library:
python3 scripts/gen_lib_tables.pySee docs/getting_started.md for setup instructions or visit feastorg.github.io/kicad-master-lib for full documentation.
kmlib-local/ first-party FEAST symbols, footprints, 3D models, design blocks
vendor/ upstream libraries, vendored (see vendor.yaml)
scripts/ library table generation, vendoring, drift detection
Upstream libraries live under vendor/, pinned in vendor.yaml.
vendor.yaml is the manifest: upstream URL, tracked ref, pinned
commit, and licence for each. The pin moves forward deliberately, by a human, after
review — never automatically.
| 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 |
A daily upstream-drift workflow asks each
upstream whether it has moved past our pin and opens one tracking issue per drifted
library, linking the upstream diff. Nothing is ever synced automatically.
Check drift yourself at any time:
python3 scripts/check_drift.pyIntegrate a drifted library after reviewing its issue:
python3 scripts/vendor_sync.py <name> --check # preview the upstream commits
python3 scripts/vendor_sync.py <name> # three-way merge, then review and commitLocal modifications to vendored trees are preserved. vendor_sync.py replays your
copy onto the commit we last vendored, then lets git three-way merge the new upstream on
top — so local fixes survive a sync. A genuine conflict is reported and the pin is left
unadvanced until you resolve it. Prefer upstreaming a fix over carrying it here.
A full checkout is ~356 MB, of which ~283 MB is 3D models. ERC, DRC, netlist generation and schematic generation never read a 3D model — only 3D renders and STEP export do.
Excluding them drops the checkout to ~73 MB, with all 51 footprint and 46 symbol libraries still 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'Exclusion is by file extension rather than by directory on purpose: some upstreams keep
3D models loose in product folders rather than under *.3dshapes/.
CC0-1.0 license is for this repo ONLY. Vendored libraries under vendor/ retain their
own licences — see vendor.yaml and each library's own licence file.