ruling
Local Jev-compatible /v1/systemone server that reads typed answers from the logits of any MLX or OpenAI-compatible model, no training.
Overview
ruling turns any open chat model into a decision engine like Jev. You send a state and typed questions (choice, score, noul; up to 64 per request with the state read once) and get a probability for every declared option; nothing is generated, so nothing needs parsing and the model cannot invent an answer. It serves POST /v1/systemone on Apple Silicon via MLX or in front of an OpenAI-compatible endpoint, and TypeSafe's official SDK works against it unchanged by pointing TYPESAFE_BASE_URL at it. It ships a playground, a CLI, a Python client and a zero-dependency TypeScript client.
Probabilities are read from logits with option-order averaging and temperature calibration bound to the exact model. On 256 public judgments carrying Jev's answers, the README reports a 19 GB untrained open model (Qwen3.6-35B-A3B 4-bit, about 204 ms) gets 231 right versus Jev's 238, not significant (McNemar p=0.21), and documents where Jev leads. A cascade sends questions below a confidence threshold to a secondary model such as a larger local model, Clef-flash, or hosted Jev. It is not affiliated with TypeSafe.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Which team should handle this? | billing · technical · sales |
| Score | How urgent is this? | Can wait · This week · Today |
| Yes / no | The customer asks for a refund. | — |
How it works
- uv run ruling serve with a chosen RULING_MODEL
- POST state and questions to /v1/systemone
- Read option probabilities from logits with order averaging and calibration
- Cascade low-confidence questions to a secondary model if configured
Strengths
- No training; works with any open chat model
- Drop-in for the official TypeSafe SDK
- Calibration and cascade for automation budgets
- Close to Jev on its public replay per the README
Caveats
- MLX path needs Apple Silicon
- Large models needed for Jev-level accuracy
- Not affiliated with TypeSafe
Getting started
uv sync && uv run ruling serve (downloads a 2.3 GB model, serves http://127.0.0.1:8010).At a glance
- Type
- Library
- Status
- beta
- Language
- Python
- Runtime
- Local HTTP server (MLX or OpenAI-compatible backend)
- Has code
- yes
Use cases and integrations
How curated lists describe it
Local reproduction: Jev-compatible `POST /v1/systemone` server that reads typed `Choice`/`Score`/`Noul` answers from the logits of any MLX checkpoint or OpenAI-compatible endpoint with no training, works as a drop-in for the official SDK, and replays Jev's published answers on 256 public judgments (231 vs Jev's 238, McNemar p = 0.21).
yibie/awesome-jevReproduction that serves Jev's `/v1/systemone` schema from a frozen MLX model or OpenAI-compatible endpoint by reading option probabilities from the logits, with option-order averaging, temperature calibration, and a harness that replays Jev's published answers on public judgments.
cobanov/awesome-jevTurns any open chat model into a local decision engine: a state and typed questions in, a probability for every option out, no text generated. Not affiliated with TypeSafe.
MrJev/awesome-jev
Frequently asked questions
How close is ruling to Jev?
On 256 public judgments the README reports 231 correct versus Jev's 238, not a significant difference.
Can I use the official TypeSafe SDK with it?
Yes, set TYPESAFE_BASE_URL to the ruling server.
Does it need a TypeSafe key?
No, unless you configure hosted Jev as a cascade target.
Related projects
llama.cpp-based C++ server that turns any LLM into a System One decision model, reading answers from next-token logits.
ProjectbetaC++MLX library that turns an existing local model into a decision engine by reading candidate logits, with no fine-tuning, on Apple Silicon.
ProjectprototypePythonLocal server (xks) implementing Jev's /v1/systemone contract on an open-weight LLM, accelerated with Xeon Phi cards.
ProjectresearchRustEducational C11 library and CLI that turns DiffusionGemma 26B into a CPU-first OpenJev-style decision engine reading candidate logits.
ProjectresearchCExperimental engine that makes an existing LLM do Jev-like classification and scoring by reusing context and building JSON.
ProjectresearchPythonReads typed decisions from one forward pass of PrismML's 1.75-bit Bonsai 27B under llama.cpp, using the OpenJev/SemIf logit method.
ProjectresearchPython