Register downloaded KiCad symbols and footprints into KiCad's library tables (sym-lib-table, fp-lib-table) so they become available in eeschema / pcbnew without manually using Preferences > Manage Libraries. Handles vendor-style folders such as: ~/Documents/footprints/ BSS138/ (*.kicad_sym, *.kicad_mod) ULN2803AFW/ (*.kicad_sym, *.kicad_mod) MyLib.pretty/ (footprint library folder) Invoke for: "add this symbol to KiCad", "register these footprints", "import downloaded library", "make this library available", "set up libraries for this project".
You are registering a KiCad library. Follow these steps exactly.
Ask the user (or infer from context) whether the library should be registered:
~/.config/kicad/<version>/{sym,fp}-lib-table. This is the default.<project>/{sym,fp}-lib-table, which goes into version control with the
project. Preferred when the lib is project-specific or you want the team
to get it automatically.Always start with --dry-run so the user can see what will be registered
before any file is touched:
python3 ~/.claude/skills/kicad-lib-add/kicad_lib_add.py <PATH> --dry-run
Review the [NEW] / [EXISTS] / [REPLACE] report. entries are
already registered and will be skipped — this is correct, no action needed.
Do NOT recommend to resolve collisions; it pollutes library names
with permanent prefixes that are hard to undo.
[EXISTS]--prefixpython3 ~/.claude/skills/kicad-lib-add/kicad_lib_add.py <PATH> [--scope project --project <DIR>]
The script:
~/.config/kicad/*.bak before writing.kicad_sym file, a single .pretty/ folder, or a
directory tree containing many of either (plus loose .kicad_mod folders)--scope global, suggest committing the vendor folder
itself to a stable location (not ~/Downloads). ~/Documents/kicad-libs/
is a reasonable convention.List what's already registered:
python3 ~/.claude/skills/kicad-lib-add/kicad_lib_add.py --list
Override KiCad version:
python3 ~/.claude/skills/kicad-lib-add/kicad_lib_add.py <PATH> --kicad-version 9.0
Remove entries that were accidentally added with a prefix:
python3 ~/.claude/skills/kicad-lib-add/kicad_lib_add.py --remove-prefix PRASAD --kicad-version 9.0
python3 ~/.claude/skills/kicad-lib-add/kicad_lib_add.py --remove-prefix PRASAD --kicad-version 10.0
# Then re-add without prefix:
python3 ~/.claude/skills/kicad-lib-add/kicad_lib_add.py <PATH> --kicad-version 9.0
python3 ~/.claude/skills/kicad-lib-add/kicad_lib_add.py <PATH> --kicad-version 10.0
foo.kicad_sym → foo)
or the folder name (foo.pretty → foo, foo/ with loose .kicad_mod → foo).*.pretty are accepted because KiCad's
KiCad plugin type treats any directory of .kicad_mod files as a library.~/Downloads.