arbiter: serve Laya (or your own model) with a Jev-compatible API on GPU or Mac
Typed-decision server on NVIDIA GPUs or Apple Silicon that speaks the Jev wire format, with coding-agent integrations. Built after a cat woke the author at five on a Sunday.
# arbiter [](https://laya-ai.com/projects#project-0xbakeer-arbiter) [](https://github.com/0xBakeer/arbiter/tags) [](LICENSE) [](recipes) [](recipes/nvidia/README.md) [](recipes/apple/README.md) [](#the-api) [](https://huggingface.co/convaiinnovations/laya) [](integrations/mcp) [](integrations/claude-code) [](https://github.com/0xBakeer/arbiter) Serve typed-decision models — Laya or your own — on your GPU or your Mac, with a Jev-compatible API. Read the story behind it: [My cat woke me at five on a Sunday, so I built a local Jev](https://blog.0xbakeer.com/my-cat-woke-me-at-five-on-a-sunday-so-i-built-a-local-jev-1350583cddc6?sharedUserId=0xbakeer) What it does with a state and a set of questions, and where it sits next to an LLM. ## Why the name, and what this is A typed-decision model answers questions about a piece of text in **one forward pass** — no tokens generated, no sampling, no loop. You hand it a state and a set of questions, and it returns an answer and a probability distribution for each of them at once. There is no prose to read back and nothing to argue with: it arbitrates, and your code decides what to do with the numbers. This repository is the serving layer around that and deliberately nothing more — a small HTTP server that speaks TypeSafe's **Jev** API, so a client written against Jev works against this by changing the base URL; cross-request micro-batching; routing between checkpoints; a playground; and the measurements that picked every default. The model is a plug: **Laya** today, with its three checkpoints (English, multilingual, and a typed-decisions fine-tune) resident at once and automatic routing between them, and whatever is trained here next behind the same interface ([engines/README.md](engines/README.md)). So is the machine: one re