jev
TypeScript library for one-line local decisions with open models (kev-0.6b, kev-4b, open-jev), no API keys or cloud.
Overview
@amatelic/jev is a TypeScript library for local AI decisions with calibrated choice, yes/no and score answers from open models, with no API keys or cloud. createJev() returns a decider that auto-downloads a model on first use; jev.decide() takes state and a list of questions and returns answers with confidence. It is aimed at JavaScript developers who want Jev-style decisions running on their own hardware.
Models include kev-0.6b (Qwen3-0.6B, 383 MB at q4) for fast prototyping, kev-4b (Qwen3-4B, 2.4 GB) for better accuracy, and open-jev (DeBERTa-v3, 800 MB) with different trade-offs. Configuration covers dtype, device (CPU, WebGPU, WASM), and a mode that runs natively or falls back to a Docker HTTP server; native mode does not work on x64 Macs, and no Docker is needed on ARM64 Mac or Linux. Model management lists cached models, and documentation explains training your own models and exporting to ONNX.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | What type of event? | concert · sports · exhibition · general |
| Yes / no | User-defined yes/no question | yes · no |
| Score | User-defined score | — |
How it works
- createJev() selects and downloads a local model
- Call decide() with state and questions
- Model returns choices or probabilities with confidence
- Optionally fine-tune and export your own model to ONNX
Strengths
- No API keys, cloud or per-call cost
- Several model sizes and backends
- Runs on CPU, WebGPU or WASM
Caveats
- Small open models are less accurate than hosted Jev
- Native mode fails on x64 Mac; Docker fallback needed
Getting started
`import { createJev } from "@amatelic/jev"; const jev = await createJev(); await jev.decide(state, questions);`At a glance
- Type
- Project
- Status
- beta
- Language
- TypeScript
- Runtime
- Node (native or Docker HTTP)
- Has code
- yes
Use cases and integrations
How curated lists describe it
One-line local AI decisions. Calibrated choice/noul/score from open models.
wh000wh000/awesome-jev-live
Frequently asked questions
Does it use TypeSafe's Jev?
No. It runs open models like kev and open-jev locally.
Which model is the default?
kev-0.6b, a 383 MB q4 model based on Qwen3-0.6B.
Can I train my own?
Yes, the docs explain fine-tuning and ONNX export.
Related projects
Go harness for System One models: hosted Jev, open Kev in-process via llama.cpp, and Cloudflare Clef, with typed helpers and a CLI.
ServicebetaGoSwift 6 bridge that runs System One decision models behind Apple's Foundation Models API, on device with Laya or via hosted endpoints.
ProjectbetaSwiftZero-dependency npm package that runs Laya natively or as WebAssembly in Node, Bun and browsers, drop-in for Jev's /v1/systemone.
ProjectbetaJavaScriptLocal-first desktop AI workbench for llama.cpp, vLLM and SGLang that includes a JEV typed-decision page and /v1/systemone gateway.
ServicebetaRuns the open LAYA decision model under Bun with native ONNX inference behind a TypeSafe-compatible API, plus an English/Persian playground.
LibrarybetaTypeScript- ollaya★ 1,305
Rust daemon and CLI that pulls open decision models like Laya and serves them locally behind a TypeSafe-compatible /v1/systemone.
ServicebetaRust