askiff

Public

@antmicro

Share askiff

Check access before sharing the link.

Who can open this board

Anyone can open this board. No sign-in is required.

This link opens the latest version. Copying it does not grant additional access.

Loading 3D model… large boards can take a moment.

README

askiff - A Simple KiCad File Flow

Copyright (c) 2026 Antmicro

This project contains a Python library for typed parsing, creation and modification of KiCad files

askiff provides an automatic serialization and deserialization (serdes) functionality for KiCad project files, enabling seamless conversion between structured Python data and KiCad's native sexpr formats. It addresses the challenge of working with KiCad's complex, hierarchical file structures by offering typed, field-based (de)serialization that preserves file integrity and supports round-trip editing without unnecessary changes.

The library is designed to handle KiCad 8+ formats, with full support for KiCad 10. It ensures that even unsupported sections of KiCad files remain unmodified during processing, maintaining zero git diff for unchanged content. This makes it ideal for automated workflows, file validation, and safe modification of KiCad projects.

Features

  • Deserializing KiCad files into Python structures and back
  • No git diff for unmodified file sections
  • Preventing data loss in unsupported parts of KiCad files
  • Support for KiCad 10 (backward compatibility with KiCad 8+)
  • Simple Python abstractions that make it easier to work with complex KiCad file formats

Installation

pip install 'git+https://github.com/antmicro/askiff.git'

Quick Start

A typical entry point for operating on a project is Project, which handles file discovery, lazy loading necessary files as they are used.

from askiff import Project

# Load a KiCad project
project = Project("path/to/project").load()

# Modify a schematic
project.sch[0].title_block.title = "Modified Title"

# Save the project
project.save()

See the project documentation for more examples.

Licensing

This project is licensed under the Apache-2.0 license.

Comments

No comments yet. Be the first to ask about this board.

Ask about this board

Sign in to BoardRepo

New here? Signing in creates your account; there is no separate sign-up.