Heads up This site is currently under heavy development.
← all tools
◆ Local LLM Runtimes

vMLX

v1.6.48 open-source

vMLX - JANGTQ Uber Compressed MLX Models - L2 Disk Cache (survives restart) + L1 Paged (super fast ttft) + Hybrid SSM Scheduler + Cont Batching + etc!

Summary

vMLX is a open-source inference server that runs large language models, vision-language models, and image generation locally on Apple Silicon. It runs as a command-line tool, self-hosted on the developer's own Mac, with no third-party API keys or cloud dependency, and it also ships an OpenAI-, Anthropic-, and Ollama-compatible HTTP API so existing scripts and tools work unchanged. It is aimed at developers and ML practitioners running models on M-series Macs rather than in the cloud, and the vendor names LM Studio and Ollama directly, claiming faster time-to-first-token through prefix caching, paged KV cache, and continuous batching, features it says those tools lack. Development is active, with over 3,400 commits and 45 releases in the past year and the last one 17 days ago.

vMLX - JANGTQ Uber Compressed MLX Models - L2 Disk Cache (survives restart) + L1 Paged (super fast ttft) + Hybrid SSM Scheduler + Cont Batching + etc!

What vMLX answers

What hardware and software does this actually require?

Apple Silicon (M1 through M4) with macOS Sequoia or Tahoe, and a Python 3.10 or newer environment

What happens when a request exceeds my Mac's memory?

the server reports the real memory ceiling at startup, shrinks prefill chunks under pressure, and returns a clean error instead of crashing with an out-of-memory failure

Does it only handle text models?

no, it also serves vision-language models and image generation alongside LLMs, all running locally with no cloud call

How does it behave across a long-running or interrupted conversation?

it rewinds the cache to the last shared prefix on retry instead of reprocessing the whole prompt, and an expanded cache index keeps reuse working deep into long sessions

Can models call external tools or APIs?

native Model Context Protocol support lets a served model invoke external tools as part of an agentic workflow

all 25 features, with the evidence for each →

Features

25 capabilities across 6 areas · 1 backed by code, an API document or a real run

Built from everything we hold on vMLX — every release we have summarised, its product documentation and how that documentation has changed, its README, its command-line surface and API, and runs we performed ourselves. Dates are when we first saw a capability, not when the vendor introduced it.

Capability area
Inference Performance and Memory Management 9 capabilities vMLX manages how GPU and system memory are allocated, reused, and scaled during model inference. It reduces redundant computation and keeps memory use predictable across a wide range of model sizes and context lengths.
Inference performance profiling and ratio controls verified Provides controls to tune and observe the balance between prompt processing and token generation throughput during inference. 6 other sources · first seen Aug 2026

command line

Paged KV cache shipped Deduplicates memory across requests by storing the KV cache in reusable blocks, improving efficiency when prompts share common prefixes. 2 releases · 2 other sources · first seen Jul 2026

release

  • Paged RAM is now consistently enabled for vision models between the app and command line, eliminating a silent cache-reuse penalty in the app. v1.6.27 · Aug 2026 · source · release history
  • Paged KV cache now defaults ON for autodetected text families (Qwen3.5/3.6, Zaya, Nemotron-H, LFM2.5, Laguna, Hy3, Step-3.7) when continuous batching and prefix cache are active; --use-paged-cache / --no-paged-cache always override the default. v1.6.7 · Jul 2026 · source · release history

example

  • Override the new paged-cache default to explicitly disable it for a model family that behaves unexpectedly with block-based caching. vmlx serve mlx-community/Qwen3-8B-4bit --no-paged-cache v1.6.7 · Jul 2026 · source
  • Explicitly opt in to paged KV cache on a model where you want to confirm block-based deduplication is active. vmlx serve mlx-community/Qwen3-8B-4bit --use-paged-cache v1.6.7 · Jul 2026 · source
Prefix cache shipped Skips recomputing prompt context that has been seen before by caching and reusing previously computed KV state, including on disk. 4 releases · first seen Jul 2026

release

  • Prefix cache index expanded from ~64,000 to 262,144 tokens, with automatic migration of existing sessions, so long conversations no longer report zero reuse. v1.6.27 · Aug 2026 · source · release history
  • Persistent cache payload encoding is moved off the inference-completion path, reducing synchronous CPU work at end of request. v1.6.19 · Jul 2026 · source · release history
  • Introduces detailed cache reporting covering attempted prefixes, applied reuse, uncached suffixes, reconstruction, fallback prefill, and aggregate disk usage. v1.6.18 · Jul 2026 · source · release history
  • Adds a process-wide SSD cache budget with coordinated LRU eviction and off-request-path publication for improved prefix reuse management. v1.6.18 · Jul 2026 · source · release history
Adaptive prefill chunking and memory pressure handling shipped Detects available hardware memory at startup, reduces chunk sizes under memory pressure, and returns a clear error instead of crashing when a request exceeds capacity. 1 release · first seen Aug 2026

release

  • Engine now advertises the true hardware memory ceiling at startup, shrinks prefill chunks adaptively under Metal memory pressure, and returns a clean 413 on over-ceiling requests instead of crashing with a Metal OOM; the flat request timeout that killed healthy very-long prefills is removed. v1.6.25 · Aug 2026 · source · release history
Indexed-attention prefill kernel shipped Speeds up prompt processing for large models using a specialised prefill kernel that handles indexed attention more efficiently. 1 release · first seen Aug 2026

release

  • New indexed-attention prefill kernel (on by default) lifts DeepSeek V4 Flash prompt processing from 347 to ~449 tokens/s at 15k context (+29%) and from 199 to ~316 tokens/s at 40k context (+58%), while sustaining 33+ tokens/s decode at both lengths. v1.6.25 · Aug 2026 · source · release history
KV cache rewind on abort/retry shipped On a failed or retried request, restores the cache to its last valid state rather than reprocessing the full prompt from scratch. 1 release · first seen Aug 2026

release

  • KV cache rewind on abort/retry: engine rewinds the live KV cache to the shared prefix instead of re-prefilling, dropping retry time-to-first-token at 15k context from 46s to 2.3s. v1.6.25 · Aug 2026 · source · release history
KV pool quantization shipped Compresses the in-memory KV cache to prevent RAM exhaustion when working near the model's maximum context length. 1 release · first seen Aug 2026

release

  • KV pool quantization keeps cache RAM under 8 GB even near the model's maximum context. v1.6.25 · Aug 2026 · source · release history
Two-pass answer path shipped When a response requires two passes, the second pass reuses the first pass's computed cache instead of repeating the full prefill. 1 release · first seen Aug 2026

release

  • Two-pass answer path now reuses the first pass's KV cache, eliminating a full prompt re-prefill on the second pass. v1.6.25 · Aug 2026 · source · release history
Dynamic MLX cache scaling shipped Automatically adjusts the upper limit of the MLX cache based on the system's installed memory to avoid wasteful re-allocation during inference. 1 release · first seen Aug 2026

release

  • Scales the MLX cache ceiling dynamically with installed memory (16 GB → 4 GB, 64 GB → 11.5 GB, 128 GB → 23 GB, capped at 24 GB), enabling ~11% faster decode throughput for DeepSeek V4 Flash at every context length by eliminating redundant buffer re-allocation. v1.6.22 · Aug 2026 · source · release history
Model Support and Compatibility 7 capabilities vMLX provides native support for a range of model families, handling their specific architectures, tool formats, and caching behaviours. Each supported model is integrated with the appropriate runtime settings and validation checks.
Muse Glimmer 30B support shipped Runs Muse Glimmer 30B with support for its text and vision inputs, reasoning, tool dialect, and multi-image capabilities. 5 releases · first seen Aug 2026

release

  • Muse Glimmer 30B video clips are now read in temporal order. v1.6.27 · Aug 2026 · source · release history
  • Control markup (recipient markers) is now scrubbed from visible Muse answers on malformed or truncated streams, while reasoning text and tool-call bodies are left intact. v1.6.27 · Aug 2026 · source · release history
  • Muse Glimmer 30B single- and multi-image prompts now correctly identify distinct objects in the same turn. v1.6.27 · Aug 2026 · source · release history
  • Each reasoning depth in Muse Glimmer 30B maintains its own cache lineage, so switching back to a prior depth resumes that chain rather than starting over. v1.6.27 · Aug 2026 · source · release history
  • Adds full support for Muse Glimmer 30B: text tower, windowed vision tower, recipient-routed reasoning rail, and ATEM tool dialect — all three bundles (JANG_2D / 4M / 6M) supported. v1.6.27 · Aug 2026 · source · release history
DeepSeek V4 Flash (DSV4) support shipped Runs DeepSeek V4 Flash natively, including its reasoning mode, tool use, and specialised cache handling. 5 releases · first seen Aug 2026

release

  • Adds native DeepSeek V4 Flash (DSV4) session support with native reasoning, DSML tool support, sampling guidance, cache-tier capabilities, and pool-quantization behavior. v1.6.20 · Aug 2026 · source · release history
  • Native DSV4 cache handling preserves short append checkpoints, lossless L2 writes, valid eviction ancestry, partial-tail replay, SSD-only operation, and RAM-to-SSD refault. v1.6.20 · Aug 2026 · source · release history
  • Server and Chat settings now distinguish native DSV4 compiled decode and pooled-cache state from generic TurboQuant and unsupported whole-model cache modes, with explicit Activation-QAT control and effective-state reporting. v1.6.20 · Aug 2026 · source · release history
  • Release packaging now attests the native Python DSV4 encoder, nested affine defaults, mixed module quantization metadata, and the clean JANG runtime source, with separate Sequoia and Tahoe packaging/notarization contracts. v1.6.20 · Aug 2026 · source · release history
  • Electron settings warn when a DSV4 top-p value differs from bundle guidance and preserve remote model tool contracts. v1.6.20 · Aug 2026 · source · release history
MiniMax model support shipped Supports MiniMax model families with their specific tool argument format and cache configurations tuned per hardware generation. 3 releases · first seen Jul 2026

release

  • MiniMax M3 native sparse-cache blocks are scoped to the prompt-prefill shape, preventing numerically incorrect Lightning Indexer state restoration across mismatched prefill shapes. v1.6.19 · Jul 2026 · source · release history
  • MiniMax M2-family automatic cache storage defaults to the q8 correctness-first policy. v1.6.19 · Jul 2026 · source · release history
  • Supports MiniMax tool arguments emitted as request-schema XML children. v1.6.18 · Jul 2026 · source · release history
Looped-transformer (Nanbeige) bundle validation shipped Validates and correctly scopes caching for Nanbeige looped-transformer models before allowing generation to begin. 2 releases · first seen Jul 2026

release

  • Compatible Nanbeige looped-transformer JANG bundles now validate loop count, effective cache-slot count, and runtime metadata before generation, rejecting inconsistent bundles. v1.6.19 · Jul 2026 · source · release history
  • Cache namespaces for looped-transformer bundles now include the effective repeated-layer layout, preventing cross-incompatible-loop-count cache reuse. v1.6.19 · Jul 2026 · source · release history
Automatic prompt limit sizing shipped Automatically sets the prompt context limit based on the loaded model's own configuration and the available memory budget. 1 release · first seen Jul 2026

release

  • Automatic prompt limits are now derived from the actually loaded model's configuration, bounded by its declared context ceiling and current memory budget. v1.6.19 · Jul 2026 · source · release history
Model-owned generation defaults shipped Loads generation settings such as temperature and output limits directly from the model bundle when starting or restoring a chat. 1 release · first seen Jul 2026

release

  • Introduces model-owned generation defaults: temperature, Top P, Top K, repetition penalty, and output limits now hydrate from the selected model bundle in new and restored chats. v1.6.19 · Jul 2026 · source · release history
Native MTP health and profiling telemetry shipped Exposes timing and acceptance metrics specific to Qwen MTP models to help users understand their inference behaviour. 1 release · first seen Jul 2026

release

  • Adds native-MTP health and profiling telemetry exposing bounded cache-lifecycle, acceptance, and phase-timing metrics for Qwen MTP models. v1.6.19 · Jul 2026 · source · release history
Reasoning and Tool Use 2 capabilities vMLX supports extended reasoning modes and tool-calling workflows, allowing models to think through problems in depth and invoke external tools across multi-turn interactions. Media and context are preserved correctly across these flows.
Reasoning mode shipped Enables models that support extended thinking to reason at configurable depth before producing a response, across both streaming and non-streaming outputs. 3 releases · 2 other sources · first seen Jul 2026

release

  • Ollama think string levels ('low', 'medium', 'high') now engage thinking and select effort depth — previously they were silently ignored. v1.6.27 · Aug 2026 · source · release history
  • Chat Settings for Muse Glimmer 30B now exposes all four reasoning depths — Low / Medium / High / Extra High — replacing the previous Auto/On-only toggle. v1.6.27 · Aug 2026 · source · release history
  • Reasoning mode now defaults ON for every reasoning-capable family; max_thinking_tokens is honored and gated on both streaming and non-streaming paths. v1.6.7 · Jul 2026 · source · release history

example

  • Drive reasoning effort from an Ollama client using the new think string level instead of a boolean. curl http://localhost:8000/api/chat \ -H 'Content-Type: application/json' \ -d '{ "model": "local", "think": "high", "messages": [{"role": "user", "content": "Analyze this network capture for lateral… v1.6.27 · Aug 2026 · source
  • Cap Muse Glimmer 30B reasoning budget via the Anthropic API so long chains do not run unbounded. curl http://localhost:8000/v1/messages \ -H 'Content-Type: application/json' \ -d '{ "model": "local", "max_tokens": 4096, "thinking": {"type": "enabled", "budget_tokens": 2000}, "messages":… v1.6.27 · Aug 2026 · source
Tool-use continuation and media persistence shipped Keeps media attachments and context intact across tool-use turns, and correctly routes final instructions after tools have finished. 2 releases · first seen Jul 2026

release

  • Explicit visible-final instructions after tool use now enter a no-more-tools continuation pass, with terminal abort cleanup drained before the runtime returns to idle. v1.6.20 · Aug 2026 · source · release history
  • Retains media across Responses tool continuations and enables local attachment playback in the Electron app. v1.6.18 · Jul 2026 · source · release history
API and Integration 2 capabilities vMLX exposes interfaces that allow external clients and existing workflows to interact with the inference engine without requiring custom integration work. Compatibility layers translate third-party API formats into native requests.
Ollama API compatibility shipped Accepts requests formatted for the Ollama API and translates them faithfully into native inference calls, preserving all relevant parameters. 2 releases · first seen Jul 2026

release

  • Ollama think string levels ('low', 'medium', 'high') now engage thinking and select effort depth — previously they were silently ignored. v1.6.27 · Aug 2026 · source · release history
  • Ollama requests now preserve an explicitly supplied top_k value, including 0, through request translation. v1.6.19 · Jul 2026 · source · release history
Health and status reporting shipped Reports health status that distinguishes which model is being served from which is loaded, and surfaces key runtime state for diagnostics. 2 releases · first seen Aug 2026

release

  • Server and Chat settings now distinguish native DSV4 compiled decode and pooled-cache state from generic TurboQuant and unsupported whole-model cache modes, with explicit Activation-QAT control and effective-state reporting. v1.6.20 · Aug 2026 · source · release history
  • Health output now distinguishes the served model from the currently loaded model. v1.6.20 · Aug 2026 · source · release history
Packaging, Distribution, and Runtime Integrity 3 capabilities vMLX handles the packaging, signing, and dependency management needed to deliver a trustworthy and correctly functioning runtime to end users. It enforces version and bundle requirements before allowing the engine to run.
Signed app engine provenance shipped Ensures that signed application sessions use only the bundled, verified Python and engine components rather than any stale or system-level alternatives. 2 releases · first seen Jul 2026

release

  • Release packaging now attests the native Python DSV4 encoder, nested affine defaults, mixed module quantization metadata, and the clean JANG runtime source, with separate Sequoia and Tahoe packaging/notarization contracts. v1.6.20 · Aug 2026 · source · release history
  • Hardens packaged engine provenance so signed app sessions use bundled Python/vmlx_engine instead of stale development or system virtualenvs. v1.6.16 · Jul 2026 · source · release history
JANG runtime dependency management shipped Checks that required runtime dependencies meet minimum version requirements and that model bundles are valid before inference begins. 2 releases · first seen Jul 2026

release

  • Compatible Nanbeige looped-transformer JANG bundles now validate loop count, effective cache-slot count, and runtime metadata before generation, rejecting inconsistent bundles. v1.6.19 · Jul 2026 · source · release history
  • This release requires JANG 2.5.34. v1.6.18 · Jul 2026 · source · release history
Platform-specific macOS packaging shipped Ships separate, notarised macOS packages for different operating system versions to ensure compatibility across Apple Silicon hardware. 1 release · first seen Jul 2026

release

  • Separate Apple-silicon downloads are now provided for macOS Tahoe and Sequoia-compatible systems. v1.6.19 · Jul 2026 · source · release history
User Interface and Experience 2 capabilities vMLX includes a chat interface with support for mathematical notation rendering and localisation across multiple languages. These features make the tool accessible to a broader range of users without additional configuration.
Math rendering (KaTeX) shipped Renders mathematical expressions correctly in the chat interface, including improved handling of currency symbols that could otherwise be misread as math delimiters. 2 releases · first seen Jul 2026

release

  • KaTeX rendering gains improved disambiguation of literal currency symbols from inline math and unclosed dollar delimiters. v1.6.19 · Jul 2026 · source · release history
  • Adds KaTeX-backed Electron renderer path for chat and reasoning surfaces. v1.6.16 · Jul 2026 · source · release history
Localization shipped Presents settings and system messages in English, Spanish, Japanese, Korean, and Chinese depending on the user's locale. 1 release · first seen Jul 2026

release

  • New settings and compatibility messages are localized across English, Spanish, Japanese, Korean, and Chinese interfaces. v1.6.19 · Jul 2026 · source · release history
Capability
Evidence

Lines in monospace are the tool's own words — help text parsed from its source, or an endpoint from its API document. Everything else is our summary of a dated release or documentation change, linked back to the source it came from.

Release history

  1. v1.6.48 Aug 30, 2026 · issue 012

    vMLX 1.6.48 enables vectorized GLM KDA MTP verification and makes native MTP restart cache proofs configurable

    └──▷ GET THIS VERSION
    $ git clone --branch v1.6.48 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.6.48
    • Makes native MTP restart cache proofs configurable (commit fc88a3ea).
    • Enables vectorized GLM KDA MTP verification for GLM-family models.
    • Adds typed prompt SSD cache support to the MTP benchmark.
    • Attests fast gateway replays from durable request IDs.
    • Keeps Hugging Face download progress refresh-compatible.
  2. v1.6.46 Aug 30, 2026 · issue 011

    vMLX 1.6.46 adds GLM-5.3-Flash text support, native MTP for GLM, typed prompt caching for GLM, and a wired-limit recommendation popup in the server panel.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.6.46 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.6.46
    • Adds GLM-5.3-Flash text runtime with registry row and text-route, including bundle-stamped parser ID aliases for the GLM-5 family.
    • Enables native Multi-Token Prediction (MTP) for GLM-5.3 at the public loader, with quantization mapped onto the attached head and adaptive MTP depth policy.
    • Adds exact typed GLM native-state prefix caching (GLM typed prompt cache) with metadata validation on live restore, memory-bounded cache snapshots, and cache persistence through native MTP finalization.
    • Adds GLM DSA sparse indexer path, unlocking full context for GLM-5 family models.
    • Adds GLM-5-next family row, parser dropdown entries, and alias canonicalization to the server panel UI.
    +15 moreshow less
    • Adds a visual wired-limit recommendation popup at session launch (W0-W2 core) in the server panel.
    • Adds peak benchmark profiles to the server panel.
    • Records request-exact MTP benchmark telemetry for observability.
    • Exposes DSV4 indexer acceleration status and separates DSV4 indexer hits from fallbacks in engine reporting.
    • Reports observed fused decode paths and standardizes cross-family acceleration status display.
    • Adds source-gated affine MoE pair fusion for hybrid decode.
    • Adds opt-in Qwen3.5 GDN decode fusion with exact gate preparation.
    • Enables proven Qwen4 affine MoE pair decode and GLM mHC decode fusion.
    • Fuses GLM KDA decode convolutions and state update, GLM mHC decode transform, GLM affine MoE down reduction, and GLM hyper-connection placement for fewer Metal dispatches.
    • Fuses Qwen GDN decode convolution state update, Qwen PLE decode convolution, and small-row gated RMSNorm for hybrid decode.
    • Groups GLM and Qwen4 affine projections and Qwen3.5 GDN decode projections at load time for fewer dispatches.
    • Parallelizes Qwen4 PLE decode row reads.
    • Caches completed GLM DSA pool keys to reduce redundant computation.
    • Flushes final MLLM detokenizer bytes to streams and reconciles terminal MLLM and visible stream suffixes.
    • Tahoe/macOS 26 is now the default build; Sequoia is the compatibility build.
  3. v1.6.45 Aug 29, 2026 · issue 011

    vMLX 1.6.45 adds prefix-cache fetch provenance to /health and /v1/cache/stats, plus per-request native-MTP adaptive telemetry.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.6.45 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.6.45
    • Per-request native-MTP telemetry now reports the adaptive profile seed and workload key.
    • Engine-owned lifecycle load progress is now surfaced across every panel view, generation-guarded against stale attempts.
  4. v1.6.42 Aug 27, 2026 · issue 009

    vMLX 1.6.42 adds Qwen3.8 Flash Next support with SSD-backed n-gram caching, multimodal input, and adaptive MTP depth control.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.6.42 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.6.42
    • Adds support for the Qwen3.8 Flash Next model, covering its hybrid QSA/Gated DeltaNet architecture, native reasoning tiers, and in-model MTP head.
    • Adds Electron settings for detected native MTP mode and adaptive or fixed D1-D3 depth policy, with persisted launch-argument parity.
    • Adds file-backed, row-addressed PLE bigram/trigram tables on SSD, avoiding materializing the full n-gram table in unified memory.
    • Adds request-local MTP rollback/commit state with adaptive depth probing based on confirmed tokens per wall second.
    • Adds mixed image and video input support for Qwen3.8 Flash Next, preserving modality order, processor scaling, embeddings, cache keys, and request-local MTP state.
    +1 moreshow less
    • Fuses Gated DeltaNet projections and hyper-connection execution while preserving the checkpoint's mixed-precision JANG contract.
  5. v1.6.35 Aug 22, 2026 · issue 004

    vMLX 1.6.35 ships SSD-first prompt caching by default, disk-proportional cache budgets, and full-precision stored prefix caches.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.6.35 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.6.35
    • SSD prompt cache is now the default; the in-memory paged cache is OFF by default, keeping memory consumption close to the loaded model size rather than growing with conversation length.
    • SSD cache budget is now expressed as a percent of available disk (10% by default) instead of a flat gigabyte value, scaling proportionately across drive sizes.
    • One unified budget now covers all cache types vMLX writes — plain KV blocks, typed companion state, native composite records, rotating sliding-window state, and multimodal blocks — across every model and session, with oldest prompts evicted first.
    • Stored prefix caches are now full precision for every model family; TurboQuant stored-KV encoding measured under 1% improvement on time-to-first-token, so exactness is preferred.
    • Session Settings surfaces the RAM-tier trade-off at the top — notes the ~2% time-to-first-token gain and the memory cost — and links directly to the setting.
    +4 moreshow less
    • The 'Clear SSD cache for this session' button now reports which cache tiers were actually cleared and which were still in use, rather than claiming success either way.
    • Cache eviction protects the prefix currently being actively reused and removes idle ones first, across models including models that are not currently running.
    • Prompt caches now survive a hard kill and restart across five cache architectures: DeepSeek-V4 composite, rotating sliding-window with images, SSM/GatedDelta companion, dots3 DSA, and MiniMax sparse MSA.
    • The engine now emits an explicit warning when a cache budget is smaller than a single prompt's block chain, instead of silently storing nothing.
    └──▷ BREAKING ON UPGRADE
    • !The in-memory paged cache is now OFF by default; any setup relying on the RAM tier being active will need to re-enable it explicitly via Session Settings.
  6. v1.6.34 Aug 20, 2026 · issue 003

    vMLX 1.6.34 brings native MTP overhaul, DFlash2 session prefix reuse, and Qwen3.5-family video input support.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.6.34 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.6.34
    • Native MTP (speculative decoding) overhaul for Qwen3.8 and dots3-note: aligned draft-head context cache plus generalized skip-replay means rejected drafts no longer replay through the main model at any depth; warm in-app decode on Qwen3.8-27B rises from ~22 to 38–48 t/s, dots3-note reaches ~41 t/s.
    • DFlash2 session prefix reuse via end-of-turn cache checkpoints, draft hidden-state gap splice, and prompt-boundary snapshots drops warm multiturn TTFT ~20x; sustains 60+ t/s on Qwen3.8 with DFlash2 (68.7 t/s measured); the DFlash runtime now ships in the bundle.
    • Stream interval defaults to 8, preventing the renderer from backpressure-stalling the engine emit loop on long conversations; legacy sessions are lifted automatically.
    • Removed the RAM preflight that refused large model loads — estimates now advise rather than refuse, enabling a 101GB dots3-note bundle to load on a 128GB Mac.
    • Native MTP now actually engages by default: bundle-temperature auto-detection (which had kept it permanently off) is replaced with compatible-only detection using a deterministic-defaults sampling policy.
    +2 moreshow less
    • Qwen3.5-family video input now supported — videos route as sampled frames so temporal questions answer correctly.
    • Prefill admission rejections now include a wired-limit advisory naming the exact sysctl, the macOS ~84%-of-RAM default, and the reset-on-reboot behavior.
  7. v1.6.29 Aug 15, 2026 · issue -004

    vMLX 1.6.29 delivers hybrid prefix caching for up to 20x faster follow-up turns and stable 100k-context multiturn sessions.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.6.29 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.6.29
    • Hybrid prefix cache cuts follow-up turn latency on long documents by up to 20x (43.7k-token document follow-ups drop from 107s to 5s, byte-identical at temperature 0).
    • 100k-context multiturn sessions now proven stable: 97.6k-token conversations retrieve planted facts with 99.9% cache reuse and no memory faults.
    • Chunked SSM re-derive ships enabled by default, restoring long-context cache reuse from 0% to 99.9% above 12.5k tokens on hybrid model families.
    • Extends verified support across 12 model families, including DSV4 Flash native composite caching, Gemma 4 mixed-SWA with audio, Qwen 3.6/3.8 hybrid lines with native MTP, and TurboQuant KV bundles.
  8. v1.6.29 Aug 15, 2026 · issue 001

    vMLX 1.6.29 brings hybrid prefix caching for 20x faster follow-up turns and stable 100k-token multiturn context.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.6.29 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.6.29
    • Adds hybrid prefix cache support that accelerates follow-up turns on long documents up to 20x (43.7k-token document follow-ups drop from 107s to 5s, byte-identical at temperature 0).
    • Proves stable 100k-context multiturn: 97.6k-token conversations retrieve planted facts with 99.9% cache reuse and no memory faults.
    • Ships chunked SSM re-derive enabled by default, restoring long-context cache reuse from 0% to 99.9% above 12.5k tokens on hybrid SSM model families.
    • Expands verified per-family cache, parser, and generation-default support across 12 model families, including DSV4 Flash native composite caching, Gemma 4 mixed-SWA with audio, Qwen 3.6/3.8 hybrid lines with native MTP, and TurboQuant KV bundles.
  9. v1.6.28 Aug 14, 2026 · issue -005

    vMLX v1.6.28 adds Qwen3.6-27B bundle support with automatic multi-token prediction, delivering a 33% throughput gain.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.6.28 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.6.28
    • Supports the Qwen3.6-27B bundle line (and upcoming Qwen 3.8): the qwen3_coder tool-parser name now resolves to the XML-function parser, capability-only stamps route through the stock loader, and the bundled multi-token prediction head is constructed, quantized per per-module overrides, and engaged automatically at the stamp's trained speculative depth — yielding 23.3 to 31 tokens/sec (+33%) on the 4-bit bundle with no flags required.
  10. v1.6.28 Aug 14, 2026 · issue 001

    vMLX v1.6.28 adds Qwen3.6-27B bundle support with automatic multi-token prediction, delivering a measured 33% throughput gain.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.6.28 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.6.28
    • Supports the Qwen3.6-27B bundle line (and upcoming Qwen 3.8 line): the qwen3_coder tool-parser name now resolves to the XML-function parser, capability-only stamps route through the stock loader instead of the JANG codec, and the bundled multi-token prediction head is automatically constructed, quantized per per-module overrides, and engaged at the stamp's trained speculative depth — delivering 23.3 to 31 tokens/sec (+33%) on the 4-bit bundle with no flags required.
  11. v1.6.27 Aug 11, 2026 · issue -008

    vMLX 1.6.27 adds Muse Glimmer 30B with vision/video support, a 262,144-token prefix cache, and working Anthropic/Ollama reasoning controls.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.6.27 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.6.27
    • Adds support for Anthropic thinking.budget_tokens to actually cap the reasoning chain length at runtime (previously the budget was set only as a template hint and never consumed).
    • Adds support for Ollama think string levels ('low', 'medium', 'high') — clients sending these values now enable thinking and select the correct effort level instead of being silently ignored.
    • Adds Muse Glimmer 30B support across all three bundles (JANG_2D / 4M / 6M), including its text tower, windowed vision tower, recipient-routed reasoning rail, and ATEM tool dialect.
    • Adds single- and multi-image prompt handling for Muse Glimmer 30B, correctly identifying distinct visual elements within the same turn.
    • Adds temporal-order video frame reading for Muse Glimmer 30B, so a clip fading from red to blue is answered 'red blue' rather than reversed.
    +3 moreshow less
    • Exposes four reasoning depth levels — Low / Medium / High / Extra High — in Chat Settings for Muse Glimmer 30B, replacing the previous binary Auto/On toggle.
    • Expands the prefix cache index from ~64,000 tokens to 262,144 tokens, enabling long conversations to get cache reuse instead of falling off the end of the index; existing sessions are migrated automatically.
    • Aligns paged RAM usage between the app and the command line for vision models, so both code paths now share the same cache behavior.
  12. v1.6.27 Aug 11, 2026 · issue 001

    vMLX 1.6.27 adds Muse Glimmer 30B with vision/video, fixes prefix cache to cover 262,144 tokens, and wires up Anthropic thinking.budget_tokens and Ollama think string levels.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.6.27 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.6.27
    └──▷ USE IT
    Cap reasoning token spend when calling vMLX via the Anthropic SDK — useful for cost/latency control on long agentic tasks.
    python
    import anthropic
    
    client = anthropic.Anthropic(base_url="http://localhost:8000/v1", api_key="not-needed")
    message = client.messages.create(
        model="local",
        max_tokens=4096,
        thinking={"type": "enabled", "budget_tokens": 2000},
        messages=[{"role": "user", "content": "Prove that sqrt(2) is irrational."}],
    )
    print(message.content[0].text)
    Set reasoning effort from an Ollama-compatible client to get measurably different think depth without changing the model.
    $ curl http://localhost:8000/api/chat \
      -H 'Content-Type: application/json' \
      -d '{
        "model": "local",
        "think": "high",
        "messages": [{"role": "user", "content": "Explain the halting problem."}]
      }'
    • Ollama think string levels ('low' | 'medium' | 'high') now enable thinking and select effort depth — previously these values were silently ignored and thinking never engaged.
    • Anthropic thinking.budget_tokens now caps the reasoning chain at runtime — previously it set only a template hint that no runtime consumed, so the budget had no effect.
    • Prefix cache index expanded from ~64,000 tokens to 262,144 tokens; existing sessions are migrated automatically, so long conversations now get reuse instead of reporting a cold-start miss.
    • Adds Muse Glimmer 30B support across all three JANG bundles (JANG_2D / 4M / 6M), including its text tower, windowed vision tower, recipient-routed reasoning rail, and ATEM tool dialect.
    • Muse Glimmer 30B reasoning depth is now selectable in Chat Settings as Low / Medium / High / Extra High — previously only the Auto/On thinking toggle was exposed, leaving three depths unreachable.
    +3 moreshow less
    • Muse Glimmer 30B now correctly handles single- and multi-image prompts and reads video clips in temporal order.
    • Each reasoning depth in Muse Glimmer 30B maintains its own prefix cache lineage; switching back to a previously used depth resumes that chain rather than starting cold.
    • Vision models no longer use a slower cache path in the app — paged RAM is now enabled consistently between the app and the command line, restoring KV reuse for vision sessions.
  13. v1.6.25 Aug 8, 2026 · issue -011

    vMLX 1.6.25 delivers a new indexed-attention prefill kernel for DeepSeek V4 Flash, live KV cache rewind on retry, and honest 413 errors for over-ceiling context requests.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.6.25 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.6.25
    • New indexed-attention prefill kernel (on by default) boosts DeepSeek V4 Flash prompt processing from 347 to ~449 tokens/s at 15k context (+29%) and from 199 to ~316 tokens/s at 40k context (+58%), unlocking practical use of very long prompts.
    • Aborting and retrying a long prompt now rewinds the live KV cache to the shared prefix instead of re-prefilling from scratch, cutting retry time-to-first-token at 15k context from 46s to 2.3s.
    • Two-pass answer path now reuses the first pass's KV cache, eliminating full prompt re-prefill overhead on second-pass generation.
    • KV pool quantization keeps cache RAM under 8 GB even near the model's maximum context length.
    • Engine now advertises the true hardware context ceiling at startup, shrinks prefill chunks adaptively under Metal memory pressure, and returns a clean 413 instead of a Metal OOM for over-ceiling requests — eliminating the flat request timeout that killed healthy very-long prefills.
  14. v1.6.25 Aug 8, 2026 · issue 001

    vMLX 1.6.25 brings a 29–58% prefill speedup for DeepSeek V4 Flash long-context, KV cache rewind on retry, and honest 413 errors for over-ceiling requests.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.6.25 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.6.25
    • New indexed-attention prefill kernel (on by default) lifts DeepSeek V4 Flash prompt processing from 347 to ~449 tokens/s at 15k context (+29%) and from 199 to ~316 tokens/s at 40k context (+58%), sustaining 33+ tokens/s decode at both lengths.
    • Engine rewinds the live KV cache to the shared prefix on abort/retry instead of re-prefilling from scratch — retry time-to-first-token at 15k context drops from 46s to 2.3s.
    • Two-pass answer path now reuses the first pass's KV cache, eliminating full prompt re-prefill on the second pass.
    • KV pool quantization keeps cache RAM under 8 GB even near the model's maximum context window.
    • Engine now advertises the true hardware memory ceiling at startup, shrinks prefill chunks adaptively under Metal memory pressure, and returns a clean 413 for over-ceiling requests instead of crashing with a Metal OOM.
  15. v1.6.23 Aug 4, 2026 · issue 001

    vMLX 1.6.23 adds DSV4_ANSWER_RESERVE env var to guarantee visible answers from DeepSeek V4 Flash with thinking enabled.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.6.23 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.6.23
    └──▷ TRY IT
    Disable the answer budget split entirely if you want DeepSeek V4 Flash to use the full token budget for reasoning.
    $ DSV4_ANSWER_RESERVE=0 vmlx serve <deepseek-v4-flash-model>
    • Adds DSV4_ANSWER_RESERVE environment variable to control how many tokens are reserved for the answer portion of DeepSeek V4 Flash output — set to 0 to disable the budget split entirely.
    • DeepSeek V4 Flash now automatically reserves part of the output budget for the answer when thinking mode is active, using a bounded reserve (up to 2048 tokens) rather than a percentage — so long reasoning is not penalized at large token budgets.
  16. v1.6.23 Aug 4, 2026 · issue -015

    vMLX 1.6.23 adds DSV4_ANSWER_RESERVE env var to guarantee visible answers from DeepSeek V4 Flash with thinking enabled.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.6.23 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.6.23
    └──▷ TRY IT
    Disable the answer budget split entirely if you want DeepSeek V4 Flash to use the full token budget for reasoning.
    $ DSV4_ANSWER_RESERVE=0 vmlx serve <deepseek-v4-flash-model>
    • Adds DSV4_ANSWER_RESERVE environment variable to control how many tokens are reserved for the answer portion of DeepSeek V4 Flash output — set to 0 to disable the budget split entirely.
    • DeepSeek V4 Flash now automatically reserves part of the output budget for the answer when thinking mode is active, using a bounded reserve (up to 2048 tokens) rather than a percentage — so long reasoning is not penalized at large token budgets.
  17. v1.6.20 Aug 2, 2026 · issue 001

    vMLX 1.6.20 adds native DeepSeek V4 Flash runtime support with hardened cache, tool, and Activation-QAT controls

    └──▷ GET THIS VERSION
    $ git clone --branch v1.6.20 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.6.20
    • Adds native DeepSeek V4 Flash (DSV4) runtime support including DSML tool support, sampling guidance, cache-tier capabilities, and pool-quantization behavior derived from the selected bundle.
    • Adds explicit Activation-QAT control for DSV4 sessions, with effective state reported in the application.
    • Server and Chat settings now distinguish native DSV4 compiled decode and pooled-cache state from generic TurboQuant and unsupported whole-model cache modes.
    • Native DSV4 cache handling now preserves short append checkpoints, lossless L2 writes, valid eviction ancestry, partial-tail replay, SSD-only operation, and RAM-to-SSD refault.
    • Health output now distinguishes the served model from the currently loaded model.
    +3 moreshow less
    • Explicit visible-final instructions after tool use now enter a no-more-tools continuation pass, with terminal abort cleanup drained before the runtime returns to idle.
    • Electron settings now warn when a DSV4 top-p value differs from bundle guidance and preserve remote model tool contracts.
    • Release packaging now attests the native Python DSV4 encoder, nested affine defaults, mixed module quantization metadata, and the clean JANG runtime source, with separate Sequoia and Tahoe packaging/notarization contracts bound to one source revision.
  18. v1.6.20 Aug 2, 2026 · issue -017

    vMLX 1.6.20 adds native DeepSeek V4 Flash runtime support with hardened cache, tool, and Activation-QAT controls

    └──▷ GET THIS VERSION
    $ git clone --branch v1.6.20 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.6.20
    • Adds native DeepSeek V4 Flash (DSV4) runtime support including DSML tool support, sampling guidance, cache-tier capabilities, and pool-quantization behavior derived from the selected bundle.
    • Adds explicit Activation-QAT control for DSV4 sessions, with effective state reported in the application.
    • Server and Chat settings now distinguish native DSV4 compiled decode and pooled-cache state from generic TurboQuant and unsupported whole-model cache modes.
    • Native DSV4 cache handling now preserves short append checkpoints, lossless L2 writes, valid eviction ancestry, partial-tail replay, SSD-only operation, and RAM-to-SSD refault.
    • Health output now distinguishes the served model from the currently loaded model.
    +3 moreshow less
    • Explicit visible-final instructions after tool use now enter a no-more-tools continuation pass, with terminal abort cleanup drained before the runtime returns to idle.
    • Electron settings now warn when a DSV4 top-p value differs from bundle guidance and preserve remote model tool contracts.
    • Release packaging now attests the native Python DSV4 encoder, nested affine defaults, mixed module quantization metadata, and the clean JANG runtime source, with separate Sequoia and Tahoe packaging/notarization contracts bound to one source revision.
  19. v1.6.19 Jul 31, 2026 · issue -019

    vMLX 1.6.19 adds native-MTP diagnostics, model-owned sampler hydration, and macOS Tahoe packaging.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.6.19 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.6.19
    • Native-MTP health and profiling now expose bounded cache-lifecycle, acceptance, and phase-timing telemetry for Qwen MTP models.
    • Ollama requests now preserve an explicitly supplied top_k, including 0, instead of silently dropping it during request translation.
    • Automatic prompt limits are now derived from the configuration of the model that is actually loaded, bounded by the model's declared context ceiling and current memory budget.
    • Separate Apple-silicon downloads are now provided for macOS Tahoe and for Sequoia-compatible systems.
    • New and restored Electron chats now hydrate temperature, Top P, Top K, repetition penalty, and output limits from the selected model bundle.
    +6 moreshow less
    • MiniMax M2-family automatic cache storage uses the correctness-first q8 policy, with bundle-owned calibrated TurboQuant settings and explicit user selections remaining authoritative.
    • Cache namespaces for compatible looped-transformer bundles now include the effective repeated-layer layout, preventing reuse between incompatible loop counts.
    • Persistent cache payload encoding is moved off the inference-completion path after tensors are safely detached from MLX, reducing synchronous CPU work at the end of a request.
    • New settings and compatibility messages are localized in the shipped English, Spanish, Japanese, Korean, and Chinese interfaces.
    • Compatible Nanbeige looped-transformer JANG bundles now validate their loop count, effective cache-slot count, and runtime metadata before generation, rejecting inconsistent bundles rather than running with a silently short cache.
    • Bounded Electron tool workflows now better enforce requested exactly-once tool calls while leaving other explicitly requested tools available until their results have been returned.
  20. v1.6.19 Jul 31, 2026 · issue 001

    vMLX 1.6.19 adds model-bundle-owned sampler defaults, native-MTP diagnostics, and separate macOS Tahoe vs Sequoia builds.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.6.19 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.6.19
    • Ollama requests now preserve an explicitly supplied top_k, including 0, instead of silently dropping it during request translation.
    • Automatic prompt limits are now derived from the configuration of the model that is actually loaded, bounded by the model's declared context ceiling and current memory budget.
    • Native-MTP health and profiling expose bounded cache-lifecycle, acceptance, and phase-timing telemetry without changing generation policy.
    • MiniMax M2-family automatic cache storage now uses the correctness-first q8 policy, with bundle-owned calibrated TurboQuant settings and explicit user selections remaining authoritative.
    • MiniMax M3 native sparse-cache blocks are now scoped to the prompt-prefill shape and its N-1 prompt-boundary contract, preventing a token-identical prefix produced under a different prefill shape from restoring numerically different Lightning Indexer state.
    +9 moreshow less
    • Compatible Nanbeige looped-transformer JANG bundles now validate their loop count, effective cache-slot count, and runtime metadata before generation, rejecting inconsistent bundles rather than running with a silently short cache.
    • DeepSeek-V4 Flash preserves ratio-zero SWA rings and lossless q8 CSA/HCA pool segments through prompt snapshots and SSD reconstruction.
    • Cache namespaces for compatible looped-transformer bundles now include the effective repeated-layer layout, preventing reuse between incompatible loop counts.
    • Persistent cache payload encoding is moved off the inference-completion path after tensors are safely detached from MLX, reducing synchronous CPU work at the end of a request.
    • Bounded Electron tool workflows now better enforce requested exactly-once tool calls while leaving other explicitly requested tools available until their results have been returned.
    • New settings and compatibility messages are localized in shipped English, Spanish, Japanese, Korean, and Chinese interfaces.
    • Separate Apple-silicon downloads are now provided for macOS Tahoe and for Sequoia-compatible systems.
    • New and restored Electron chats now hydrate temperature, Top P, Top K, repetition penalty, and output limits from the selected model bundle without presenting missing values as saved zero-valued overrides.
    • Text-only prompt accounting now follows the tokenizer's beginning-of-sequence behavior.
  21. v1.6.18 Jul 27, 2026 · issue -023

    vMLX 1.6.18 adds a process-wide SSD cache budget with LRU eviction and detailed cache reporting.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.6.18 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.6.18
    • Adds a process-wide SSD cache budget with coordinated LRU eviction and off-request-path publication, plus reporting of attempted prefixes, applied reuse, uncached suffixes, reconstruction, fallback prefill, and aggregate disk usage.
    • Validates and atomically pins the exact ordered cache chain before reuse, preventing recycled paged-cache block IDs from receiving stale prefix credit.
    • Accepts MiniMax tool arguments emitted as request-schema XML children without exposing native tool markup as visible answer text.
    • Retains media across Responses tool continuations and permits local attachment playback in the Electron app.
    • Derives fresh-session sampling, parser, output, template, and native MTP settings from the selected model bundle without converting inherited values into hidden saved overrides.
    +1 moreshow less
    • Aligns Auto reasoning with each model bundle's native policy unless a request supplies an explicit supported thinking budget, keeping reasoning-marker aliases out of visible content.
    └──▷ BREAKING ON UPGRADE
    • !This release requires JANG 2.5.34; earlier JANG versions are no longer supported.
  22. v1.6.18 Jul 27, 2026 · issue 001

    vMLX 1.6.18 adds process-wide SSD cache budgeting with LRU eviction and expands MiniMax, Laguna, and LFM tool-handling coverage.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.6.18 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.6.18
    • Adds a process-wide SSD cache budget with coordinated LRU eviction and off-request-path publication, plus detailed reporting of attempted prefixes, applied reuse, uncached suffixes, reconstruction, fallback prefill, and aggregate disk usage.
    • Accepts MiniMax tool arguments emitted as request-schema XML children without exposing native tool markup as visible answer text.
    • Retains media across Responses tool continuations and permits local attachment playback in the Electron desktop app.
    • Derives fresh-session sampling, parser, output, template, and native MTP settings from the selected model bundle without converting inherited values into hidden saved overrides.
    • Aligns Auto reasoning with each model bundle's native policy unless a request supplies an explicit supported thinking budget, while keeping reasoning-marker aliases out of visible content.
    +3 moreshow less
    • Hardens Laguna tool-result history, incomplete terminals, mixed-SWA cache reuse, and affine-JANG JIT policy.
    • Improves KaTeX, Markdown, HTML, XML, currency, code-fence, and in-progress reasoning rendering, and stabilizes localized UI context during development reloads.
    • Strengthens Sequoia/Tahoe packaging so bundled Python, JANG dependencies, release metadata, and artifacts remain tied to one source revision.
    └──▷ BREAKING ON UPGRADE
    • !This release requires JANG 2.5.34.
  23. v1.6.14 Jul 20, 2026 · issue 001

    vMLX v1.6.14 ships a signed-runtime checkpoint covering multimodal conversation-state isolation, progressive reasoning/content streaming, structured tool continuation, and architecture-aware KV cache behaviors.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.6.14 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.6.14
    • Adds multimodal conversation-state isolation, enabling independent context tracking across modalities in a single session.
    • Adds progressive reasoning and content streaming, delivering incremental output during multi-step inference.
    • Adds structured tool continuation, allowing tool-call sequences to resume and chain within a single inference pass.
    • Adds architecture-aware KV cache behavior covering prefix, paged, block-disk, and TurboQuant cache policies, with model-family gates keeping cache settings explicit and model-safe.
    • Both macOS Sequoia and Tahoe release artifacts are Developer ID signed, notarized, stapled, and Gatekeeper-accepted for out-of-the-box installation without security prompts.
  24. v1.6.14 Jul 20, 2026 · issue -030

    vMLX v1.6.14 ships a signed-runtime checkpoint covering multimodal conversation-state isolation, progressive reasoning/content streaming, structured tool continuation, and architecture-aware KV cache behaviors.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.6.14 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.6.14
    • Adds multimodal conversation-state isolation, enabling independent context tracking across modalities in a single session.
    • Adds progressive reasoning and content streaming, delivering incremental output during multi-step inference.
    • Adds structured tool continuation, allowing tool-call sequences to resume and chain within a single inference pass.
    • Adds architecture-aware KV cache behavior covering prefix, paged, block-disk, and TurboQuant cache policies, with model-family gates keeping cache settings explicit and model-safe.
    • Both macOS Sequoia and Tahoe release artifacts are Developer ID signed, notarized, stapled, and Gatekeeper-accepted for out-of-the-box installation without security prompts.
  25. v1.6.12 Jul 20, 2026 · issue -030

    vMLX 1.6.12 adds block-disk L2 as a usable prefix tier, hardens q4 TurboQuant KV storage, and fixes gateway lifecycle on client disconnect.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.6.12 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.6.12
    • Enables block-disk L2 as a usable prefix tier even when paged RAM is disabled, while preserving the RAM-first then disk-refault hierarchy when both tiers are active — covering partial-prefix restore, eviction, immediate-stop durability, and restart refault.
    • Hardens q4 TurboQuant storage for eligible KV components and hybrid attention paths, keeping JANG affine, JANGTQ/MXTQ Hadamard-codebook, and base MLX MXFP as distinct formats; architecture-specific cache policies for DSV4, openPangu, MiniMax-M3, Gemma mixed-SWA, and other typed/native cache paths are preserved.
    • Extends media ownership and cache-key coverage to Step and Nemotron Omni image, video, and audio paths while keeping MiniMax-M2.7 as text-only.
    • Tightens progressive reasoning, content, and tool streaming plus terminal/usage ordering across Qwen, HY3, Step, MiniMax, Anthropic, Ollama, and Responses routes, including no-tool prompts and rejected/incomplete native tool markup.
    • Improves model-derived UI accuracy for quant labels, parser/reasoning/cache settings, single-model swaps, session PID/sleep lifecycle, eager Start materialization, port/LAN rollback, and missing-model repoint/removal.
  26. v1.6.11 Jul 19, 2026 · issue -031

    vMLX 1.6.11 adds progressive streaming across Responses, Chat Completions, and Electron, plus extended L2 cache reuse for hybrid/mixed-attention model families.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.6.11 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.6.11
    • Streams post-reasoning and post-tool answers progressively across Responses, Chat Completions, and Electron UI instead of withholding output until completion.
    • Extends architecture-typed prefix, paged, and block-disk L2 cache reuse to hybrid and mixed-attention model families.
    • Adds media and cache routing support for Qwen, Bonsai, Gemma, Step, and MiniMax-M3 model families (MiniMax-M2.7 remains text-only).
    • Hardens multi-turn tool continuation, terminal events, cancellation and recovery, and reasoning/content separation.
    • Ships two separate macOS DMG builds: vMLX-1.6.11-sequoia-arm64.dmg (macosx_14_0_arm64, macOS 14.5+) and vMLX-1.6.11-tahoe-arm64.dmg (macosx_26_0_arm64).
  27. v1.6.10 Jul 15, 2026 · issue -035

    vMLX 1.6.10 adds JANG affine 1-bit/ternary bundle loading, paged block-disk L2 cache on by default, and Responses API as the Electron chat default.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.6.10 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.6.10
    • Enables paged block-disk L2 cache by default in the Electron UI, with an explicit opt-out available.
    • Loads schema-2 JANG affine 1-bit and ternary text/VLM bundles with per-module quantization overrides.
    • Keeps local Electron chat on the OpenAI /v1/responses API by default, with chat sampler defaults derived from the model bundle configuration.
    • Preserves Qwen 3.5 hybrid GDN/SSM + attention cache routing, VL/video tensors, TurboQuant attention KV, and async SSM rederive.
  28. v1.6.7 Jul 13, 2026 · issue -037

    vMLX 1.6.7 enables paged KV cache by default for major text model families and turns reasoning on by default for all reasoning-capable models.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.6.7 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.6.7
    • Enables paged KV cache ON by default for autodetected text model families (Qwen3.5/3.6, Zaya, Nemotron-H, LFM2.5, Laguna, Hy3, Step-3.7) when continuous batching and prefix cache are active; --use-paged-cache / --no-paged-cache flags always take precedence.
    • Turns reasoning ON by default for every reasoning-capable model family, with max_thinking_tokens honored on both streaming and non-streaming paths.
    • Reconciles the Electron panel cache toggle, the --use-paged-cache launch flag, and the engine's effective cache policy so all three reflect the same state for every model family.
  29. v1.5.66 Jun 19, 2026 · issue -061

    vMLX v1.5.66 adds MiniMax-M3 autodetection, native MSA prefix-cache handling, and Metal wired-memory guidance for Apple Silicon.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.5.66 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.5.66
    • Adds MiniMax-M3 autodetection with reasoning/tool parser wiring and model-owned generation defaults, including native MSA prefix-cache handling.
    • Surfaces model-owned max output behavior in both UI and CLI settings for MiniMax-M3 launch defaults.
    • Adds user-facing Metal wired-memory guidance when a model launch fails due to Insufficient Memory on Apple Silicon.
    • Retains Gemma 4 VL settings and media stress harness coverage for the scoped release path.
  30. v1.5.65 Jun 18, 2026 · issue -062

    vMLX 1.5.65 adds MiniMax-M3 and Gemma 4 VL compatibility with reasoning mode, VL image input, and multi-API support.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.5.65 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.5.65
    • Adds MiniMax-M3 (MM3) model support with startup configuration: prefix cache enabled, paged cache disabled, disk prompt cache enabled, JIT disabled, native MSA/Lightning sparse cache storage, and generic TurboQuant KV disabled.
    • Supports MM3 reasoning mode in three states: off, on, and auto, across UI and API paths.
    • Supports visible content emission and exact tool calls for MM3 across UI and API paths.
    • Extends API compatibility to cover Responses, Chat Completions, Anthropic-compatible, and Ollama-compatible endpoints for MM3.
    • Adds streaming support for MM3 across all covered API paths.
    +3 moreshow less
    • Adds VL image input support for MM3.
    • Adds prefix-cache reuse telemetry for MM3.
    • Updates latest.json to point to the notarized 1.5.65 Sequoia and Tahoe DMGs.
  31. v1.5.64 Jun 18, 2026 · issue -062

    vMLX 1.5.64 adds MiniMax-M3 and Gemma 4 VL model support with streaming reasoning fixes and cache configuration defaults.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.5.64 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.5.64
    • Adds MiniMax-M3 (MM3) model support across live UI, Chat Completions, Responses, Anthropic-compatible, Ollama-compatible, and streaming tool/image paths.
    • MiniMax-M3 startup defaults: prefix cache enabled, paged cache disabled, disk prompt cache enabled, JIT disabled, native MSA/Lightning sparse cache storage enabled, generic TurboQuant KV disabled.
    • Adds Gemma 4 E2B, E4B, 12B, 26B, and 31B JANG_4M VL variants with live UI, API, and cache coverage, plus 26B and 31B MXFP4 visual row support.
    • Streaming reasoning-only responses now produce a bounded visible-answer pass for supported reasoning models, preventing blank output when the model emits hidden reasoning only.
    • Updates latest.json to point to the notarized 1.5.64 Sequoia and Tahoe DMGs, which are Developer ID signed, Apple notarized, stapled, and Gatekeeper accepted.
  32. v1.5.63 Jun 18, 2026 · issue -062

    vMLX v1.5.63 adds MiniMax-M3 and Gemma 4 E2B/E4B/12B MXFP4 vision/text compatibility with multimodal routing and reasoning controls.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.5.63 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.5.63
    • Adds MiniMax-M3 compatibility with multimodal routing, reasoning controls (off/on/auto), tool calls, and prefix-cache hit stability across Chat/Responses/Anthropic/Ollama endpoints.
    • Adds Gemma 4 E2B, E4B, and 12B MXFP4 vision/text compatibility with reasoning controls, image input, tool calls, and cache hits across Chat/Responses/Anthropic/Ollama and streaming surfaces.
    • Preserves model-owned generation defaults for supported startup paths.
    • MiniMax-M3 enforces its native MSA/Lightning sparse cache policy: paged cache disabled, TurboQuant KV skipped for native MSA, and JIT disabled for the dynamic sparse-cache path.
  33. v1.5.56 Jun 5, 2026 · issue -075

    vMLX 1.5.56 preserves VMLX_VLM_IMAGE_PREFILL_BUFFER_GB overrides while switching to dynamic Metal working-set-based buffer sizing.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.5.56 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.5.56
    • Retains VMLX_VLM_IMAGE_PREFILL_BUFFER_GB as a hard override for users who need an explicit VLM image prefill buffer guard.
    • Defaults Gemma 4 unified chat/image requests to visible-answer mode unless thinking is explicitly requested.
  34. v1.5.52 Jun 2, 2026 · issue -078

    vMLX 1.5.52 reads greedy generation defaults (temperature, top-p, top-k) directly from JANG model metadata and ships Sequoia- and Tahoe-compatible DMGs.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.5.52 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.5.52
    • Reads and applies model-owned greedy generation defaults (temperature 0.00, top_p 1.0, top_k off) declared in JANG bundle metadata, so sampling behaviour is driven by the model file rather than hidden app-side assumptions.
    • Updates the local Step-3.7-Flash JANG metadata path so startup settings (default temperature=0.0, top_p=1.0, top_k=0) derive from model files; explicit request parameters still override model defaults.
    • Builds both public DMG flavors from the same source: Sequoia-compatible macosx_14 wheels and Tahoe-native macosx_26 wheels, with Developer ID signing, notarization, stapling, and Gatekeeper acceptance.
  35. v1.5.47 May 22, 2026 · issue -089

    vMLX 1.5.47 adds Tahoe-native DMG for macOS Tahoe, tightens parser boundaries across model families, and expands DSV4 release guards.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.5.47 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.5.47
    • Adds a Tahoe-native DMG (vMLX-1.5.47-tahoe-arm64.dmg) for macOS Tahoe users who want native macosx_26 MLX wheels, alongside the existing Sequoia-compatible DMG (vMLX-1.5.47-sequoia-arm64.dmg).
    • Adds stronger parser boundaries so non-reasoning families such as Qwen2 and Qwen2-VL no longer silently inherit reasoning parsers, while MiniMax, DSV4, ZAYA, Hy3, Gemma, and GLM parser rows remain covered.
    • Adds DSV4-specific release guards for stale native-MTP launch args, cache/prefix policy, and JANG source parity.
  36. v1.5.45 May 20, 2026 · issue -091

    vMLX 1.5.45 adds MCP config auto-discovery, chained tool calls across multi-round chats, and localized What's New notices.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.5.45 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.5.45
    └──▷ TRY IT
    Let vMLX auto-discover your MCP configuration without specifying a launch flag — just place your config in the working directory.
    $ # Place your MCP config in the project root, then launch normally
    # vMLX will auto-discover mcp.json or mcp.yaml without any extra flag
    echo '{"mcpServers": {"my-server": {"command": "npx", "args": ["-y", "my-mcp-server"]}}}' > mcp.json
    vmlx
    • MCP config auto-discovery now loads mcp.json or mcp.yaml from the working directory or user config paths without requiring a launch flag, and MCP policy flows through sessions and gateway routes.
    • Built-in coding tools and MCP tools can now chain across multi-round chats using structured tool_calls, with a text-chat watchdog that clears stuck 'Generating tool call' states.
    • Adds support for Qwen3.6 native MTP, JANG/JANGTQ group-size detection, DSV4 cache policy, and TurboQuant/L2/paged cache telemetry with stricter release gates.
    • The in-app What's New notice is now localized in English, Spanish, Japanese, Korean, and Chinese, covering MCP, MTP, cache, and updater safety notes.
  37. v1.5.39 May 17, 2026 · issue -094

    vMLX v1.5.39 adds native MTP health reporting with depth, scope, tensor counts, and gating reasons, plus Qwen 3.6 and Kimi K2.6 runtime support.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.5.39 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.5.39
    • Native MTP health/status now reports depth, scope, tensor counts, and gating reasons.
    • Supports Qwen 3.6 MTP artifacts defaulting to D3, with opt-in model-local tuning sidecars.
    • Qwen 3.6 MTP+VL app detection preserves multimodal behavior for artifact-backed affine-JANG MTP+VL bundles when indexed MTP and vision tensors are present.
    • Adds Source/PyPI runtime patch parity for Kimi K2.6 MLA and Gemma 4 vision pixel-value handling.
  38. v1.5.37 May 16, 2026 · issue -095

    vMLX 1.5.37 adds max_prompt_tokens, max_context_tokens, and max_context aliases for prompt context admission across OpenAI, Anthropic, Ollama, and gateway paths.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.5.37 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.5.37
    └──▷ TRY IT
    Cap how much prompt context is admitted per request when calling through the OpenAI-compatible gateway, to stay within model token limits.
    $ max_prompt_tokens=4096 max_context_tokens=8192
    • Adds max_prompt_tokens, max_context_tokens, and max_context aliases for controlling request/session prompt context admission across OpenAI, Anthropic, Ollama, and gateway paths.
    • Applies model-declared generation defaults at session startup, removing panel-side sampling fallbacks.
    • Scopes sampling overrides to the current chat or API request instead of carrying stale per-model state across requests.
  39. v1.4.7 May 1, 2026 · issue -110

    vMLX v1.4.7 promotes VMLX_OMNI_BACKEND to a CLI flag, unlocking a fast native MLX Stage-2 path for Nemotron-Omni.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.4.7 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.4.7
    └──▷ TRY IT
    Opt in to the Stage-2 native MLX backend for significantly faster Nemotron-Omni inference on M4 Max without setting an environment variable.
    $ vmlx --omni-backend stage2
    • Promotes VMLX_OMNI_BACKEND from an environment variable to a CLI flag, allowing the panel and Swift Settings UI to switch the Nemotron-Omni multimodal path between Stage-1 (bit-exact PyTorch bridge, default) and Stage-2 (native MLX RADIO + Parakeet, ~15–21x faster encoders and ~82 tok/s decode on M4 Max).
    • Adds Stage-2 native MLX backend for Nemotron-Omni, delivering ~15–21x faster encoders and ~82 tok/s decode on M4 Max hardware (off by default pending Wave-4 quality validation).
    • Confirms Qwen 3.6 VL is fully wired on both the Python and Swift sides.
  40. v1.4.2 May 1, 2026 · issue -110

    vMLX v1.4.2 adds Laguna and Mistral-Medium-3.5 loaders, extends multimodal routing to /v1/responses and /v1/messages, and fixes Omni bundle boot.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.4.2 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.4.2
    └──▷ TRY IT
    Serve an Omni bundle that previously crashed on boot, then send an image via the OpenAI Responses endpoint using the newly supported input_image type.
    $ vmlx-serve <omni-bundle>
    • Extends OmniMultimodalDispatcher multimodal routing (RADIO + Parakeet encoders) to /v1/responses and /v1/messages, joining /v1/chat/completions — all 6 modality surfaces (text, image, audio, video) now dispatch correctly for Nemotron-3-Nano-Omni.
    • Adds _MEDIA_TYPES entries in _responses_input_to_messages for OpenAI Responses canonical types input_image, input_video, input_audio, and input_text, normalizing them to chat-completions envelopes.
    • Adds loaders/load_laguna.py routing through jang_tools.laguna.runtime.load for Laguna (poolside) 33B/3B agentic-coding MoE (hybrid SWA+full attention, 256 routed experts top-8 + 1 shared, dual-RoPE); registered as a silver-tier model.
    • Adds loaders/load_mistral3.py for Mistral-Medium-3.5-128B (ministral3 inner), a dense GQA 96/8 model with 256K YaRN context and PIXTRAL vision; registered as a silver-tier model.
  41. v1.4.1-swift Apr 30, 2026 · issue -111

    vMLX v1.4.1-swift adds MCP HTTP/SSE transport and NemotronHOmni VLM support alongside UI and cache improvements.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.4.1-swift https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.4.1-swift
    • Adds MCP HTTP/SSE transport (real implementation) via mlxstudio#31, enabling Model Context Protocol over HTTP and Server-Sent Events.
    • Adds NemotronHOmni VLM factory wiring and capability detector, bringing support for the NemotronHOmni vision-language model.
    • Adds 'Delete model files…' context menu item in the chat picker for in-app model file management.
  42. v1.4.1 Apr 30, 2026 · issue -111

    vMLX v1.4.1 adds model deletion API, image-gen cancellation, MCP HTTP+SSE transport, and vmlx[mxtq] install extras.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.4.1 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.4.1
    └──▷ TRY IT
    Install vMLX with MXTQ/JANG/DSV4/Nemotron-Omni bundle support in one step.
    $ pip install -U "vmlx[mxtq]==1.4.1"
    Abort a running image generation job server-side — useful when the client disconnects or the user clicks Stop.
    $ curl -X POST http://localhost:8080/v1/images/cancel
    • Adds POST /api/delete endpoint for model deletion with model-directory bounding (refuses paths outside the model root and path-traversal attempts).
    • Adds POST /v1/images/cancel endpoint and ImageGenEngine.cancel() method, plus a disconnect-watchdog so browser close or the Stop button truly aborts image generation instead of OOM-after-cancel.
    • Adds [mxtq] and [jang] install extras (pip install vmlx[mxtq]) for JANG/MXTQ/DSV4/MiniMax-JANG/Nemotron-Omni bundles.
    • Accepts Anthropic-style reasoning: {effort: ...} and reasoning: {type:'enabled', budget_tokens:N} request bodies, normalizing them into reasoning_effort / enable_thinking internally.
    • Replaces the stdio-only MCP guard with a full HTTP+SSE transport implementation on the Swift side: streaming via URLSession.bytes(for:), legacy endpoint-event handling, and Streamable-HTTP inline-JSON-RPC fallback.
    +2 moreshow less
    • Adds 'Delete model files…' context menu in the Swift app chat picker, backed by the new POST /api/delete endpoint.
    • Registers NemotronH-Omni in VLMModelFactory and the processor registry; auto-promotes nemotron_hnemotron_h_omni when config_omni.json is present alongside config.json.
    └──▷ BREAKING ON UPGRADE
    • !macOS 14.4.x is no longer supported — the bundled MLX wheel requires libc++ symbols added in macOS 14.5 (Sonoma/Sequoia/Tahoe); running on 14.4.x will exit with an actionable error.
  43. v1.3.34 Apr 9, 2026 · issue -132

    vMLX v1.3.34 adds deferred SSM re-derive for hybrid thinking models, cutting multi-turn cache misses on Nemotron and Qwen3.5-VL.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.3.34 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.3.34
    • Adds deferred SSM re-derive: after generation completes on hybrid SSM + thinking models (Nemotron, Qwen3.5-VL), the scheduler queues an idle-time prefill pass on prompt tokens only, storing clean SSM state so the next conversation with the same prompt prefix gets KV + SSM cache hits instead of a full re-prefill.
    • Adds _ensure_mx_array() for dtype normalization: input_ids is cast to mx.int32 and pixel_values to mx.array, enabling batched VLM inference on Mistral 3 / Pixtral.
    • mx.compile() now targets language_model.model only for VLM engines, preserving the wrapper's .config attribute and fixing JIT + MLLM compatibility.
    • _get_n_kv_heads() now scans cfg.text_config as a nested fallback, resolving 100% prefix-cache miss on Gemma 4 VLM where num_key_value_heads lives inside model.config.text_config.
  44. v1.3.31 Apr 9, 2026 · issue -132

    vMLX v1.3.31 adds cross-session cache sharing, Aho-Corasick stop matching, Gemma 4 support, and a public /v1/cache stats endpoint.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.3.31 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.3.31
    └──▷ TRY IT
    Cap prefix cache memory consumption to avoid OOM on long-context workloads.
    $ vmlx serve --prefix-cache-max-bytes 4294967296 <model>
    • Adds --prefix-cache-max-bytes CLI flag to enforce a byte-budget eviction limit on the prefix cache.
    • Exposes size and max_entries fields on the /v1/cache stats endpoint for live cache introspection.
    • Adds cache_type column and per-type bucket eviction to the disk SQLite cache, with priority eviction and last-fetch type round-trip in L1 backfill.
    • Extracts SSMCompanionCache to vmlx_engine/utils/ssm_companion_cache.py with a per-entry is_complete flag for SSM companion cache lifecycle tracking.
    • Adds compute_model_cache_key() for content-derived cache identity that survives JIT reload and prevents cross-config pollution.
    +13 moreshow less
    • Adds _compute_segment_boundaries helper to engine/batched.py, firing segment boundaries on memory-aware and paged schedulers (not just legacy).
    • Adds is_hybrid_ssm_cache, is_hybrid_ssm_model, and is_hybrid_ssm_config polymorphic helpers for hybrid SSM model detection.
    • Adds is_mla_model centralized helper that walks top → text_config → language_config → llm_config for MLA model detection.
    • Adds Gemma 4 native text MoE local-port shim with forward-compat that defers to upstream when available.
    • Sets trust_remote_code=True as the default in utils/tokenizer.py, unblocking custom tokenizers without manual configuration.
    • Enables LRU+Trie cross-session prefix sharing on MemoryAwarePrefixCache (production default) with system → user → assistant priority eviction.
    • Adds cache_type LRU and per-type bucket eviction on BlockAwarePrefixCache for paged and hybrid auto-switch scenarios.
    • Surfaces SSM companion cache stats (nbytes_mb) to the CachePanel UI.
    • Backports BatchMambaCache.lengths, advance, prepare, and finalize from mlx-lm 0.31.2.
    • Caches is_mllm_model() result in api/utils.py to eliminate repeated INFO log spam.
    • Adds scheduler.deep_reset wiring of reset_factory_cache() on shutdown.
    • Bumps mlx-lm dependency from 0.30.2 to 0.31.2.
    • Removes orphan disk-streaming artifacts (ssd_generate, streaming_wrapper, weight_index) superseded by the memory_cache and disk_cache architecture.
    └──▷ BREAKING ON UPGRADE
    • !Orphan disk-streaming artifacts ssd_generate, streaming_wrapper, and weight_index have been removed; setups relying on them must migrate to the memory_cache + disk_cache architecture.
  45. v1.3.25 Apr 3, 2026 · issue -138

    vMLX v1.3.25 adds full Gemma 4 support with reasoning/tool parsers and a new --default-enable-thinking CLI flag.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.3.25 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.3.25
    └──▷ TRY IT
    Start the vMLX server with thinking mode enabled by default for all Gemma 4 reasoning requests.
    $ vmlx serve --default-enable-thinking
    • Adds --default-enable-thinking CLI flag to control thinking mode at server startup.
    • Adds Gemma 4 tool parser supporting the native <|tool_call>call:name{args}<tool_call|> format for function-calling workflows.
    • Adds Gemma 4 reasoning parser handling the <|channel>thought...<channel|> protocol with Auto/On/Off thinking modes.
    • Adds <turn|> as a stop token alongside <eos> for Gemma 4 generation.
    • Adds <|tool_call> to tool call marker detection for streaming responses.
  46. v1.3.6 Mar 21, 2026 · issue -151

    vMLX v1.3.6 adds disk streaming for RAM-oversize models, Mistral Small 4 (119B) support, and universal MoE JANG gate dequant.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.3.6 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.3.6
    └──▷ USE IT
    Configure a Mistral Small 4 session in a vMLX config file to use the new model type with MoE routing.
    yaml
    model_type: mistral4
    • Adds --stream-from-disk flag to load models larger than available RAM by leveraging macOS SSD paging (~7.4 GB/s); automatically disables all caching, and exposes a virtual memory budget slider in the session settings UI.
    • Adds model_type: mistral4 config value to support Mistral Small 4 (119B) with MLA attention, 128-expert MoE, and YaRN interleaved RoPE, routed through the mlx-lm text path and mistral3 VLM wrapper.
    • Extends JANG gate dequantization to any model with n_routed_experts > 0 (Mistral 4, DeepSeek V3, etc.), previously limited to Nemotron only.
  47. v1.3.0 Mar 20, 2026 · issue -152

    vMLX v1.3.0 adds Nemotron-H support with hybrid SSM caching and session status banners with smooth token streaming.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.3.0 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.3.0
    • Adds Nemotron-H JANG engine support with gate dequant (8→2 bit), fc1/fc2 rename, and MTP filter (42 GB GPU, 46 tok/s).
    • Extends hybrid SSM full cache — prefix, paged, and disk caching — to Qwen3.5-A3B and Nemotron-H models.
    • Adds session status banners showing loading, sleeping, and stopped states in chat UI.
    • Adds renderer-side typewriter animation via requestAnimationFrame (rAF) for smooth token streaming.
    └──▷ BREAKING ON UPGRADE
    • !Think-completion seed injection has been removed entirely.
    • !The STREAM_THROTTLE_MS configuration, _is_vlm_config() function, and vestigial weights parameter have been removed.
  48. v1.0.7 Mar 18, 2026 · issue -154

    vMLX v1.0.7 adds full mflux model support, img2img variation generation, and an Iterate UI for prompt-based image refinement.

    └──▷ GET THIS VERSION
    $ git clone --branch v1.0.7 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.0.7
    • Adds support for Klein 4B/9B, Kontext, Fill, Qwen Image, and FIBO mflux models in the model picker with correct class dispatch.
    • Enables img2img variation generation for Generate models via source image and strength parameter.
    • Adds 'Iterate' UI action on any generated image to create variations with modified prompts.
    • Persists settings — steps, size, guidance, strength, and negative prompt — across restarts.
    • Adds 'Code tab' placeholder (marked Coming Soon) to the UI.
  49. v1.1.0 Mar 6, 2026 · issue -165

    vMLX v1.1.0 adds speculative decoding, embedding model preloading, and server-wide generation defaults

    └──▷ GET THIS VERSION
    $ git clone --branch v1.1.0 https://github.com/jjang-ai/vmlx.git
    # already have the repo? check out this version:
    $ git checkout v1.1.0
    • Adds /v1/embeddings endpoint support via a pre-loadable separate embedding model, enabling semantic search and RAG workflows without a separate server.
    • Adds speculative decoding configuration with draft model and num-draft-tokens controls for 20–90% generation speedup.
    • Adds server-wide default temperature and top-p sliders for generation defaults.
    • Adds a dismissible auto-update checker banner that notifies when a new version is available.
my-toolchain — 0 tools
paste an install list to detect your tools

A brew list, a Brewfile, requirements.txt, a Dockerfile — or just the product names, free-form. Nothing leaves your browser.

    browse all tools →