A command-line tool for managing KiCad libraries across projects and workstations
Project description
KiCad Library Manager (KiLM)
A command-line tool for managing KiCad libraries across projects and workstations.
Features
- Automatically detect KiCad configurations across different platforms (Windows, macOS, Linux)
- Add symbol and footprint libraries to KiCad from a centralized repository
- Set environment variables directly in KiCad configuration
- Pin favorite libraries for quick access in KiCad
- Create timestamped backups of configuration files (only when changes are needed)
- Support for environment variables
- Dry-run mode to preview changes
- Compatible with KiCad 6.x and newer
Installation
From PyPI
pip install kilm
Usage
Initialize a Library
The first step is to initialize your KiCad library. This creates metadata for your library and registers it in the configuration:
# Initialize the current directory as a KiCad library
kilm init
# Initialize with a custom name
kilm init --name my-kicad-library
# Initialize with a description
kilm init --description "My custom KiCad library"
# Initialize with a custom environment variable
kilm init --env-var MY_CUSTOM_LIB
Add a 3D Models Library
You can add multiple 3D model libraries, each with its own environment variable:
# Add the current directory as a 3D models library
kilm add-3d
# Add a specific directory
kilm add-3d --directory ~/path/to/3d-models
# Add with a custom name and environment variable
kilm add-3d --name my-3d-models --env-var MY_CUSTOM_3D_VAR
View Configured Libraries
You can view all configured libraries with:
# List all configured libraries
kilm config
# List only GitHub libraries (symbols/footprints)
kilm config --type github
# List only cloud libraries (3D models)
kilm config --type cloud
# Show detailed information
kilm config --verbose
Configure KiCad
With libraries initialized, you can set up KiCad to use them:
# Set up using the current libraries
kilm setup
# Set up all configured libraries
kilm setup --all-libraries
# Set up specific libraries by name
kilm setup --symbol-lib-dirs "main-lib,project-lib" --threed-lib-dirs "my-3d-models"
# Preview changes without making them (dry run)
kilm setup --dry-run
# Show verbose output for debugging
kilm setup --verbose
Using Environment Variables (Legacy Method)
You can still use environment variables if preferred:
# For Bash/Zsh
export KICAD_USER_LIB=~/path/to/your/kicad-libraries
export KICAD_3D_LIB="~/path/to/your/kicad-3d-models"
# For Fish
set -U KICAD_USER_LIB ~/path/to/your/kicad-libraries
set -U KICAD_3D_LIB "~/path/to/your/kicad-3d-models"
# For Windows PowerShell
[System.Environment]::SetEnvironmentVariable("KICAD_USER_LIB", "C:\path\to\your\kicad-libraries", "User")
[System.Environment]::SetEnvironmentVariable("KICAD_3D_LIB", "C:\path\to\your\kicad-3d-models", "User")
Managing Pinned Libraries
KiCad has a feature to pin libraries as favorites for quick access. You can manage these pinned libraries with:
# Pin all libraries from your library directory
kilm pin
# Pin specific libraries
kilm pin --symbols MySymbolLib AnotherLib --footprints MyFootprintLib
# Unpin specific libraries
kilm unpin --symbols LibToUnpin --footprints FootprintToUnpin
# Unpin all libraries
kilm unpin --all
List Available Libraries
kilm list
Check Current Configuration
kilm status
This will show:
- kilm configuration details
- KiCad configuration directory location
- Environment variables set in KiCad
- Pinned libraries
- Currently configured symbol and footprint libraries
Custom Library Descriptions
The tool will look for a file called library_descriptions.yaml in your library directory with the following format:
# Symbol library descriptions
symbols:
LibraryName: "Custom description for the library"
# Footprint library descriptions
footprints:
LibraryName: "Custom description for the library"
Automatic Updates
For automatic library updates, you can create a Git hook in your project:
-
Create a script in your project called
update_library.sh:#!/bin/bash echo "Updating KiCad libraries..." (cd $KICAD_USER_LIB && git pull) kicad-lib-manager setup --dry-run echo "If the changes look good, run 'kicad-lib-manager setup' to apply them."
-
Make it executable:
chmod +x update_library.sh
-
Add a Git hook to run it automatically:
mkdir -p .git/hooks cat > .git/hooks/post-merge << 'EOL' #!/bin/bash ./update_library.sh EOL chmod +x .git/hooks/post-merge
License
MIT
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kilm-0.1.0.tar.gz.
File metadata
- Download URL: kilm-0.1.0.tar.gz
- Upload date:
- Size: 28.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
680254637f4a6eebe2249f8d29f41a29c40f0634c23c74a3e6a0210156b28f13
|
|
| MD5 |
a76eb48446c526fbcdadc83b40699d06
|
|
| BLAKE2b-256 |
5097a821dd333a7b910ea5ac5d9e07d388767e58d24dc37169c22e2a42d914b1
|
File details
Details for the file kilm-0.1.0-py3-none-any.whl.
File metadata
- Download URL: kilm-0.1.0-py3-none-any.whl
- Upload date:
- Size: 36.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7803a3a08e7c09c899af76769776a119d0b4ec889be6a7c17d81743d916fb21b
|
|
| MD5 |
77b985b034b40ed63f18631fba51e4fd
|
|
| BLAKE2b-256 |
e564d1d45fc2d5235839e3f40cdca11d0bda54d666f3e1c12a8b1161d6684f43
|