Devlery
Blog/Open Source

Ollaya Moves Jev Onto Your Own Machine, With Accuracy From 0.361 to 0.722

Ollaya, an Apache-2.0 runtime released September 23, speaks the same API as TypeSafe Jev. One environment variable points the official SDK at a local server, and open decision-model accuracy ranges from 0.361 on laya:en to 0.722 on kev:9b.

Ollaya Moves Jev Onto Your Own Machine, With Accuracy From 0.361 to 0.722
AI 요약
  • Code written against Jev now reaches a model on your own machine after one environment variable.
  • On the same questions, accuracy splits from laya:en at 0.361 to kev:9b at 0.722.
  • A bundled preset judges the command an agent is about to run in roughly 180ms.

If you want the AI calls behind your classification and routing logic to run on your own hardware instead of crossing the internet to an API, Ollaya does that job as of September 23. Where Ollama pulls and runs LLMs locally, Ollaya pulls and runs decision models, under Apache-2.0. Developer Mert Cobanov shipped eight releases in the three days after creating the GitHub repository. The project reached 578 points on Hacker News on September 25.

Decision models got their name when TypeSafe AI released Jev on September 15. They do not write sentences. They take a piece of text plus a fixed set of questions and return the chosen answers with probabilities. Instead of generating {"team": "billing"} token by token to answer "does this ticket go to billing, engineering, or sales", a single forward pass produces a calibrated probability for each option.

Leave the code alone, change the server address

The premise of the project is that moving from Jev to Ollaya requires no code changes. Ollaya serves POST /v1/systemone, /v1/decisions, and GET /v1/models in the same wire format TypeSafe uses. The official Python SDK typesafe-sdk 0.7.1 points at a local server after a single environment variable changes.

curl -fsSL https://ollaya.dev/install.sh | sh
export TYPESAFE_BASE_URL=http://localhost:11435

What changes is the bill and where the data sits. TypeSafe lists Jev on its own site at $42 per billion input tokens ($0.042 per million), with output free. Ollaya charges nothing per call, and the text being judged never leaves the machine. In exchange you need disk for the model weights, and a GPU if you want it fast.

Ollaya does not redistribute the weights. What the repository publishes is an ONNX graph of roughly 3MB. That graph reads model.safetensors from the original author's Hugging Face repository, pinned to a commit and verified by sha256. The README reports that the fp32 export produced decisions identical to the PyTorch reference implementation across 2,383 questions per checkpoint.

The decider card on Ollaya's official model page, showing Qwen3.5-based 2B and 0.8B decoder models under Apache-2.0

Accuracy depends on which model you pick

What you give up in the move is accuracy, and how much depends entirely on the model. Ollaya scored the models in its library against majority-vote labels on an in-house benchmark called "typed decisions", built from 400 states. The gap between the fastest model it recommends by default and the most accurate one is a factor of two.

Modeltyped decisionsRequirements
kev:9b0.72224GB GPU
winnow:e4b0.722Gemma 4 fine-tune, GGUF
kev:4b0.669
decider:2b0.591Default decider
nli0.548
gliclass0.477
laya:en0.361Recommended default, fastest

Ollaya itself warns against reading these as absolute numbers. The model page states that annotators disagreed often enough on this data that the scores should be used only to rank models against each other. Hosted Jev is not on the benchmark at all. TypeSafe's own published accuracy figure, in the high 60s, was measured on different data and cannot be placed beside these.

That leaves user reports. On Hacker News, george_max wrote that Laya is noticeably worse than Jev, less confident and frequently wrong on complex queries. The other side exists too. nickstinemates ran Laya on a GTX 970 with 4GB and replaced existing Jev API calls with it, writing that the context window is very small but it was a drop-in replacement for the small LLM work already in place.

Speed also follows the hardware. The measurements in the release notes vary by nearly a factor of ten depending on whether a GPU is doing the work.

12.7ms

laya:en, 5 questions, RTX 4090

114ms

Same request, Mac mini M4 Pro GPU

190ms

decider:2b, 5 questions, RTX 4090

The example task time TypeSafe publishes for Jev is 0.114 seconds. Running laya:en on an RTX 4090 is close to nine times faster than that. On an M4 Pro Mac, though, 114ms is effectively the same number. Choosing decider:2b to buy back accuracy pushes it to 190ms even on a 4090, slower than the hosted call. Moving the work local does not by itself make it faster.

Judging the command before the agent runs it

The agent preset that landed in v0.6.0 on September 25 is the most directly useful piece here if you run coding agents. Before a human approves the command an agent wants to execute, a small model reads it first and picks run, ask, or block. Put the user's request and the command together in the state and it answers four things.

Request: "Fix the typo in README.md"


Command: git push --force origin main

↓

decider:2b, about 180ms on an RTX 4090

↓
block 0.53
not on task 0.75 · destructive 0.90

Given the same request, a sed command that actually fixes the typo passes with run at 0.90. That is one example from the official docs, so the real false-positive rate is something each team has to measure. The pattern replaces asking an LLM "is it safe to run this" and parsing a sentence back with four probabilities.

An MCP server arrived one day earlier in v0.4.0. A single claude mcp add ollaya -- ollaya mcp connects it to Claude Code, Claude Desktop, and Cursor, exposing four tools: decide, list_models, show_model, and pull_model. A skill named ollaya-decisions ships alongside to tell the agent when to reach for them. Six presets are built in: triage, email, guard, moderation, router, and agent.

Can you use it today

There is no account and no application. Install it and it works the same day.

ItemDetail
WhoAnyone. No signup, approval, or waitlist
Price

Free. Runtime is Apache-2.0; models carry their own licenses (mostly Apache-2.0, nli:deberta-v3-large is MIT)

Region availability

No geographic restriction anywhere, Singapore and the rest of APAC included. Inference finishes on the machine, so no data leaves your jurisdiction and no cloud region applies. Network is needed only to install and to pull weights

Operating systems

Linux (glibc 2.38+, Ubuntu 24.04+), macOS on Apple silicon, Windows 10 and 11 x64. The desktop app covers all three

GPU requirements

NVIDIA needs driver R580 or newer (CUDA 13) plus a GPU pack of about 1.1GB. Apple GPU needs macOS 14+. kev:9b and decider:2b at 8k tokens need a 24GB GPU

Because judging happens on-device, the compliance question changes shape rather than disappearing. Under Singapore's PDPA, personal data in support tickets or emails routed through a local Ollaya instance is never disclosed to a third-party processor, which removes the transfer-limitation analysis that a hosted classification API requires. The same holds for EU deployments: no cross-border transfer, and nothing in the runtime itself constitutes a high-risk system under the EU AI Act, though the use you put it to still might.

Two things do snag. The Windows installer is not code-signed yet, so you have to click past a SmartScreen warning, and the NVIDIA instructions cover only CUDA 13, leaving older driver environments undocumented. A request for CUDA 12 support came up on Hacker News.

The project's durability also drew pushback. emmettbt and several others argued that the repository loses its reason to exist the moment Ollama supports decision models, and the name and page layout copying Ollama so closely became its own argument. The repository FAQ states that it is an independent project unaffiliated with Ollama.

If you already run ticket triage, request routing, or safety gates on Jev or an LLM, the first step is to pull 200 recent queries from production logs, send the same questions through ollaya run decider --format json, and measure agreement with your existing decisions. If agreement holds up, one TYPESAFE_BASE_URL line moves the traffic; if it does not, step up from laya to decider or kev and measure again. If you are not running decision models at all yet, wiring the agent preset into your coding agent over MCP to screen dangerous commands pays back the install faster.