2.7 KiB
2.7 KiB
Test CLI Runbook
CLI binary path:
test-scripts/kicad-ipc-cli.rs
Run help:
cargo run --bin kicad-ipc-cli -- help
Prereqs
- KiCad running.
- API socket available (
KICAD_API_SOCKEToptional; auto-default works for typical setup). - For board-specific checks: PCB Editor has a board open.
Commands
Ping:
cargo run --bin kicad-ipc-cli -- ping
Version:
cargo run --bin kicad-ipc-cli -- version
List open PCB docs:
cargo run --bin kicad-ipc-cli -- open-docs --type pcb
Check board open:
cargo run --bin kicad-ipc-cli -- board-open
List nets:
cargo run --bin kicad-ipc-cli -- nets
List enabled board layers:
cargo run --bin kicad-ipc-cli -- enabled-layers
Show active layer:
cargo run --bin kicad-ipc-cli -- active-layer
Show visible layers:
cargo run --bin kicad-ipc-cli -- visible-layers
Show board origin (grid origin by default):
cargo run --bin kicad-ipc-cli -- board-origin
Show drill origin:
cargo run --bin kicad-ipc-cli -- board-origin --type drill
Show summary of current PCB selection by item type:
cargo run --bin kicad-ipc-cli -- selection-summary
Show parsed details for currently selected items:
cargo run --bin kicad-ipc-cli -- selection-details
Show raw protobuf payload bytes for selected items:
cargo run --bin kicad-ipc-cli -- selection-raw
Show pad-level netlist entries (footprint/pad/net):
cargo run --bin kicad-ipc-cli -- netlist-pads
Show parsed details for specific item IDs:
cargo run --bin kicad-ipc-cli -- items-by-id --id <uuid> --id <uuid>
Show item bounding boxes:
cargo run --bin kicad-ipc-cli -- item-bbox --id <uuid>
Include child text in the bounding box (for items such as footprints):
cargo run --bin kicad-ipc-cli -- item-bbox --id <uuid> --include-text
Run hit-test on a specific item:
cargo run --bin kicad-ipc-cli -- hit-test --id <uuid> --x-nm <x> --y-nm <y> --tolerance-nm 0
Get current project path (derived from open PCB docs):
cargo run --bin kicad-ipc-cli -- project-path
Smoke check:
cargo run --bin kicad-ipc-cli -- smoke
Common Flags
Custom socket:
cargo run --bin kicad-ipc-cli -- --socket ipc:///tmp/kicad/api.sock ping
Custom token:
cargo run --bin kicad-ipc-cli -- --token "$KICAD_API_TOKEN" version
Custom timeout:
cargo run --bin kicad-ipc-cli -- --timeout-ms 5000 ping
Failure Hints
Socket not available: open KiCad + project/board; verify socket path.BoardNotOpen: open a board in PCB Editor.AS_UNHANDLED: command not enabled/handled in current KiCad build/config.