# freeroute A native Python PCB autorouter — a Java-free port of the [FreeRouting](https://github.com/freerouting/freerouting) engine. ## Why `kicad-mcp` currently autoroutes by shelling out to `freerouting.jar`, which drags in a JVM dependency. `freeroute` reimplements the routing engine in pure Python so the toolchain needs no Java at all. ## The contract The entire integration surface is two Specctra files: ``` board.dsn ──▶ freeroute ──▶ board.ses (unrouted) (routed session: traces + vias) ``` `kicad-cli` already exports `.dsn` and imports `.ses`, so `freeroute` is a drop-in replacement for the JAR step — nothing else in the pipeline changes. ## Status Pre-alpha. Under active development. See [`docs/PORTING_PLAN.md`](docs/PORTING_PLAN.md) for the architecture and porting roadmap. ## Usage (target) ```bash freeroute board.dsn -o board.ses ``` ## Development ```bash uv sync uv run pytest uv run ruff check src/ tests/ ``` ## License GPL-3.0-or-later, matching the FreeRouting source it is ported from.