Skip to content

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.

Projectprototype

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

TypeQuestionAnswers
ChoiceWhich allowed action matches this request given the app state?—
Yes / noBoolean question about the statetrue · false
OtherExplicit no_match or abstain outcomeno_match · abstain

How it works

  1. Load an MLX-LM or MLX-VLM checkpoint you already have.
  2. Pass state, utterance and allowed choices.
  3. Read candidate logits at the final input position.
  4. 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

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.

    ProjectbetaGo
  • Go gateway exposing the Jev /v1/systemone contract over ordinary LLM backends by reading single-token label logprobs.

    ServicebetaGo
  • Turns any chat model on SGLang, vLLM, transformers or MLX into a Jev-compatible service with one prefill and one label token per question.

    ProjectbetaPython
  • Self-hosted Jev-compatible System One server that sits in front of llama-server and reads option probabilities from any GGUF model.

    ServicebetaPython
  • OpenAI-compatible local server pairing a small llama.cpp model for generation with Jev for the closed decisions.

    ServiceprototypePython
  • Inference engine for Jev-style decision models using segmented forwards with prefix reuse, serving the Jev wire contract.

    ProjectresearchPython