mcpField
K
kicad-cli

kicad-cli

github.com/o2scaleOther14191 installsUpdated 38w ago
Repository

About kicad-cli

A command reference for `kicad-cli` in KiCad 8.x, covering schematic, PCB, footprint, and symbol operations. It is for KiCad users automating validation and file exports; it also documents that the CLI cannot edit designs.

Key features

  1. 01Schematic netlist, BOM, PDF, and SVG export
  2. 02ERC and PCB DRC checks
  3. 03Gerber, drill, and position-file export
  4. 04PCB PDF, SVG, DXF, and 3D exports
  5. 05Footprint and symbol library upgrades
  6. 06Automation examples and exit codes

Use cases

  1. 01Exporting fabrication files for a PCB
  2. 02Running ERC or DRC in a build script
  3. 03Generating schematic BOMs and netlists
  4. 04Upgrading legacy KiCad libraries

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/o2scale/electronics-agent-kit --skill kicad-cli

After installing, type/kicad-cliin Claude Code to confirm it loaded.

Details

From the project README

KiCad CLI Reference

Complete command reference for kicad-cli (KiCad 8.x)


1. Command Structure

kicad-cli <application> <command> [options] <input-file>

Applications:

  • sch - Schematic operations
  • pcb - PCB operations
  • fp - Footprint operations
  • sym - Symbol operations

2. Schematic Commands

Export Netlist
kicad-cli sch export netlist \
  --output project.net \
  project.kicad_sch
Export BOM
# Basic BOM
kicad-cli sch export bom \
  --output bom.csv \
  project.kicad_sch

# With specific fields
kicad-cli sch export bom \
  --output bom.csv \
  --fields "Reference,Value,Footprint,LCSC,MPN" \
  --group-by "Value,Footprint" \
  --sort-asc \
  project.kicad_sch
Export PDF
kicad-cli sch export pdf \
  --output schematic.pdf \
  --black-and-white \
  project.kicad_sch
Export SVG
kicad-cli sch export svg \
  --output ./svg/ \
  --black-and-white \
  project.kicad_sch
Run ERC (Electrical Rules Check)
kicad-cli sch erc \
  --output erc-report.rpt \
  --severity-all \
  --exit-code-violations \
  project.kicad_sch

Options:

  • --severity-all - Report all severities
  • --severity-error - Only errors
  • --exit-code-violations - Return non-zero on violations

3. PCB Commands

Run DRC (Design Rules Check)
kicad-cli pcb drc \
  --output drc-report.rpt \
  --severity-all \
  --exit-code-violations \
  project.kicad_pcb
Export Gerbers
kicad-cli pcb export gerbers \
  --output ./gerbers/ \
  --layers "F.Cu,B.Cu,F.SilkS,B.SilkS,F.Mask,B.Mask,Edge.Cuts" \
  --subtract-soldermask \
  project.kicad_pcb

Common layers:

  • F.Cu, B.Cu - Copper layers
  • In1.Cu, In2.Cu - Inner copper layers
  • F.SilkS, B.SilkS - Silkscreen
  • F.Mask, B.Mask - Solder mask
  • F.Paste, B.Paste - Solder paste
  • Edge.Cuts - Board outline
  • F.Fab, B.Fab - Fabrication layers
Export Drill Files
kicad-cli pcb export drill \
  --output ./gerbers/ \
  --format excellon \
  --excellon-units mm \
  --generate-map \
  --map-format pdf \
  project.kicad_pcb

Options:

  • --format excellon - Standard drill format
  • --excellon-units mm or in
  • --excellon-zeros-format decimal
  • --generate-map - Create drill map
  • --map-format gerberx2|ps|pdf|svg|dxf
Export Position/Pick-and-Place
kicad-cli pcb export pos \
  --output positions.csv \
  --format csv \
  --units mm \
  --side front \
  --exclude-dnp \
  project.kicad_pcb

Options:

  • --format csv|ascii
  • --units mm|in
  • --side front|back|both
  • --exclude-dnp - Exclude Do Not Populate
Export 3D Models
# STEP format (for mechanical CAD)
kicad-cli pcb export step \
  --output project.step \
  --subst-models \
  project.kicad_pcb

# VRML format
kicad-cli pcb export vrml \
  --output project.wrl \
  project.kicad_pcb
Export PDF
kicad-cli pcb export pdf \
  --output pcb.pdf \
  --layers "F.Cu,B.Cu,Edge.Cuts" \
  --black-and-white \
  project.kicad_pcb
Export SVG
kicad-cli pcb export svg \
  --output pcb.svg \
  --layers "F.Cu,Edge.Cuts" \
  --black-and-white \
  project.kicad_pcb
Export DXF
kicad-cli pcb export dxf \
  --output pcb.dxf \
  --layers "Edge.Cuts" \
  project.kicad_pcb

4. Footprint Commands

Export SVG
kicad-cli fp export svg \
  --output footprint.svg \
  footprint.kicad_mod
Upgrade Footprint Library
kicad-cli fp upgrade \
  --output ./upgraded/ \
  ./library.pretty/

5. Symbol Commands

Export SVG
kicad-cli sym export svg \
  --output ./symbols/ \
  library.kicad_sym
Upgrade Symbol Library
kicad-cli sym upgrade \
  --output upgraded.kicad_sym \
  legacy.lib

6. Common Options

OptionDescription
--helpShow command help
--output, -oOutput file/directory
--define-varDefine text variable
--force, -fOverwrite existing files

7. Automation Examples

CI/CD Build Script
#!/bin/bash
set -euo pipefail

PROJECT="myproject"

# Run ERC
echo "Running ERC..."
kicad-cli sch erc \
  --output reports/erc.rpt \
  --exit-code-violations \
  ${PROJECT}.kicad_sch

# Run DRC  
echo "Running DRC..."
kicad-cli pcb drc \
  --output reports/drc.rpt \
  --exit-code-violations \
  ${PROJECT}.kicad_pcb

# Generate manufacturing files
echo "Generating manufacturing files..."
mkdir -p output/gerbers

kicad-cli pcb export gerbers \
  --output output/gerbers/ \
  --layers "F.Cu,B.Cu,F.SilkS,B.SilkS,F.Mask,B.Mask,Edge.Cuts" \
  ${PROJECT}.kicad_pcb

kicad-cli pcb export drill \
  --output output/gerbers/ \
  --format excellon \
  ${PROJECT}.kicad_pcb

# Generate BOM
kicad-cli sch export bom \
  --output output/bom.csv \
  --fields "Reference,Value,Footprint,LCSC,MPN" \
  ${PROJECT}.kicad_sch

# Generate position file
kicad-cli pcb export pos \
  --output output/positions.csv \
  --format csv \
  --units mm \
  ${PROJECT}.kicad_pcb

echo "Done!"
JLCPCB Preparation
#!/bin/bash
PROJECT="$1"
OUTPUT="./jlcpcb"
mkdir -p "$OUTPUT"

# Gerbers (zip for upload)
kicad-cli pcb export gerbers \
  --output "$OUTPUT/" \
  --layers "F.Cu,B.Cu,F.SilkS,B.SilkS,F.Mask,B.Mask,Edge.Cuts" \
  "${PROJECT}.kicad_pcb"

kicad-cli pcb export drill \
  --output "$OUTPUT/" \
  --format excellon \
  --excellon-units mm \
  "${PROJECT}.kicad_pcb"

cd "$OUTPUT" && zip -r gerbers.zip *.g* *.drl && cd -

# BOM for assembly
kicad-cli sch export bom \
  --output "$OUTPUT/bom.csv" \
  --fields "Comment,Designator,Footprint,LCSC" \
  "${PROJECT}.kicad_sch"

# CPL (Component Placement List)
kicad-cli pcb export pos \
  --output "$OUTPUT/cpl.csv" \
  --format csv \
  --units mm \
  --side front \
  "${PROJECT}.kicad_pcb"

8. Exit Codes

CodeMeaning
0Success
1General error
2DRC/ERC violations found (with --exit-code-violations)

9. Important Notes

What kicad-cli CAN Do
  • Export files (Gerber, PDF, SVG, netlist, BOM, 3D)
  • Run validation (DRC, ERC)
  • Upgrade library formats
  • Automation and CI/CD
What kicad-cli CANNOT Do
  • Modify designs (add components, routes)
  • Edit schematic/PCB content
  • Interactive operations

For design modifications, use:

  • File manipulation (S-expression format)
  • KiCad Python scripting console
  • KiCad IPC API (experimental)

Version: This reference is for KiCad 8.x. Commands may differ in older versions.

Comments

Markdown supported