← Compare all local Jev alternativesLocal Jev models · deploy guide

Deploy Laya locally

Laya is the open-weight decision model people reach for when they want Jev's shape — typed choice, score, yes/no — running on their own hardware. It's not Jev, but it's the closest self-hostable match, with a tiny MLX build for Macs and an ONNX build for Node.

What Laya is

Laya is an open-weight "System One" decision model from Convai Innovations, released under Apache 2.0 a few days after TypeSafe launched Jev. Like Jev it doesn't generate text — it takes a state plus typed questions and returns a decision with a probability distribution. Unlike Jev, the weights are public, so you can download, fine-tune and run it entirely offline.

Relationship to official Jev

Laya is an independent project, not TypeSafe's Jev. It rebuilds the same idea on open weights, which means its calibration and accuracy are its own — Laya's model card claims strong numbers, but you should validate them on your own data before trusting a threshold. Jev is the hosted, pinned, RLCD-calibrated model; Laya is the open, local counterpart. For a head-to-head see Laya vs Jev.

Requirements

Install & run on a Mac (Laya-MLX)

pip install laya-mlx

# Python:
import laya_mlx as laya
agent = laya.load("aac6fef/laya-mlx")   # weights auto-download on first call
resp = agent.predict(
    state="Customer: I was charged twice and I am furious.",
    questions={
        "topic":  {"type": "choice", "instructions": "What is this about?",
                    "criteria": {"billing": "money", "bug": "broken product"}},
        "urgent": {"type": "noul", "instructions": "Escalate now?"},
    },
)
print(resp["answers"]["topic"]["choice"], resp["answers"]["urgent"]["noul"])

Run from Node (@receptron/laya)

npm install @receptron/laya
// import { Laya } from "@receptron/laya";
// const laya = await Laya.load();            // ONNX weights cache locally
// const { answers } = await laya.predict(state, questions);

Local API endpoint

Laya-MLX is in-process by default (no HTTP). If you want a TypeSafe-compatible HTTP endpoint so the official SDK can point at it with a base_url change, use a community wrapper such as the navopw/laya-onnx fork, which exposes the decision call over HTTP.

Reported latency

Community and vendor figures only (not independently benchmarked here): the in-process Laya-MLX build returns a short decision in roughly 7–14 ms on Apple Silicon; Laya's own model card claims ~33 ms versus Jev's ~236–276 ms. Measure on your own hardware and workload before relying on any number.

Calibration caveats

Laya's probabilities are its own, not Jev's calibrated ones. Some third-party checkpoints have shipped with out-of-range sampling temperatures, so the confidence values can be uncalibrated — the Laya-MLX runtime prints a warning when it detects this. Before wiring a production threshold like "escalate if p > 0.8", validate against your own labelled data.

Sources

Versions and licenses move fast — check the current repo before you deploy.

See also: Laya vs Jev (full comparison) · Local Setup Generator · ← Compare all local Jev alternatives · Prefer hosted Jev (no GPU)

Other local models: NanoJev · OpenJev · DiffusionGemma-as-Jev

Want it calibrated and hosted instead?

Skip the GPU and the calibration work — grab a jv_live_ key and call the pinned hosted model in one request.

▶ Try Jev freeGet an API key →
← Compare all local Jev alternatives
Run Laya locally — the open Jev-like decision model (MLX, ONNX) · Jev by TypeSafe AI