MLX-ZeroEffort-Decider
Reads candidate logits from existing MLX-LM/VLM models on Apple Silicon to map state and a request to an allowed action.
Overview
MLX ZeroEffort Decider is an open-source Python library for local action selection on Apple Silicon. It takes application state, a natural-language request and a list of allowed actions, and returns one stable business ID or an explicit no_match or abstain. It works with existing MLX-LM or optional MLX-VLM checkpoints with no fine-tuning or extra weights: it reads candidate logits at the final input position from the model's original output head.
It can be used through a Python API, CLI or local HTTP server for semantic routing, enum and boolean questions, and language-driven app controls such as opening a feature or pausing a player. A Blocks game demo shows Qwen3.5-9B choosing among legal placements, with decision p50/p95 of 5.78/11.57 seconds in an illustrative run the README says is not a speed claim. Version 0.1 is described as experimental.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Which allowed action matches this request given the app state? | — |
| Yes / no | Boolean question about the state | true · false |
| Other | Explicit no_match or abstain outcome | no_match · abstain |
How it works
- Load an MLX-LM or MLX-VLM checkpoint you already have.
- Pass state, utterance and allowed choices.
- Read candidate logits at the final input position.
- Act on the chosen ID or handle no_match/abstain.
Strengths
- No training or decision-specific weights.
- Fully local on a Mac.
- Explicit abstention instead of a forced pick.
Caveats
- Version 0.1 is experimental.
- Decision latency in the demo was seconds, not milliseconds.
- Apple Silicon only.
Getting started
Install the mlx-zeroeffort-decider package and use the Python API, CLI or local HTTP server (imports from mlx_zeroeffort_decider).At a glance
- Type
- Project
- Status
- prototype
- Language
- Python
- Runtime
- MLX on Apple Silicon, CLI, HTTP server
- Has code
- yes
Use cases and integrations
How curated lists describe it
Typed decisions from existing MLX-LM and MLX-VLM models on Apple Silicon.
wh000wh000/awesome-jev-live
Frequently asked questions
Do I need to fine-tune a model?
No, it reads candidate logits from an unchanged compatible MLX checkpoint.
What if nothing matches?
It returns no_match or abstain as explicit outcomes.
Is it fast?
The README's game demo reports seconds per decision and says it is not a speed claim.
Related projects
Native Go runtime serving Gemma 4 12B as a Jev-like decision model with hand-tuned PTX kernels and no CGo or CUDA toolkit.
ProjectbetaGoGo gateway exposing the Jev /v1/systemone contract over ordinary LLM backends by reading single-token label logprobs.
ServicebetaGoTurns any chat model on SGLang, vLLM, transformers or MLX into a Jev-compatible service with one prefill and one label token per question.
ProjectbetaPythonSelf-hosted Jev-compatible System One server that sits in front of llama-server and reads option probabilities from any GGUF model.
ServicebetaPythonOpenAI-compatible local server pairing a small llama.cpp model for generation with Jev for the closed decisions.
ServiceprototypePythonInference engine for Jev-style decision models using segmented forwards with prefix reuse, serving the Jev wire contract.
ProjectresearchPython