KiCad 9.0.0 landed on 24 February 2025 with 4,870 commits and a genuinely strong feature list. A year on — with KiCad 10 now out — it's worth remembering what 9 introduced, because a few of those features quietly changed how professionals ship boards.
Short answer: the headline features were jobsets (repeatable output pipelines), embedded files (self-contained projects), schematic tables, and custom ERC/DRC rules with exclusions. Together they pushed KiCad's automation and reproducibility story forward more than any release before it.
Jobsets: repeatable output pipelines
The biggest workflow feature. A jobset is a predefined set of "jobs" — plot Gerbers, export a BOM, export a STEP model, run DRC — saved in a reusable file you can run from the GUI or the command line. Instead of manually re-exporting every output on every revision, you define the pipeline once and re-run it.
This matters because output generation was historically the sloppy part of a KiCad workflow: click through the plot dialog, remember every layer, re-do it next revision, hope nothing drifted. Jobsets make that a single, shareable definition — the first-party version of the discipline we cover in what is CI/CD for PCB. KiCad 10 later refined jobsets with a dedicated project-manager tab and output destinations.
Embedded files: self-contained projects
KiCad 9 let you embed dependencies — fonts, 3D models, and other linked assets — directly inside your schematic, PCB, symbols, and footprints. The result is a project that travels as one unit, without the classic "works on my machine, missing footprint on yours" problem. It's a real boost for sharing designs and for keeping a project reproducible over time.
Custom ERC/DRC rules, exclusions, and component classes
KiCad 9 made the rule system markedly more expressive:
- Custom ERC/DRC violations via text variables (
${ERC_WARNING},${DRC_ERROR}, and friends), so you can raise your own checks from text fields. - Exclusion comments on ERC/DRC violations, so a reviewed, accepted violation stays acknowledged instead of nagging every run.
- Component classes — group symbols and footprints into classes and attach design rules to them, with new DRC functions to test class membership.
If you write custom design rules or lean on net classes, 9 gave you a lot more to work with.
Schematic tables and editor polish
| Area | What KiCad 9 added |
|---|---|
| Schematic | Tables in schematic, symbol, and footprint editors; net-class rule areas; net-class color highlighting; design blocks (reusable schematic blocks) |
| PCB | Zone Manager, multiple track drag in the push-and-shove router, pad stacks (different copper per layer), creepage DRC, ODB++ export |
| Multi-channel | Repeat PCB layout from one channel to create identical copies |
| General | Bezier curve tool, multiple net classes per net, mouse-scroll increment actions, command-line raytracing |
The creepage DRC and pad stacks additions in particular closed real gaps for power and mixed-voltage designs.
Why it mattered for professionals
KiCad 9's theme was reproducibility and automation. Jobsets and embedded files, together, mean a design can be exported the same way every time and shared without losing a dependency — exactly the properties that separate a hobby workflow from a professional one. The rule-system improvements meant your DRC could finally encode your constraints, not just the defaults.
Where this leads
Jobsets are the KiCad-native starting point for automated outputs, and they're excellent for a single machine. The moment you want that pipeline to run automatically on every change — on push, in the cloud, with the results stored and shareable — you've crossed from "a saved job" into continuous integration. That's the gap GoForFab fills: connect a KiCad project and every push regenerates the full manufacturing package via kicad-cli, no jobset to run by hand. It's free forever.
If you're on KiCad 9, you already have the building blocks. Next, see what's new in KiCad 10.
Source: KiCad 9.0.0 release announcement.