Add example packaging for use in Plugin and Content Manager

Summary

We would like to bundle our IPC addon as a single file that can be installed using the Plugin and Content Manager Install from File... method.

Screenshot_2025-07-10_at_2.58.25_PM

The current examples in the repository assume:

For the plugins, copy or symlink them into the appropriate plugins path in order for KiCad to find them.

This is nice for quick development, but we think an example or discussion specifically on how to package an IPC addon into a single self contained, KiCad-installable zip file would be great. This would make distribution smoother to end users.

This page documents the higher level Addon format

But there isn't much discussion on IPC plugins other than

runtime: (optional) (since KiCad 9.0.1) For plugin packages, this field may be set to either "ipc" or "swig" to indicate which runtime the plugin requires. If not set, the plugin will be assumed to require the SWIG (legacy) runtime.

We're struggling to understand the precise layout that is needed for the .zip. For example, there is a metadata.json file and a plugin.json file needed for IPC addons. We're planning to use "exec" runtime (building a standalone binary with PyInstaller so that everything is self contained).

An example of the structure for an IPC "exec" plugin would be useful, and I think help a lot of people out.

For example, this link: https://dev-docs.kicad.org/en/addons/index.html#_python_plugins

Doesn't show where plugin.json would go.

Version Info

Please include all the requested information below. If you do not, your issue may be closed.

  • Python version: 3.11.12
  • kicad-python version: 0.4.0

KiCad full version info: Insert the output of kicad-cli version --format about, or the full KiCad version text found in the KiCad About dialog, between the sets of triple backticks below

Application: kicad-cli arm64 on arm64

Version: 9.0.3, release build

Libraries:
	wxWidgets 3.2.8
	FreeType 2.13.3
	HarfBuzz 10.2.0
	FontConfig 2.15.0
	libcurl/8.7.1 (SecureTransport) LibreSSL/3.3.6 zlib/1.2.12 nghttp2/1.64.0

Platform: macOS Sequoia Version 15.5 (Build 24F74), 64 bit, Little endian, wxBase

Build Info:
	Date: Jul  7 2025 22:10:04
	wxWidgets: 3.2.8 (wchar_t,wx containers)
	Boost: 1.87.0
	OCC: 7.8.1
	Curl: 8.7.1
	ngspice: 44.2
	Compiler: Clang 16.0.0 with C++ ABI 1002
	KICAD_IPC_API=ON