Skip to main content

Snapshot and visual diff tool for KiCad projects

Project description

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

From PyPI (recommended)

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)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kicad_snapshot-1.0.6.tar.gz (52.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kicad_snapshot-1.0.6-py3-none-any.whl (42.3 kB view details)

Uploaded Python 3

File details

Details for the file kicad_snapshot-1.0.6.tar.gz.

File metadata

  • Download URL: kicad_snapshot-1.0.6.tar.gz
  • Upload date:
  • Size: 52.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for kicad_snapshot-1.0.6.tar.gz
Algorithm Hash digest
SHA256 d4eddee0c187a47eb813acf79550e8fb9d4b06678f356859c6ec986815d3c17b
MD5 7db0119eee8157b54065c53655021fc9
BLAKE2b-256 9e259cc162e5cd860e4514f9d2f933e6adc988c74da7cce8bd56ebd92b419906

See more details on using hashes here.

Provenance

The following attestation bundles were made for kicad_snapshot-1.0.6.tar.gz:

Publisher: release.yml on tanakamasayuki/kicad-snapshot

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kicad_snapshot-1.0.6-py3-none-any.whl.

File metadata

  • Download URL: kicad_snapshot-1.0.6-py3-none-any.whl
  • Upload date:
  • Size: 42.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for kicad_snapshot-1.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 caa1b4617d83b33173d18d4d6c9cd5ac46b3339b68512e359cf99dd87bc942d4
MD5 65305ae817cb1d1f0d5344b4108e02d6
BLAKE2b-256 21e7352ecce131cfa08e8735ae4e38aec699f378c1af0771b29dbc77b21e24b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for kicad_snapshot-1.0.6-py3-none-any.whl:

Publisher: release.yml on tanakamasayuki/kicad-snapshot

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page