/kicad-pcb
Workflow skill for KiCAD PCB layout and routing via MCP tools. Triggers on: "layout the board", "route traces", "PCB", "place footprints", "copper pour", "board outline", "differential pair", "board setup", "track width", "via", "zone", "design rules", "stackup", "silkscreen".
$ npx -y skills add mixelpixx/Konnect --skill kicad-pcb --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/kicad-pcb
Context preview
The summary Claude sees to decide when to auto-load this skill.
Workflow skill for KiCAD PCB layout and routing via MCP tools. Triggers on: "layout the board", "route traces", "PCB", "place footprints", "copper pour", "board outline", "differential pair", "board setup", "track width", "via", "zone", "design rules", "stackup", "silkscreen".
SKILL.md
kicad-pcb.SKILL.mdname: kicad-pcb
description: |
Workflow skill for KiCAD PCB layout and routing via MCP tools. Triggers on: "layout the board",
"route traces", "PCB", "place footprints", "copper pour", "board outline", "differential pair",
"board setup", "track width", "via", "zone", "design rules", "stackup", "silkscreen".
argument-hint: "[layout task]"
KiCAD PCB Layout Workflow
This skill guides Claude to perform PCB layout using Konnect MCP tools. ALL modifications go through MCP tools — never edit .kicad_pcb files directly.
---
Prerequisites
PCB layout operations require KiCAD to be running with the board file open. The IPC connection communicates with the running KiCAD instance in real-time.
If connection fails:
- Tell the user to open KiCAD and load the project
- The board (.kicad_pcb) must be open in the PCB editor
- KiCAD's IPC API must be enabled (default in KiCAD 8+)
---
Toolset Loading
Before any PCB work, load the required toolsets:
load_toolset('pcb_board') # board outline, layers, setup, stackup
load_toolset('pcb_components') # place, move, rotate, align footprints
load_toolset('pcb_routing') # traces, vias, differential pairsZones (`pcb_board`: add_zone; `pcb_routing`: add_copper_pour), component/net queries (`pcb_components`: find_component, get_component_list; `pcb_board`: get_board_info), and bulk placement (`pcb_components`: place_component_array, align_components, duplicate_component) are already covered by the toolsets loaded above.
Load additional toolsets as needed:
load_toolset('config') # design rule storage: add_design_rule, list_design_rules
load_toolset('verification') # run_drc, set_design_rules, get_design_rules, check_clearanceAlways call `get_active_toolsets()` first to see what is already loaded.
---
Layout Order
Follow this sequence for a clean PCB workflow:
1. **Board outline** — `set_board_size` or draw Edge.Cuts geometry 2. **Import netlist** — sync with schematic (update_pcb_from_schematic) 3. **Place components** — position all footprints 4. **Route traces** — connect all nets 5. **Copper pour** — add ground/power zones last 6. **DRC** — run design rule check 7. **Save** — `save_project`
Do NOT add copper pours before routing is complete — they interfere with interactive routing.
---
Placement
Strategy
- Group components by functional block (power, digital, analog, connectors)
- Place ICs first, then their associated passives
- Decoupling caps: within 2mm of their IC power pins, on same layer
- Connectors: at board edges, accessible for cables
- High-frequency components: minimize trace lengths between them
- Thermal considerations: power components away from sensitive analog
Placement Tools
| Tool | Use Case | |---------------------------|---------------------------------------------| | `place_component` | Position a single footprint at x,y | | `move_component` | Relocate an existing footprint | | `rotate_component` | Rotate footprint (0/90/180/270) | | `align_components` | Align multiple components (top/bottom/left/right/center) | | `place_component_array` | Grid placement for repeated elements |
Placement Tips
- Use mm coordinates (KiCAD default for PCB)
- Standard grid: 0.5mm for placement, 0.25mm for fine adjustment
- Check component courtyard overlaps after placement
- Reference designator text: F.SilkS layer, 1mm height default
---
Routing
Routing Tools
| Tool | Use Case | |---------------------------|---------------------------------------------| | `route_pad_to_pad` | Direct connection, auto L-bend routing | | `route_trace` | Manual segment-by-segment routing | | `route_differential_pair` | Matched-length USB/LVDS/Ethernet pairs | | `add_via` | Layer transition | | `create_netclass` | Define width/clearance rules for net groups |
route_pad_to_pad
The primary routing tool. Automatically creates an L-shaped trace between two pads.
route_pad_to_pad(from_reference, from_pad, to_reference, to_pad, width, layer)
- Handles 90-degree bends automatically
- Specify width in mm (e.g., 0.25 for signal, 0.5 for power)
- Will use vias if pads are on different layers
route_trace
For manual control over trace path. Specify waypoints.
route_trace(net_name, points, width, layer)
- Use when auto-routing creates suboptimal paths
- Provide intermediate points for complex routes
- Each segment is a straight line between points
route_differential_pair
For high-speed differential signals (USB, HDMI, Ethernet, LVDS).
route_differential_pair(net_positive, net_negative, width, spacing)
- Maintains constant spacing between P and N traces
- Matches trace lengths automatically
- Common pairs: USB_D+/USB_D-, LVDS_P/LVDS_N
Netclasses
Define routing rules for groups of nets:
create_netclass(name, track_width, clearance, via_drill, via_diameter)
Common netclass configurations:
- Signal: 0.25mm track, 0.2mm clearance
- Power: 0.5-1.0mm track, 0.3mm clearance
- USB: 0.3mm track, 0.15mm spacing (90 ohm differential)
Via Defaults
- Standard signal via: 0.4mm drill, 0.8mm pad diameter
- Power via: 0.6mm drill, 1.0mm pad diameter
- Micro via (HDI): 0.1mm drill, 0.3mm pad diameter
---
Copper Pour
Zone tools live in the `pcb_board` toolset.
add_zone
Creates a copper pour area (polygon fill).
add_zone(net_name, layer, outline_points, priority)
- Almost always GND net on both F.Cu and B.Cu
- Define outline slightly inside board edge (0.5mm inset)
- Priority: higher number fills on top of lower
- Add thermal relief to pads (default behavior)
refill_zones
**Must call `refill_zones` after any change that affects co
Read more
name: kicad-pcb description: | Workflow skill for KiCAD PCB layout and routing via MCP tools. Triggers on: "layout the board", "route traces", "PCB", "place footprints", "copper pour", "board outline", "differential pair", "board setup", "track width", "via", "zone", "design rules", "stackup", "silkscreen". argument-hint: "[layout task]"
KiCAD PCB Layout Workflow
This skill guides Claude to perform PCB layout using Konnect MCP tools. ALL modifications go through MCP tools — never edit .kicad_pcb files directly.
---
Prerequisites
PCB layout operations require KiCAD to be running with the board file open. The IPC connection communicates with the running KiCAD instance in real-time.
If connection fails:
- Tell the user to open KiCAD and load the project
- The board (.kicad_pcb) must be open in the PCB editor
- KiCAD's IPC API must be enabled (default in KiCAD 8+)
---
Toolset Loading
Before any PCB work, load the required toolsets:
load_toolset('pcb_board') # board outline, layers, setup, stackup
load_toolset('pcb_components') # place, move, rotate, align footprints
load_toolset('pcb_routing') # traces, vias, differential pairsZones (`pcb_board`: add_zone; `pcb_routing`: add_copper_pour), component/net queries (`pcb_components`: find_component, get_component_list; `pcb_board`: get_board_info), and bulk placement (`pcb_components`: place_component_array, align_components, duplicate_component) are already covered by the toolsets loaded above.
Load additional toolsets as needed:
load_toolset('config') # design rule storage: add_design_rule, list_design_rules
load_toolset('verification') # run_drc, set_design_rules, get_design_rules, check_clearanceAlways call `get_active_toolsets()` first to see what is already loaded.
---
Layout Order
Follow this sequence for a clean PCB workflow:
1. **Board outline** — `set_board_size` or draw Edge.Cuts geometry 2. **Import netlist** — sync with schematic (update_pcb_from_schematic) 3. **Place components** — position all footprints 4. **Route traces** — connect all nets 5. **Copper pour** — add ground/power zones last 6. **DRC** — run design rule check 7. **Save** — `save_project`
Do NOT add copper pours before routing is complete — they interfere with interactive routing.
---
Placement
Strategy
- Group components by functional block (power, digital, analog, connectors)
- Place ICs first, then their associated passives
- Decoupling caps: within 2mm of their IC power pins, on same layer
- Connectors: at board edges, accessible for cables
- High-frequency components: minimize trace lengths between them
- Thermal considerations: power components away from sensitive analog
Placement Tools
| Tool | Use Case | |---------------------------|---------------------------------------------| | `place_component` | Position a single footprint at x,y | | `move_component` | Relocate an existing footprint | | `rotate_component` | Rotate footprint (0/90/180/270) | | `align_components` | Align multiple components (top/bottom/left/right/center) | | `place_component_array` | Grid placement for repeated elements |
Placement Tips
- Use mm coordinates (KiCAD default for PCB)
- Standard grid: 0.5mm for placement, 0.25mm for fine adjustment
- Check component courtyard overlaps after placement
- Reference designator text: F.SilkS layer, 1mm height default
---
Routing
Routing Tools
| Tool | Use Case | |---------------------------|---------------------------------------------| | `route_pad_to_pad` | Direct connection, auto L-bend routing | | `route_trace` | Manual segment-by-segment routing | | `route_differential_pair` | Matched-length USB/LVDS/Ethernet pairs | | `add_via` | Layer transition | | `create_netclass` | Define width/clearance rules for net groups |
route_pad_to_pad
The primary routing tool. Automatically creates an L-shaped trace between two pads.
route_pad_to_pad(from_reference, from_pad, to_reference, to_pad, width, layer)
- Handles 90-degree bends automatically
- Specify width in mm (e.g., 0.25 for signal, 0.5 for power)
- Will use vias if pads are on different layers
route_trace
For manual control over trace path. Specify waypoints.
route_trace(net_name, points, width, layer)
- Use when auto-routing creates suboptimal paths
- Provide intermediate points for complex routes
- Each segment is a straight line between points
route_differential_pair
For high-speed differential signals (USB, HDMI, Ethernet, LVDS).
route_differential_pair(net_positive, net_negative, width, spacing)
- Maintains constant spacing between P and N traces
- Matches trace lengths automatically
- Common pairs: USB_D+/USB_D-, LVDS_P/LVDS_N
Netclasses
Define routing rules for groups of nets:
create_netclass(name, track_width, clearance, via_drill, via_diameter)
Common netclass configurations:
- Signal: 0.25mm track, 0.2mm clearance
- Power: 0.5-1.0mm track, 0.3mm clearance
- USB: 0.3mm track, 0.15mm spacing (90 ohm differential)
Via Defaults
- Standard signal via: 0.4mm drill, 0.8mm pad diameter
- Power via: 0.6mm drill, 1.0mm pad diameter
- Micro via (HDI): 0.1mm drill, 0.3mm pad diameter
---
Copper Pour
Zone tools live in the `pcb_board` toolset.
add_zone
Creates a copper pour area (polygon fill).
add_zone(net_name, layer, outline_points, priority)
- Almost always GND net on both F.Cu and B.Cu
- Define outline slightly inside board edge (0.5mm inset)
- Priority: higher number fills on top of lower
- Add thermal relief to pads (default behavior)
refill_zones
**Must call `refill_zones` after any change that affects co
AI-assisted PCB design for KiCAD 10. Konnect is a native KiCAD plugin — a single Rust binary — that lets Claude and other AI assistants design schematics and PCBs through the Model Context Protocol (MCP). 187 tools across 18 on-demand toolsets.
Repo: mixelpixx/Konnect
Other skills on konnect.
- /kicad-library
Library management workflow for KiCAD — creating symbols, footprints, and managing libraries via MCP tools. Triggers on: "create a symbol", "make a footprint", "custom component", "register library", "find a part", "pin numbering", "new symbol", "new footprint", "add to
Open skill - /kicad-manufacture
Manufacturing and fabrication workflow for KiCAD projects via MCP tools. Triggers on: "send to fab", "order boards", "gerbers", "JLCPCB", "manufacturing", "export for production", "pick and place", "assembly files", "generate fabrication outputs", "BOM for fab", "production
Open skill - /kicad-review
Design review and validation workflow for KiCAD projects via MCP tools. Triggers on: "review my design", "check for errors", "audit", "DRC", "ERC", "find problems", "design review", "is this ready", "validate", "check my schematic", "check my PCB", "what's wrong", "run checks",
Open skill - /kicad-schematic
Workflow skill for KiCAD schematic design via MCP tools. Triggers on: "design a circuit", "add a component", "wire up", "connect pins", "build schematic", "place resistor", "place cap", "place IC", "schematic", "add symbol", "net label", "power rail".
Open skill - /konnect
Mandatory operating rules for ANY task involving KiCAD projects. Loaded when the user mentions KiCAD, schematics, PCBs, or any .kicad_* file. Prevents file corruption by routing all changes through Konnect MCP tools.
Open skill

