Skip to main content

kicad-partspec

Pre-alpha. Datasheet-derived PartSpec in, verified KiCad symbols and footprints out.

A model reads the datasheet and fills a PartSpec, a JSON file in which every value carries the datasheet page and a verbatim quote. Deterministic code generates the KiCad files and checks them independently: against the spec, against the PDF, and by loading them in kicad-cli.

The accuracy of model extraction has only been measured on three parts, and the answer key for those was written by the same author as the skill and has not been reviewed by a human. See evals/README.md before relying on it.

Status

Piece State
PartSpec model, loader, spec-layer checks done
Source check (quotes must appear on the cited datasheet page) done
KiCad symbol generation (multi-unit, alternates, grid-aligned) done
Symbol checks (pins vs spec, grid, overlap, name collisions) done
kicad-cli load check done
Footprint generation (dual-row and quad packages, exposed pad) from the datasheet land pattern done
Footprint checks (pads vs datasheet, pads reach leads, silkscreen, courtyard) + kicad-cli load done
MCP server (3 tools), skill, plugin manifests done (plugin install not verified in Claude Code)
Extraction evaluation (evals/score.py, round 1 in evals/runs/) done, 3 parts only

Install

Python 3.10 to 3.13. Not on PyPI yet; from GitHub:

pip install "git+https://github.com/w23x0/kicad-partspec"                          # CLI
pip install "kicad-partspec[mcp] @ git+https://github.com/w23x0/kicad-partspec"    # CLI + MCP server

Optional tools the checks use when present: KiCad 9 or later (kicad-cli, for the load checks; without it you get a warning instead) and poppler (pdftotext, for the datasheet quote check).

The package contains the CLI and the MCP server. The skill that teaches a model how to extract a PartSpec, and the plugin manifests, live in the repository (skills/, .claude-plugin/, .mcp.json), not in the wheel.

Use

kicad-partspec validate SPEC.json [--datasheet FILE.pdf]
kicad-partspec build SPEC.json --out DIR      # writes <mpn>.kicad_sym and <lib>.pretty/<name>.kicad_mod, verifies both
kicad-partspec verify SPEC.json --symbol FILE --footprint FILE
kicad-partspec-mcp                            # MCP server; PARTSPEC_WORKSPACE limits the paths it may touch
python evals/check_gold.py --datasheets DIR_WITH_PDFS
python evals/score.py --extracted DIR --datasheets DIR_WITH_PDFS   # score model extractions against gold

Add --concise to print failures in full and warnings only counted by kind.

Gold cases and their conventions are in evals/README.md. Generated symbols target the KiCad 9 file format (version 20241209) and were loaded with KiCad 9.0.9.

Footprints are generated from the datasheet's example land pattern (land_* dimensions), not computed from a standard, so a part whose datasheet has no land pattern gets a symbol and a footprint.skipped warning that names the missing dimensions.

History

This repository replaces codex-kicad-mcp, a read-first MCP server for KiCad projects. Its code is kept in the history and on the legacy branch; the tags v0.2.0 and v0.2.1 point at it.

License

MIT.

Metadata

Release files for kicad-partspec 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kicad-partspec 0.0.1
File Size Uploaded Provenance
kicad_partspec-0.0.1.tar.gz 64.9 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for kicad-partspec 0.0.1
File Interpreter ABI Platform
kicad_partspec-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 108.0 kB

Release files / kicad_partspec-0.0.1.tar.gz

Download URL kicad_partspec-0.0.1.tar.gz
Size 64.9 kB
Tags Source
SHA-256 checksum
How to use checksums
6c5882147dfaa8b2c069d7c5b1f52e3d6c8790115126e5e0bcf2591430d85cf8
BLAKE2b-256 checksum
How to use checksums
f3d166e158a90a08b1b66e833a0808771cef5e65f7c846b4ff1ba250548ea22b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.

Transparency log

Release files / kicad_partspec-0.0.1-py3-none-any.whl

Download URL kicad_partspec-0.0.1-py3-none-any.whl
Size 43.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
93cf8419fe8c264f32918f3581f84910f3740c9444d0cfcab17203e373b41a73
BLAKE2b-256 checksum
How to use checksums
470b4b31016b4e136ff3ca5ed29c57a2bc94345d99536361ec1859a960d59c07
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.

Transparency log

Security for kicad-partspec 0.0.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for kicad_partspec-0.0.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page