Skip to content
ILinterlock
Prototype 0.1.x

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.

NameWhat it is
NPUIntel AI Boost on the Core Ultra 9 285K. Exclusive. A step needs --npu-session.
iGPUThe Intel integrated GPU. A live enumeration must say vendor 0x8086 and type INTEGRATED.
CPUThe same processor’s CPU. A CPU-heavy leg waits for --cpu-window.
5090The 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 check

Read the table

uv run interlock table --task generate --device NPU

List runs

uv run interlock runs list

Commands

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.