interlock local AI device router.
A research instrument, not a release. It suggests a model, an engine and a device from measured receipts, and it never serves traffic. Nothing is on PyPI yet.
Install from a clone
uv sync
uv run interlock --help
Ask the table
uv run interlock route --task generate --model Phi --thinking off --ctx 1024 --busy 5090
Plan a run
uv run interlock run experiments/e4b/spec.yaml --dry-run
What it does
Every number comes from a receipt. A route is a suggestion.
Named devices
NPU, the Intel iGPU, CPU, and the RTX 5090. A missing device is an error. interlock does not fall off onto a weaker one.
The conservative bound
Generate ranks by the worst repeat, not the median. When no row meets the constraints, the command exits 1 and names the constraint.
Pre-registered experiments
A spec is committed before any device time. interlock run refuses a spec that was edited after its commit.
One rig
The table was measured on one machine: a Core Ultra 9 285K with its NPU and iGPU, plus an RTX 5090. Treat a route as that rig’s evidence.
Devices
Every device is named. OpenVINO AUTO, HETERO and MULTI are refused.
| Name | What it is |
|---|---|
| NPU | Intel AI Boost on the Core Ultra 9 285K. Exclusive. A step needs --npu-session. |
| iGPU | The Intel integrated GPU. A live enumeration must say vendor 0x8086 and type INTEGRATED. |
| CPU | The same processor’s CPU. A CPU-heavy leg waits for --cpu-window. |
| 5090 | The RTX 5090, through local Ollama. A step needs --grant. |
From a clone
These commands do not start a device.
Check the receipts
uv run interlock checkRead the table
uv run interlock table --task generate --device NPUList runs
uv run interlock runs listCommands
The handbook has the flags. Nothing here is a server.
interlock route
Choose a model, engine and device from the routing table. Advisory only.
interlock run
Run a committed spec. --dry-run prints the plan and starts nothing.
interlock runs
List complete, aborted and stray runs, or set a stray series aside.
interlock table
Print routing rows, filtered by task or device.
interlock check
Validate every receipt and table row, including the privacy check.
interlock import
Rebuild table/ from the committed receipts.