Tool Reference
Every tool returns a dict with at least success: bool. On failure, an error: str field is included. On success, relevant data fields are added.
Project tools
Section titled “Project tools”tools/project.py — Project discovery and management.
| Tool | Description |
|---|---|
list_projects | Find and list all KiCad projects in configured search paths |
get_project_structure | Get the file structure and metadata of a KiCad project |
open_project | Open a KiCad project in the KiCad application |
Schematic tools
Section titled “Schematic tools”tools/schematic.py — Create and edit schematics via kicad-sch-api.
| Tool | Description |
|---|---|
create_schematic | Create a new empty KiCad schematic file |
add_component | Add a component to a schematic from a symbol library |
search_components | Search KiCad symbol libraries for components matching a query |
add_wire | Add a wire segment between two coordinate points |
connect_pins | Add a wire between two component pins by reference and pin number |
add_label | Add a local or global net label to a schematic |
add_hierarchical_sheet | Add a hierarchical sheet reference to a schematic |
list_components | List components in a schematic, or look up a single component |
get_schematic_info | Get a compact overview of a schematic (stats and validation summary) |
get_component_detail | Get full details for a single component: properties, footprint, pins, position |
get_schematic_hierarchy | Get the hierarchical sheet tree of a schematic |
Schematic editing tools
Section titled “Schematic editing tools”tools/schematic_edit.py — Modify and remove schematic elements.
| Tool | Description |
|---|---|
modify_component | Move, rotate, or change the value/footprint of an existing component |
remove_component | Remove a component by its reference designator |
remove_wire | Remove a wire segment by its UUID |
remove_label | Remove a net label (local or global) by its UUID |
set_title_block | Set title block fields (title, author, date, revision, company) |
add_text_annotation | Add a text annotation to a schematic at specified coordinates |
add_no_connect | Add a no-connect flag at specified coordinates |
backup_schematic | Create a timestamped backup of a schematic file |
remove_wires_by_criteria | Remove wire segments matching coordinate or bounding-box criteria |
Schematic pattern tools
Section titled “Schematic pattern tools”tools/schematic_patterns.py — Place common circuit building blocks.
| Tool | Description |
|---|---|
place_decoupling_bank_pattern | Place a bank of decoupling capacitors with power and ground connections |
place_pull_resistor_pattern | Place a pull-up or pull-down resistor connected to a signal pin |
place_crystal_pattern | Place a crystal oscillator with load capacitors |
Batch tools
Section titled “Batch tools”tools/batch.py — Atomic multi-operation schematic modifications.
| Tool | Description |
|---|---|
apply_batch | Apply a batch of schematic modifications from a JSON file (components, power symbols, wires, labels, no-connects) |
See Batch Operations for the full JSON schema.
Power symbol tools
Section titled “Power symbol tools”tools/power_symbols.py — Add power symbols to schematics.
| Tool | Description |
|---|---|
add_power_symbol | Add a power symbol (GND, VCC, +3V3, etc.) connected to a component pin |
Autowire tools
Section titled “Autowire tools”tools/autowire.py — Automated wiring strategy selection.
| Tool | Description |
|---|---|
autowire_schematic | Analyze unconnected nets and automatically wire them using optimal strategies |
See Autowiring guide for details on the decision tree.
Schematic analysis tools
Section titled “Schematic analysis tools”tools/schematic_analysis.py — Connectivity analysis, ERC, and netlist operations.
| Tool | Description |
|---|---|
run_schematic_erc | Run Electrical Rules Check on a schematic via kicad-cli |
analyze_connectivity | Analyze the net connectivity graph of a schematic |
check_pin_connection | Check whether a specific pin is connected and to what |
verify_pins_connected | Verify that two specific pins share the same net |
get_component_pins | List all pins for a specific component |
export_netlist | Export a netlist from a schematic using kicad-cli |
export_schematic_pdf | Export a schematic to PDF with options for B&W and background |
audit_wiring | Audit all wiring connections for a component |
verify_connectivity | Compare actual wiring against an expected net-to-pin mapping |
validate_schematic | Run a comprehensive health check (ERC + connectivity + optional baseline) |
Netlist tools
Section titled “Netlist tools”tools/netlist.py — External netlist import and conversion.
| Tool | Description |
|---|---|
import_netlist | Import an external netlist (KiCad, OrcadPCB2, Allegro) and convert to batch JSON |
Analysis tools
Section titled “Analysis tools”tools/analysis.py — Project validation and live board analysis.
| Tool | Description |
|---|---|
validate_project | Validate a KiCad project’s structure and essential files |
analyze_board_real_time | Live board analysis via KiCad IPC (requires running KiCad) |
get_component_details | Retrieve component details from a live KiCad board via IPC |
BOM tools
Section titled “BOM tools”tools/bom.py — Bill of Materials analysis and export.
| Tool | Description |
|---|---|
analyze_bom | Analyze the BOM for a KiCad project |
export_bom | Export a BOM CSV from a schematic using kicad-cli |
DRC tools
Section titled “DRC tools”tools/drc.py — Design Rule Check and manufacturing constraints.
| Tool | Description |
|---|---|
run_drc_check | Run a DRC check on a PCB using kicad-cli |
create_drc_rule_set | Generate a technology-specific DRC rule set |
export_kicad_drc_rules | Export DRC rules in KiCad-compatible text format |
get_manufacturing_constraints | Get manufacturing constraints for a PCB technology |
Export tools
Section titled “Export tools”tools/export.py — Manufacturing file generation.
| Tool | Description |
|---|---|
generate_pcb_svg | Generate an SVG render of a PCB layout |
export_gerbers | Export Gerber manufacturing files |
export_drill | Export drill files |
export_pdf | Export a PDF from a PCB or schematic |
Routing tools
Section titled “Routing tools”tools/routing.py — FreeRouting autorouter integration.
| Tool | Description |
|---|---|
check_routing_capability | Check whether automated PCB routing is available |
route_pcb_automatically | Automatically route a PCB using FreeRouting |
analyze_routing_quality | Analyze current PCB routing for quality and potential issues |
PCB tools (IPC)
Section titled “PCB tools (IPC)”tools/pcb.py — Live PCB manipulation via KiCad IPC API.
| Tool | Description |
|---|---|
move_component | Move a component on the PCB to new coordinates |
rotate_component | Rotate a component on the PCB |
get_board_statistics | Retrieve high-level board statistics from a live KiCad instance |
check_connectivity | Check the routing connectivity status of the PCB |
refill_zones | Refill all copper zones on the PCB |