kicad-ipc-rs/docs/TEST_CLI.md

2.2 KiB

Test CLI Runbook

CLI binary path:

  • test-scripts/kicad-ipc-cli.rs

Run help:

cargo run --bin kicad-ipc-cli -- help

Prereqs

  1. KiCad running.
  2. API socket available (KICAD_API_SOCKET optional; auto-default works for typical setup).
  3. 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

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.