Two free Mac tools for decision models ("Jev"): models that answer a few fixed questions about some text, such as which team should handle a message, or whether it asks for a refund, with one of the answers you allowed and how sure they are, instead of writing a reply.
- JevDK is a Mac app for designing and testing those questions: run them on a model on your Mac and on hosted Jev (TypeSafe, Featherless) side by side, mark the right answers, see where they go wrong, calibrate, and export the tested setup.
- jev-serve answers hosted Jev's HTTP API on your Mac. Code that already calls TypeSafe's Jev on OpenRouter or Featherless's classifier, in any language, gets private, free, on-device decisions by changing its base URL.
New to decision models? Read Decision models (Jev) in your app first: what they are if you know chatbots, and links to TypeSafe's and others' documentation.
JevDK-x.y.z-arm64.dmg from the latest release: one download for both tools. Needs an Apple-silicon Mac with macOS 27; signed and notarized.
- Open the DMG and drag JevDK to Applications. Open it from there.
- For jev-serve: JevDK → Install jev-serve Command… (asks for your password once). It puts
jev-serveon your PATH, linked to the copy inside JevDK, so it updates when JevDK does.
The .sha256 next to the DMG checks your download: shasum -a 256 -c JevDK-x.y.z-arm64.dmg.sha256.
- Examples → Customer support loads four questions and some sample messages.
- Models (toolbar): download
mlx-community/Qwen3-4B-4bit(2.3 GB), the tested starting point. - Click a sample. Each question shows its answer, how sure the model is, and a bar for every option.
- Batch → Ask all runs every sample; mark the right answers under each cell to score them.
- Backends adds a hosted decider next to the local one (the Featherless demo needs no key).
The JevDK guide walks through the whole workflow, from writing questions to shipping them, in plain English.
jev-serve --model mlx-community/Qwen3-4B-4bit # quick try; downloads the model if neededcurl -s http://127.0.0.1:8746/v1/classifier -H "Content-Type: application/json" -d '{
"state": "Nothing loads since this morning, my whole team is stuck.",
"questions": {"team": {"type": "choice", "instructions": "Which team should handle this message?",
"criteria": {"billing": "payments and refunds", "technical": "bugs and outages",
"account": "login and profile"}}}}'For real use, export a config from JevDK (File → Export Server Config…): it carries the model
pinned to the exact version you tested, your system instructions and calibration, and an optional
token. Then jev-serve --config jev-serve.json. Details: jev-serve/README.md.
Both are open source (Apache 2.0) and built on the LocalLM Lab SDK:
- jevdk/: the app (README, developer's guide)
- jev-serve/: the server (README)
They build against LocalLM Lab SDK 2.1.0-GA, using only its published binaries, which
jevdk/Package.swift downloads from the SDK's
v2.1.0-GA release (no other
setup; Xcode 27, Swift 6.4). The SDK's developer guide
covers decision models in §6c.
cd jevdk && swift build -c release && .build/release/JevDK
cd jev-serve && swift build -c release && .build/release/jev-serve --helpThe SDK version is set by defaultSDKVersion in jevdk/Package.swift, currently 2.1.0-GA (or
LOCALLM_SDK_VERSION in your shell); jev-serve follows it. This repo is a copy: both tools are
maintained as examples in ancientcomputing/locallm
(examples/jevdk,
examples/jev-serve;
see SOURCE.md).