Reference manual
This manual is in the process of being revised to cover the latest stable release version of KiCad. It contains some sections that have not yet been completed. We ask for your patience while our volunteer technical writers work on this task, and we welcome new contributors who would like to help make KiCad’s documentation better than ever. |
Copyright
This document is Copyright © 2023-2024 by its contributors as listed below. You may distribute it and/or modify it under the terms of either the GNU General Public License (http://www.gnu.org/licenses/gpl.html), version 3 or later, or the Creative Commons Attribution License (http://creativecommons.org/licenses/by/3.0/), version 3.0 or later.
All trademarks within this guide belong to their legitimate owners.
Contributors
Graham Keeth
Feedback
The KiCad project welcomes feedback, bug reports, and suggestions related to the software or its documentation. For more information on how to sumbit feedback or report an issue, please see the instructions at https://www.kicad.org/help/report-an-issue/
Introduction to the KiCad Command-Line Interface
KiCad provides a command-line interface, which is available by running the
kicad-cli
binary. With the command-line interface, you can perform a number of
actions on schematics, PCBs, symbols, and footprints in an automated fashion,
such as plotting Gerber files from a PCB design or upgrading a symbol library
from a legacy file format to a modern format.
On macOS, the kicad-cli executable is located at
/Applications/KiCad/KiCad.app/Contents/MacOS/kicad-cli .
|
kicad-cli
commands
The kicad-cli
command has 5 subcommands: fp
, pcb
, sch
, sym
, and
version
. Each subcommand may have its own subcommands and arguments. For
example, to export Gerber files from a PCB you could run
kicad-cli pcb export gerbers example.kicad_pcb
.
You can add the --help
or -h
flag to see information about each
subcommand. For example, running kicad-cli pcb -h
prints usage information
about the pcb
subcommand, and kicad-cli pcb export gerbers -h
prints usage
information specifically for the pcb export gerbers
subcommand.
Footprint
The fp
subcommand exports footprints to another format or upgrades the
footprint libraries to the current version of the KiCad footprint file format.
Footprint export
The fp export svg
command exports one or more footprints from the specified
library into SVG files.
Usage: kicad-cli fp export svg [-h] [--output VAR] [--layers VAR] [--theme VAR]
[--footprint VAR] [--black-and-white] input
Positional arguments:
|
Footprint library to export ( |
Optional arguments:
|
Show help for the footprint SVG export command. |
|
The output directory for the exported files. When this argument is not used, the files are exported to the current directory. |
|
A comma-separated list of layer names to export from the footprint, such
as |
|
The name of the theme to use for export. If no theme is given, the footprint editor’s currently selected theme is used. |
|
The specific footprint to export from the library. When this argument is not used, all footprints in the library are exported. |
|
Export footprints in black and white. |
Footprint upgrade
The fp upgrade
command upgrades the the specified footprint library from a
legacy footprint format to the native format for the current version of KiCad.
If the input library is already in the current file format, no action is taken.
Usage: kicad-cli fp upgrade [-h] [--output VAR] [--force] input
Positional arguments:
|
Footprint library to upgrade ( |
Optional arguments:
|
Show help for the footprint upgrade command. |
|
The output directory for the upgraded footprints. When this argument is not used, the upgraded footprints are saved over the original footprints. |
|
Re-save the input library even if it is already in the current file format. |
PCB
The pcb export
command exports a board to various other file formats,
including fabrication and 3D files. Each file format has its own options.
PCB drill file export
The pcb export drill
command exports a drill file from a board.
Usage: kicad-cli pcb export drill [-h] [--output VAR] [--format VAR]
[--drill-origin VAR] [--excellon-zeros-format VAR] [--excellon-units VAR]
[--excellon-mirror-y] [--excellon-min-header] [--excellon-separate-th]
[--generate-map] [--map-format VAR] [--gerber-precision VAR] input
Positional arguments:
|
Board file to export. |
Optional arguments:
|
Show help for the drill file export command. |
|
The output directory for the drill file. When this argument is not used, the drill file is saved in the current directory. |
|
The drill file format. Options are |
|
The coordinate origin for the drill file. Options are |
|
The zeros format for the drill file. Options are |
|
The units for the drill file. Options are |
|
Mirror the drill file in the Y direction. Only applies to Excellon format drill files. |
|
Use a minimal header in the drill file. Only applies to Excellon format drill files. |
|
Generate separate drill files for plated and non-plated through holes. Only applies to Excellon format drill files. |
|
Control the oval holes drill mode. Options are |
|
Generate a map file in addition to the drill file. |
|
The map file format. Options are |
|
The precision (number of digits) for the drill file. Valid options are |
PCB DXF export
The pcb export dxf
command exports a board design to a DXF file.
Usage: kicad-cli pcb export dxf [-h] [--output VAR] [--layers VAR]
[--exclude-refdes] [--exclude-value] [--use-contours] [--output-units VAR] input
Positional arguments:
|
Board file to export. |
Optional arguments:
|
Show help for the DXF export command. |
|
The output filename. When this argument is not used, the output filename
will be the same as the input file, with the |
|
A comma-separated list of layer names to export from the footprint, such
as |
|
Exclude footprint reference designators from plot. |
|
Exclude footprint values from plot. |
|
Plot graphic items using their contours. |
|
Output units. Options are |
PCB Gerber export: one layer per file
The pcb export gerbers
command exports a board design to Gerber files, with
one layer per file.
Usage: kicad-cli pcb export gerbers [-h] [--output VAR] [--layers VAR]
[--exclude-refdes] [--exclude-value] [--include-border-title] [--no-x2]
[--no-netlist] [--subtract-soldermask] [--disable-aperture-macros]
[--use-drill-file-origin] [--precision VAR] [--no-protel-ext]
[--common-layers VAR] [--board-plot-params] input
Positional arguments:
|
Board file to export. |
Optional arguments:
|
Show help for the Gerber export command. |
|
The output folder for the exported files. When this argument is not used, the files are exported to the current directory. |
|
A comma-separated list of layer names to plot from the board, such as
|
|
Exclude footprint reference designators from plot. |
|
Exclude footprint values from plot. |
|
Include the sheet border and title block. |
|
Do not use the extended X2 format. |
|
Do not include netlist attributes. |
|
Remove silkscreen from areas without soldermask. |
|
Disable aperture macros. |
|
Use drill/place file origin instead of absolute origin. |
|
The precision (number of digits) for the Gerber files. Valid options are
|
|
Use |
|
A comma-separated list of layer names to plot on all layers, such as
|
|
Use the Gerber plot settings already configured in the board file. |
PCB Gerber export: multiple layers per file
The pcb export gerber
command exports one or more board layers to a single
Gerber file.
Usage: kicad-cli pcb export gerber [-h] [--output VAR] [--layers VAR]
[--exclude-refdes] [--exclude-value] [--include-border-title] [--no-x2]
[--no-netlist] [--subtract-soldermask] [--disable-aperture-macros]
[--use-drill-file-origin] [--precision VAR] [--no-protel-ext] input
Positional arguments:
|
Board file to export. |
Optional arguments:
|
Show help for the Gerber export command. |
|
The output filename. When this argument is not used, the output filename
will be the same as the input file, with the |
|
A comma-separated list of layer names to plot from the board, such as
|
|
Exclude footprint reference designators from plot. |
|
Exclude footprint values from plot. |
|
Include the sheet border and title block. |
|
Do not use the extended X2 format. |
|
Do not include netlist attributes. |
|
Remove silkscreen from areas without soldermask. |
|
Disable aperture macros. |
|
Use drill/place file origin instead of absolute origin. |
|
The precision (number of digits) for the Gerber files. Valid options are
|
|
Use |
PCB PDF export
The pcb export pdf
command exports a board design to a PDF file.
Usage: kicad-cli pcb export pdf [-h] [--output VAR] [--layers VAR] [--mirror]
[--exclude-refdes] [--exclude-value] [--include-border-title] [--negative]
[--black-and-white] [--theme VAR] input
Positional arguments:
|
Board file to export. |
Optional arguments:
|
Show help for the PDF export command. |
|
The output filename. When this argument is not used, the output filename
will be the same as the input file, with the |
|
A comma-separated list of layer names to export from the board, such as
|
|
Mirror the board. This can be useful for showing bottom layers. |
|
Exclude footprint reference designators from plot. |
|
Exclude footprint values from plot. |
|
Include the sheet border and title block. |
|
Plot in negative. |
|
Plot in black and white. |
|
The name of the theme to use for export. If no theme is given, the board editor’s currently selected theme is used. |
PCB position file export
The pcb export pos
command exports a position file from a board design.
Usage: kicad-cli pcb export pos [-h] [--output VAR] [--side VAR] [--format VAR]
[--units VAR] [--bottom-negate-x] [--use-drill-file-origin] [--smd-only]
[--exclude-fp-th] [--gerber-board-edge] input
Positional arguments:
|
Board file to export. |
Optional arguments:
|
Show help for the position file export command. |
|
The output filename. When this argument is not used, the output filename
will be the same as the input file, with the |
|
The side of the board to export. Options are |
|
The position file format. Options are |
|
Units for position file. Options are |
|
Use negative X coordinates for footprints on the bottom layer. This argument has no effect for Gerber format. |
|
Use drill/place file origin instead of absolute origin. This option has no effect for Gerber format. |
|
Include only surface-mount components. This option has no effect for Gerber format. |
|
Exclude all footprints with through-hole pads. This option has no effect for Gerber format. |
|
Include board edge layer in export (Gerber format only). |
PCB STEP export
The pcb export step
command exports a board design to a STEP file.
Usage: kicad-cli pcb export step [-h] [--drill-origin] [--grid-origin]
[--no-virtual] [--subst-models] [--force] [--board-only] [--min-distance VAR]
[--user-origin VAR] [--output VAR] input
Positional arguments:
|
Board file to export. |
Optional arguments:
|
Show help for the STEP file export command. |
|
Use drill origin as origin of output file. |
|
Use grid origin as origin of output file. |
|
Exclude 3D models of components with 'virtual' attribute. |
|
Replace VRML models in footprints with STEP models of the same name, if they exist. |
|
Overwrite output file. |
|
Only include the board itself in the generated model; exclude all component models. |
|
Tolerance for considering two points to be in the same location. Default:
|
|
Specify a custom origin for the output file, with X and Y coordinates. For
example, |
|
The output filename. When this argument is not used, the output filename
will be the same as the input file, with the |
PCB SVG export
The pcb export svg
command exports a board design to an SVG file.
Usage: kicad-cli pcb export svg [-h] [--output VAR] [--layers VAR] [--mirror]
[--theme VAR] [--negative] [--black-and-white] [--page-size-mode VAR]
[--exclude-drawing-sheet] input
Positional arguments:
|
Board file to export. |
Optional arguments:
|
Show help for the SVG file export command. |
|
The output filename. When this argument is not used, the output filename
will be the same as the input file, with the |
|
A comma-separated list of layer names to export from the board, such as
|
|
Mirror the board. This can be useful for showing bottom layers. |
|
The name of the theme to use for export. If no theme is given, the board editor’s currently selected theme is used. |
|
Plot in negative. |
|
Plot in black and white. |
|
Set page sizing mode. Options are |
|
Plot SVG without a drawing sheet. |
Schematic
The sch export
command exports a schematic to various other file formats, or
exports a bill of materials or netlist. Each file format has its own options.
Schematic DXF export
The sch export dxf
command exports a schematic to a DXF file. Each
sheet in the design is exported to its own file.
Usage: kicad-cli sch export dxf [-h] [--output VAR] [--theme VAR]
[--black-and-white] [--exclude-drawing-sheet] [--no-background-color]
[--plot-one] input
Positional arguments:
|
Schematic file to export. |
Optional arguments:
|
Show help for the DXF file export command. |
|
The output folder for the exported files. When this argument is not used, the files are exported to the current directory. |
|
The name of the theme to use for export. If no theme is given, the schematic editor’s currently selected theme is used. |
|
Export schematic in black and white. |
|
Plot DXF without a drawing sheet. |
|
Export schematic without a background color, regardless of theme. |
|
Only export the input sheet; do not export any subsheets. |
Schematic HPGL export
The sch export hpgl
command exports a schematic to an HPGL file for a pen
plotter. Each sheet in the design is exported to its own file.
Usage: kicad-cli sch export hpgl [-h] [--output VAR] [--theme VAR]
[--black-and-white] [--exclude-drawing-sheet] [--no-background-color]
[--plot-one] [--pen-size VAR] [--origin VAR] input
Positional arguments:
|
Schematic file to export. |
Optional arguments:
|
Show help for the HPGL file export command. |
|
The output folder for the exported files. When this argument is not used, the files are exported to the current directory. |
|
The name of the theme to use for export. If no theme is given, the schematic editor’s currently selected theme is used. |
|
Export schematic in black and white. |
|
Plot HPGL without a drawing sheet. |
|
Export schematic without a background color, regardless of theme. |
|
Only export the input sheet; do not export any subsheets. |
|
Set the pen width. The default pen size is 0.5 mm. |
|
Set plotter origin and scale. Options are |
Schematic netlist export
The sch export netlist
command exports a netlist in
various formats from
a schematic.
Usage: kicad-cli sch export netlist [-h] [--output VAR] [--format VAR] input
Positional arguments:
|
Schematic file to export. |
Optional arguments:
|
Show help for the netlist export command. |
|
The output filename. When this argument is not used, the output filename
will be the same as the input file, with a |
|
The netlist output format. Options are |
Schematic PDF export
The sch export pdf
command exports a schematic to a PDF file. Each sheet in
the design is exported to its own page in the PDF file.
Usage: kicad-cli sch export pdf [-h] [--output VAR] [--theme VAR]
[--black-and-white] [--exclude-drawing-sheet] [--no-background-color]
[--plot-one] input
Positional arguments:
|
Schematic file to export. |
Optional arguments:
|
Show help for the PDF file export command. |
|
The output filename. When this argument is not used, the output filename
will be the same as the input file, with a |
|
The name of the theme to use for export. If no theme is given, the schematic editor’s currently selected theme is used. |
|
Export schematic in black and white. |
|
Plot PDF without a drawing sheet. |
|
Export schematic without a background color, regardless of theme. |
|
Only export the input sheet; do not export any subsheets. |
Schematic PostScript export
The sch export ps
command exports a schematic to a PostScript file. Each
sheet in the design is exported to its own file.
Usage: kicad-cli sch export ps [-h] [--output VAR] [--theme VAR]
[--black-and-white] [--exclude-drawing-sheet] [--no-background-color]
[--plot-one] input
Positional arguments:
|
Schematic file to export. |
Optional arguments:
|
Show help for the PS file export command. |
|
The output folder for the exported files. When this argument is not used, the files are exported to the current directory. |
|
The name of the theme to use for export. If no theme is given, the schematic editor’s currently selected theme is used. |
|
Export schematic in black and white. |
|
Plot PS without a drawing sheet. |
|
Export schematic without a background color, regardless of theme. |
|
Only export the input sheet; do not export any subsheets. |
Schematic bill of materials export
The sch export python-bom
command exports an XML BOM file from a schematic.
The XML BOM file can then be processed into your desired BOM format using a
custom script or one of the scripts described in the
schematic BOM
export documentation.
Usage: kicad-cli sch export python-bom [-h] [--output VAR] input
Positional arguments:
|
Schematic file to export. |
Optional arguments:
|
Show help for the BOM export command. |
|
The output filename. When this argument is not used, the output filename
will be the same as the input file, with a |
Schematic SVG export
The sch export svg
command export a schematic to an SVG file. Each sheet in
the design is exported to its own file.
Usage: kicad-cli sch export svg [-h] [--output VAR] [--theme VAR]
[--black-and-white] [--exclude-drawing-sheet] [--no-background-color]
[--plot-one] input
Positional arguments:
|
Schematic file to export. |
Optional arguments:
|
Show help for the SVG file export command. |
|
The output folder for the exported files. When this argument is not used, the files are exported to the current directory. |
|
The name of the theme to use for export. If no theme is given, the schematic editor’s currently selected theme is used. |
|
Export schematic in black and white. |
|
Plot SVG without a drawing sheet. |
|
Export schematic without a background color, regardless of theme. |
|
Only export the input sheet; do not export any subsheets. |
Symbol
The sym
subcommand exports symbols to another format or upgrades symbol
libraries to the current version of the KiCad symbol file format.
Symbol export
The sym export svg
command exports one or more symbols from the specified
library into SVG files.
Usage: kicad-cli sym export svg [-h] [--output VAR] [--theme VAR]
[--symbol VAR] [--black-and-white] [--include-hidden-pins]
[--include-hidden-fields] input
Positional arguments:
|
Symbol library file to use for export. |
Optional arguments:
|
Show help for the symbol SVG export command. |
|
The output folder for the exported files. When this argument is not used, the files are exported to the current directory. |
|
The name of the theme to use for export. If no theme is given, the symbol editor’s currently selected theme is used. |
|
The specific symbol to export from the library. When this argument is not used, all symbols in the library are exported. |
|
Export symbols in black and white. |
|
Export hidden pins in the exported SVG. |
|
Export hidden symbol fields in the exported SVG. |
Symbol upgrade
The sym upgrade
command upgrades the the specified symbol library from a
legacy symbol format to the native format for the current version of KiCad. If
the input library is already in the current file format, no action is taken.
Usage: kicad-cli sym upgrade [-h] [--output VAR] [--force] input
Positional arguments:
|
Symbol library to upgrade. |
Optional arguments:
|
Show help for the symbol upgrade command. |
|
The output filename for the upgraded symbol library. When this argument is not used, the upgraded symbol library is saved over the original library. |
|
Re-save the input library even if it is already in the current file format. |
Version
The version
subcommand prints the KiCad version. Without any arguments, it
simply prints the version number, for example 7.0.7
. You can print the version
in several other formats using the --format
argument.
Use kicad-cli version --format about for version information to include
when submitting bug reports or feature requests on Gitlab.
|
Usage: kicad-cli version [-h] [--format VAR]
Optional arguments:
|
Format of the version number. Options are |