Mission

Open weights are only open if you can run them.

The best open-weight models in the world are a free download and, for almost everyone, an impossible one to actually use. Empanel exists to close that gap — so that the frontier is limited by what a drive costs, not by who can afford a data centre.

The gap between open and usable

DeepSeek-V3, Kimi-K2, Llama-4, gpt-oss — the weights are published, the licences are permissive, and anyone can download them. Then the practical question arrives: the machine that can hold them. gpt-oss-120B is a 61 GB store once converted, and the largest open models are several times that. Consumer cards are sold in tens of gigabytes.

So in practice “open weights” has meant open to whoever can rent the hardware, and the independence the licence promised gets handed straight back to an API. A model you can download but cannot run is a model you are still asking permission to use.

Changing the constraint

A Mixture-of-Experts model activates a small fraction of itself for any given token. The rest is needed eventually, but not now. Holding all of it in memory treats that as unavoidable; reading only the experts a token asks for does not.

That moves the binding constraint from memory to storage — from something sold in tens of gigabytes to something already sold in terabytes. Total model size becomes a line on a storage bill instead of a wall. It is not magic and it is not free: when a model already fits in memory a resident engine is faster, and the benchmarks page says so plainly. The case this exists for is the one where the alternative is not running the model at all.

What running it yourself protects

Nothing leaves the machine

The server it runs is hand-written and binds to localhost. There is no HTTP client and no TLS stack linked into the binary at all: the only way it reaches the network is by spawning the curl or wget already on your PATH, and only to pull a model or read the index. Conversion reads a local directory and never the network. That is a property of the build, not a promise in a policy.

Nobody can deprecate your model

A weight file you hold does not get retired, rate-limited, silently swapped for a cheaper variant, or repriced. Running it yourself is the only version of that guarantee that does not depend on somebody else’s roadmap.

Breadth, not one blessed model

Democratising one model is a favour. 52 models across 40 architectures convert today, from Mixtral to DeepSeek-V3, Kimi-K2 and gpt-oss, and an unknown architecture is refused before any bytes are written rather than quietly producing nonsense.

How we hold ourselves to it

A project that asks you to trust your own hardware over an API has to be worth trusting. These are the repository’s own rules, most of them enforced by a lint crate that fails CI rather than by good intentions.

  1. 01

    Honest numbers

    Benchmarks name the exact hardware and settings, nothing is cherry-picked, and a figure that is arithmetic rather than a measurement says so where it appears.

  2. 02

    Supported means measured

    A platform is called supported once the test suite has run on that hardware. Compiling for it is the row below, and it is labelled as such.

  3. 03

    Read the source, not your memory

    Anything implementing a wire format or another project’s behaviour reads that specification first and cites it. CI fails a file that claims conformance without naming a source.

http.rs was written from a threat model with RFC 9112 unread and shipped three MUST-level framing violations while its own documentation claimed it closed request smuggling.

AGENTS.md, explaining why the third rule exists. It was written after it was broken, and it stays in the contributor guide on purpose.

Help

Benchmarks, model converters and hardware reports are especially welcome — above all a run on hardware nobody here has. A measurement from a machine we cannot reach is worth more than another projection.