基板CAD、KiCad の Python スクリプティング環境は今後 [KiCad IPC API]に移行して行くとアナウンスされています。KiCad 9.0 からサポートされ始めていますが、今のところはまだ動き出したばかりで機能的にも不足している部分があり、プラグイン開発者向けのベータ版という扱いです。
**KiCad IPC API の概要はここ**

目的は今までの Python プラグインと同じようなものですが、内部の構造が今までと大きく変わります。

今までの Python プラグインとの違いは
– API の仕様が今までよりも安定する(はず)
– Python 以外の言語でもプラグインが作れる
– 複数の KiCad を起動している場合の接続がややこしくなりそう
また、今までのスクリプト環境とは違い、想定しているのは基板データの編集処理でガーバーなどの基板データの出力機能そのものは別のプログラムである kicad-cli (コマンドライン形式) を使用する事が推奨されています(これについては、いつかはサポートするかもという含みがあります)。
プラグインと KiCad との接続は IPC ですので、プラグイン環境としては Python に限らずどんな言語で書いても良いのですが、今のところは Python 用のインターフェース (kicad-python) だけが準備されています。
という事で Win11 上の VirtualBox で Ubuntu 24 を入れた新しい状態から KiCad 9.0 の KiCad IPC API をテストします。
環境は以下の通り
**Windows 11 24H2**
**VirtualBox .1.10 r169112 (Qt6.5.3)**
– https://www.oracle.com/jp/virtualization/technologies/vm/downloads/virtualbox-downloads.html
**Ubuntu 24.04.2 LTS**
– https://jp.ubuntu.com/download
**KiCad 9.0.3**
– https://www.kicad.org/download/

– これは PPA からインストールできます。https://www.kicad.org/download/details/ubuntu/
– KiCad を起動し、メニューの [Preferences] – [Preferences…] ダイアログ内 [Plugins] タブで [Enable KiCad API] をチェックします。これは今のところデフォルトではオフになっています。

**kicad-python**
– https://pypi.org/project/kicad-python/

– KiCad IPC API を使うための Python 用のライブラリは “kicad-python” として公開されています。2025/08/02 時点のバージョンは 0.4.0。
– KiCad IPC API は pip でインストールできますが、”externally-managed-environment” エラーがでます。
– これは、インストールにより他の Python モジュールの動作に不具合が出る可能性がある事を示していますが、今回は VirtualBox 上の実験環境なので”–break-system-packages”オプションで取り合えず無視する事にします。
– “pip install kicad-python –break-system-packages”
**Git Lab**
– Git Lab には kicad-python のリポジトリがあります。
– https://gitlab.com/kicad/code/kicad-python

– 今はまだちゃんと起動できているかの確認程度ですが、このリポジトリの examples フォルダにサンプルのスクリプトがあります。

– examples 内の version.py を動かした結果が下の図です。最初の`python3 version.py`は KiCad を起動していない場合、2番目の `python3 version.py`は KiCad を起動後に動かした場合です。

**KiCad IPC API の詳細ドキュメントはここ**
– https://docs.kicad.org/kicad-python-main/
まだまだ機能もドキュメントも足りないですが、現在の予定では来年2月の KiCad 10 で KiCad IPC API が公式推奨となって現在の Python API は廃止される事になっています。今から何か作るなら KiCad IPC API が必須になりそうです。





