Skip to main content

KiCad Snapshot

KiCad project snapshot and visual diff tool (PySide6 GUI).

  • Repository: https://github.com/tanakamasayuki/kicad-snapshot
  • PyPI package name: kicad-snapshot
  • CLI command: kicad_snapshot
  • Japanese README: README.ja.md

Features

  • Create manual ZIP snapshots of KiCad projects
  • Snapshot target rules: include *.kicad_* / *-lib-table, exclude temporary and development artifacts
  • Compare snapshots against current project state
  • Compare snapshot-to-snapshot
  • Render schematic/PCB visual diffs
  • PCB layer-level comparison
  • Multi-language UI (English, Japanese, Chinese, French, German)

Requirements

  • Python 3.11+
  • kicad-cli available on your machine
  • KiCad 8+ recommended

Installation

pip install kicad-snapshot

Or with pipx:

pipx install kicad-snapshot

From source

git clone https://github.com/tanakamasayuki/kicad-snapshot.git
cd kicad-snapshot
pip install .

Usage

Run from an installed environment:

kicad_snapshot

If running from source with uv:

uv sync --dev
uv run kicad_snapshot

Upgrade

Upgrade installed package

With pip:

pip install -U kicad-snapshot

With pipx:

pipx upgrade kicad-snapshot

Upgrade ZIP build (Windows EXE)

ZIP builds do not support in-place auto update. Download the latest ZIP again from GitHub Releases and re-extract it.

Upgrade project version (maintainer)

Use GitHub Actions workflow .github/workflows/release.yml with:

  • version: next version (for example 1.0.2)
  • publish_pypi: true to publish to PyPI, false to skip

The workflow updates version files, updates CHANGELOG.md, creates tag vX.Y.Z, builds Windows ZIP artifacts, and optionally publishes to PyPI.

Basic Workflow

  1. Start app and confirm kicad-cli path.
  2. Select a KiCad project (.kicad_pro).
  3. Open Snapshot screen and choose compare targets.
  4. Open Compare screen and review item-by-item diffs.

Configuration

Settings are stored per user via platformdirs.

  • Windows: %APPDATA%/KiCadSnapshot/settings.toml
  • macOS: ~/Library/Application Support/KiCadSnapshot/settings.toml
  • Linux: ~/.config/KiCadSnapshot/settings.toml

Development

uv sync --dev
uv run kicad_snapshot

Build Windows EXE manually (PyInstaller, onedir):

uv sync --dev
uv run pyinstaller --noconfirm --clean --windowed --onedir --name kicad_snapshot --paths src src/kicad_snapshot/__main__.py

Entry point:

[project.scripts]
kicad_snapshot = "kicad_snapshot.__main__:main"

Release Automation (GitHub Actions)

Use workflow: .github/workflows/release.yml

  • Trigger: workflow_dispatch
  • Inputs:
    • version (e.g. 0.0.1)
    • publish_pypi (true/false)

Automated steps:

  1. Update versions in pyproject.toml and src/kicad_snapshot/__init__.py
  2. Update CHANGELOG.md by creating a new section after ## Unreleased
  3. Commit + tag (vX.Y.Z)
  4. Build Windows EXE (PyInstaller, onedir)
  5. Create ZIP + SHA256 and attach to GitHub Release
  6. (Optional) Publish package to PyPI

For PyPI publish, configure PyPI Trusted Publishing for this GitHub repository.

Documents

License

MIT (see LICENSE)

Metadata

Release files for kicad-snapshot 1.0.6

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-snapshot 1.0.6
File Size Uploaded Provenance
kicad_snapshot-1.0.6.tar.gz 52.7 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for kicad-snapshot 1.0.6
File Interpreter ABI Platform
kicad_snapshot-1.0.6-py3-none-any.whl Python 3 none any Details

Total release size: 95.1 kB

Release files / kicad_snapshot-1.0.6.tar.gz

Download URL kicad_snapshot-1.0.6.tar.gz
Size 52.7 kB
Tags Source
SHA-256 checksum
How to use checksums
d4eddee0c187a47eb813acf79550e8fb9d4b06678f356859c6ec986815d3c17b
BLAKE2b-256 checksum
How to use checksums
9e259cc162e5cd860e4514f9d2f933e6adc988c74da7cce8bd56ebd92b419906
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Feb 26, 2026.

Transparency log

Release files / kicad_snapshot-1.0.6-py3-none-any.whl

Download URL kicad_snapshot-1.0.6-py3-none-any.whl
Size 42.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
caa1b4617d83b33173d18d4d6c9cd5ac46b3339b68512e359cf99dd87bc942d4
BLAKE2b-256 checksum
How to use checksums
21e7352ecce131cfa08e8735ae4e38aec699f378c1af0771b29dbc77b21e24b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Feb 26, 2026.

Transparency log

Security for kicad-snapshot 1.0.6

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_snapshot-1.0.6.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 Feb 26, 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.

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