Parser and writer for KiCad files.

Latest on Hackage:0.5.0

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow to host generated Haddocks.

MIT licensed by Kaspar Emanuel

Haskell KiCad Data

Build Status

Parse and write KiCad data (currently .kicad_mod files only).

This library is tested with QuickCheck to ensure it can parse whatever it outputs. The parser is also fairly regularily checked against over 38,000 kicad_mod files currently part of monostable/kicad_footprints. The resulting output of these parsed files is then checked with KiCad scripting to make sure they are still valid.


$ cabal repl
*Data.Kicad.PcbnewExpr> let pad = parse "(pad 1 smd rect (size 1 1) (at 1 1) (layers F.Cu))"
*Data.Kicad.PcbnewExpr> pad
Right (PcbnewExprItem (PcbnewPad {padNumber = "1", padType = SMD, padShape =
Rect, itemAt = PcbnewAtT {pcbnewAtPoint = (1.0,1.0), pcbnewAtOrientation =
0.0}, itemSize = (1.0,1.0), padLayers = [FCu], padAttributes_ = []}))
*Data.Kicad.PcbnewExpr> fmap write pad
Right "(pad \"1\" smd rect (at 1 1) (size 1 1) (layers F.Cu))"

See docs on Hackage.

Projects Using This


This project is MIT licensed but one dependency is licensed under GPLv3 thus the GPLv3 applies to the project as a whole.


Version 0.5.0

  • Add support for *.Fab layers
  • Add support for die_length pad attribute
  • Fix issue with comment character output
  • Simplify s-expression parser (now supports all KiCad s-expression formats)
Depends on 5 packages:
Used by 1 package:
comments powered byDisqus