# macMLX v0.10.0

The current release: Foundation-Models-shaped structured output, unloads that return memory, MLXRerankers-based rerank inside the pool budget, and a DMG built from committed lockfiles.

## Direct answer

v0.10.0 is the current audited baseline. Structured output accepts the nested, referenced, and range-bounded schemas Apple's Foundation Models client sends, unloading a model now returns its memory, /v1/rerank runs on MLXRerankers inside the model pool's budget, and the DMG is built from committed lockfiles. Schema compatibility is not a verified Xcode 27 connection, and the XLM-RoBERTa and Jina v3 rerank paths were not run on real checkpoints.

- Canonical: https://macmlx.app/releases/v0-10-0/
- Last verified: 2026-10-29

## Page facts

- **Apple Silicon macOS installation** — Released; since 0.1.0; last verified 2026-10-29. macMLX supports Apple Silicon Macs running macOS 14 or later. Use the current project installation and Gatekeeper guidance; do not disable system-wide security protections solely to open the app.
- **Swift in-process inference** — Released; since 0.1.0; last verified 2026-10-29. The default engine loads and runs MLX models inside the Swift process. Model loading, generation, caching, and serving use Apple MLX through MacMLXCore; the default inference path does not require a Python runtime.
- **Apple Silicon unified memory** — Released; since 0.1.0; last verified 2026-10-29. MLX arrays use the Mac's shared CPU/GPU memory system. Unified memory reduces explicit transfers between CPU orchestration and integrated-GPU compute, but model weights, activations, and KV cache still consume finite physical memory.
- **Shared code, process-local engines** — Released; since 0.1.0; last verified 2026-10-29. The app and CLI both import MacMLXCore, which owns inference and the server. The products share implementation and behavior. When the app and CLI run as separate processes, they do not share one in-memory engine instance.
- **No Python on the default path** — Released; since 0.1.0; last verified 2026-10-29. The released default engine is Swift-native and needs no Python runtime. Optional compatibility engines may use subprocesses and other runtimes. This is not a claim that Python is absent everywhere in the project.
- **OpenAI endpoint compatibility** — Released; since 0.5.3; last verified 2026-10-29. Chat, legacy completions, model listing, and embeddings use compatible request and response shapes. Compatibility is endpoint-specific. macMLX model load and unload routes under /x/models are project extensions, not OpenAI-compatible model management.
- **Anthropic Messages compatibility** — Released; since 0.5.3; last verified 2026-10-29. POST /v1/messages, including streaming, is available in v0.5.3. This is Messages API compatibility only, not compatibility with the full Anthropic API.
- **Selected Ollama endpoints** — Released; since 0.3.7; last verified 2026-10-29. macMLX supports /api/version, /api/tags, /api/show, /api/chat, and /api/generate. The compatibility layer has shipped since v0.3.7. It is a selected endpoint set, not a drop-in replacement for every Ollama API.
- **MCP server** — Released; since 0.5.0; last verified 2026-10-29. The CLI can expose local inference to MCP clients. The MCP server shipped in v0.5.0 and is separate from chat-side routing to external tools.
- **MCP client pool** — Released; since 0.5.3; last verified 2026-10-29. v0.5.3 includes managed MCP client connections. The pool manages external MCP processes and connections; integrated chat-side tool routing is a separate capability released in v0.6.0.
- **Integrated chat tool routing** — Released; since 0.6.0; last verified 2026-10-29. v0.6.0 ships multi-turn tool routing for OpenAI, Anthropic, and the GUI MCP loop. Protocol-specific validation keeps tool-call histories explicit; this routing is distinct from the MCP server and client-pool infrastructure.
- **Local embeddings** — Released; since 0.5.3; last verified 2026-10-29. POST /v1/embeddings shipped in v0.5.3. Encoder-family model detection exists, while using an unsuitable chat model can still produce vectors without semantic guarantees.
- **Exact-prefix RAM and SSD cache** — Released; since 0.5.0; last verified 2026-10-29. A hot RAM tier and content-addressed SSD cold tier support promotion and demotion. The released v0.5.0 cache reuses exact full prefixes. It does not provide released block sharing or paged KV allocation.
- **Trie longest-prefix reuse** — Released; since 0.6.0; last verified 2026-10-29. v0.6.0 reuses the longest compatible cached token prefix. Multi-turn prompts can trim to the longest common prefix and incrementally prefill only the new suffix while usage retains full-prompt accounting.
- **Bounded model pool** — Released; since 0.5.0; last verified 2026-10-29. Budgets, LRU eviction, pinning, cold swap, idle TTL, and probes bound multi-model use. The pool shipped in v0.5.0 and was hardened in v0.5.3. It is not a unified adaptive controller.
- **Supported LoRA adapters** — Released; since 0.5.0; last verified 2026-10-29. The native engine can apply supported LoRA adapters. Adapter compatibility depends on the base architecture and weights; universal LoRA compatibility is not claimed.
- **Fourteen detected VLM families** — Released; since 0.5.3; last verified 2026-10-29. The model library detects 14 vision-language model_type families. This is an evidence-backed family count, not a guarantee that every checkpoint or processor variant will load.
- **DeepSeek V3.2 Swift overlay** — Released; since 0.5.3; last verified 2026-10-29. v0.5.3 includes pure-Swift component parity for the DeepSeek V3.2 architecture. A real-checkpoint smoke test remains pending and FP8 dequantization is absent, so this is not an end-to-end or universal MoE claim.
- **Eligibility-gated continuous batching** — Released; since 0.6.0; last verified 2026-10-29. v0.6.0 batches only eligible dense-text requests under real concurrency, with automatic serial fallback. The tagged 4-client benchmark measured 2.5–3.2× aggregate throughput. VLM, speculative decoding, Ollama, Anthropic, and embeddings remain serial.
- **Fixed prefill admission throttle** — Released; since 0.6.0; last verified 2026-10-29. A fixed prefillBatchSize bounds rows admitted per scheduler step. The released throttle is fixed configuration, not the planned adaptive memory controller.
- **Structured output** — Released; since 0.6.0; last verified 2026-10-29. v0.6.0 supports response_format with json_object and an explicit JSON Schema subset. Unsupported schema keywords return 400. VLM with structured output and tools with structured output are unsupported combinations and are explicitly rejected rather than silently degraded.
- **Speculative decoding** — Released; since 0.6.0; last verified 2026-10-29. v0.6.0 ships the classic draft-model path through both the API and GUI. Acceptance telemetry reports draft efficiency. Targets with non-trimmable hybrid or linear-attention caches are detected and fall back to standard decoding.
- **API compatibility pack** — Released; since 0.6.0; last verified 2026-10-29. v0.6.0 adds logit_bias, logprobs and top_logprobs, XTC, per-request LoRA adapters, and tools. An explicit compatibility matrix governs parameter combinations, and unsupported pairs return 400 instead of silently degrading.
- **KV-cache quantization** — Released; since 0.6.0; last verified 2026-10-29. v0.6.0 exposes kv_bits, kv_group_size, and quantized_kv_start for compatible requests. These controls change KV-cache precision, not model-weight precision. Nonpositive kv_bits disables the feature, and the compatibility matrix rejects unsupported model or request combinations.
- **Hugging Face cache discovery** — Released; since 0.6.0; last verified 2026-10-29. v0.6.0 can discover models in configured Hugging Face cache roots without downloading duplicate weights. Discovery confirms a local candidate, not a universal load guarantee; architecture, tokenizer, processor, and checkpoint compatibility still apply.
- **Track G tested models** — Released; since 0.6.2; last verified 2026-10-29. v0.6.2 adds four checkpoint-tested native model families. Measured real-checkpoint generation: Seed-OSS-36B 4-bit at 18.2 tok/s; Hunyuan V1 Dense 1.8B 4-bit at 80.3 tok/s; Cohere Command R7B 7B 4-bit at 21.7 tok/s; and MiniCPM3-4B 4-bit at 18.7 tok/s. Results are checkpoint-specific, not family-wide performance guarantees.
- **InternLM3 theoretical support** — Theoretical; since 0.6.2; last verified 2026-10-29. v0.6.2 ships parity-verified InternLM3 code at the theoretical support tier. Real generation has not been demonstrated. Public checkpoints ship tokenizer.model but no tokenizer.json, while the Swift tokenizer stack requires tokenizer.json; support remains theoretical until that load-path boundary changes.
- **Temperature and top-p** — Released; since 0.1.0; last verified 2026-10-29. Temperature and nucleus top-p sampling are released controls. These are the current exposed core sampling controls.
- **Silicon Activity panel** — Released; since 0.7.0; last verified 2026-10-29. A new main-window Activity tab shows live Apple Silicon readouts, a prefill/decode throughput split, and the current inference bottleneck with advice. The panel reads GPU occupancy, memory bandwidth, thermal and memory pressure, and per-rail power without admin rights or a helper process. It is observability, not a performance guarantee: an unavailable counter renders an em dash with its reason, an idle engine shows no active generation, and estimated values are labeled rather than presented as measured.
- **Inference bottleneck classifier** — Released; since 0.7.0; last verified 2026-10-29. v0.7.0 fuses the hardware samples with the engine's live prefill or decode phase to attribute what limits generation. Because the classifier runs in-process it knows which inference phase is active, the signal an external GPU monitor cannot see. It is a smoothed heuristic, not a profiler: it prioritizes memory over thermal over compute or bandwidth, applies hysteresis and three-frame smoothing, and self-calibrates its bandwidth ceiling, so a verdict is guidance rather than a ground-truth measurement.
- **Sudoless silicon sampling** — Released; since 0.7.0; last verified 2026-10-29. A runtime IOReport bridge plus samplers read GPU occupancy, memory bandwidth, thermal and memory pressure, and ANE power. The IOReport bridge is resolved through dlopen, so a future macOS that renames or removes the private framework degrades the readouts to unavailable rather than failing to launch. Memory bandwidth is reported as an estimate, ANE exposes a power proxy with no fabricated utilization percentage, and the Media Engine, which has no duty-cycle signal, is omitted rather than guessed.
- **Benchmark bottleneck attribution** — Released; since 0.7.0; last verified 2026-10-29. A benchmark run samples the silicon while generating and attaches what limited its decode steady state to the saved result. The attribution names the decode limiter, whether memory, thermal, bandwidth, or compute, with a confidence and the representative hardware behind it. A run too short to attribute is reported as unavailable instead of inventing a verdict, and low-confidence or estimate-based calls are flagged; it describes one measured run, not a family-wide benchmark guarantee.
- **OCR model recognition** — Released; since 0.7.0; last verified 2026-10-29. Dedicated OCR checkpoints receive an OCR badge distinct from the generic Vision badge, and GLM-OCR is verified end-to-end. GLM-OCR loads through the stock VLM path with no new model code and reads image text back. The badge is intentionally narrow: it appears only on a model that actually loads, so an OCR family that is detected but not yet ported, such as dots_ocr or deepseek-ocr, earns no badge. This is model recognition, not a universal OCR-quality claim.
- **Byte-bounded cold KV tier** — Released; since 0.8.0; last verified 2026-10-29. v0.8.0 bounds the on-disk cold KV cache to an explicit byte budget, pruned oldest-first, with a toggle to opt the cold tier out. The previously unbounded cold directory now honors the Cold (SSD) budget with the Hot (RAM) budget wired alongside; an over-budget directory is trimmed on first launch, removing only regenerable cache rather than model files or settings. It does not add block sharing or paged allocation; the released cache still reuses exact full prefixes only.
- **Weight-identity-guarded cold entries** — Released; since 0.8.0; last verified 2026-10-29. v0.8.0 fingerprints each cold entry against model weight identity so a weight swap cannot serve stale KV. The fingerprint covers the model's config plus every safetensors shard; if the same path later holds re-downloaded, re-quantized, or swapped weights, the stale entry is rejected and deleted rather than restored into silently wrong output. It is an integrity guard for the cold tier's reuse, not a correctness proof for every cache path, and it does not change the released exact-prefix reuse semantics.
- **Persistent cross-session cold index** — Released; since 0.8.0; last verified 2026-10-29. v0.8.0 persists a cold index so longest-prefix reuse survives a restart across sessions. A follow-up turn that extends an earlier session's prompt reuses the shared prefix straight off disk, while a missing, unreadable, or version-mismatched index degrades to exact re-hits, never to wrong output. Reuse remains exact-prefix, not the planned paged or block-sharing virtualization; the persisted index only extends the existing longest-prefix reuse across process restarts.
- **Off-actor cold-tier writer** — Released; since 0.8.0; last verified 2026-10-29. v0.8.0 moves cold-tier writes off the cache actor onto a dedicated serial background writer. Persisting an evicted KV snapshot, hundreds of milliseconds for a large cache, no longer blocks another request's cache lookup; the write lands atomically through a temp file and rename, and the on-disk result is unchanged. It relocates disk writes to keep the store actor responsive and does not alter what is cached or the released reuse semantics.
- **In-process speech to text and text to speech** — Released; since 0.9.0; last verified 2026-10-29. POST /v1/audio/transcriptions and POST /v1/audio/speech run on MLX inside the same Swift process. The audio engine is mlx-audio-swift, so the default path still needs no Python runtime and no Core ML detour, and downloads land under ~/.mac-mlx/audio-models. A request for an output container macMLX cannot produce is refused rather than served as a different format. These paths are code-complete and unit-tested; they have not been validated against real audio checkpoints, so no transcription or synthesis quality is claimed.
- **Audio inside the app** — Released; since 0.9.0; last verified 2026-10-29. Transcription is a cancellable chat attachment, assistant messages gained a speech button, and the model library lists audio checkpoints. Transcribed text lands in the composer so it can be edited before sending, and starting one playback stops the other. The library needs its own scan because mlx-audio writes a flat layout and often ships no tokenizer.json, so the usual format detection cannot classify it; a checkpoint in neither the speech-to-text nor the text-to-speech registry is deliberately left unlisted rather than guessed at from its folder name. This surface has not been validated against real audio checkpoints.
- **Detected multi-token-prediction drafters** — Released; since 0.9.0; last verified 2026-10-29. A draft model can be identified as an MTP block drafter from its config.json alone, before any weights load. Registration and detection ship; the engine is deliberately not wired to use them for decoding. This is not released multi-token-prediction decoding, and it changes no generation path.
- **The app links the controlled MLX build** — Released; since 0.9.0; last verified 2026-10-29. v0.9.0 is the first DMG whose GUI actually links macMLX's patched mlx-swift instead of upstream. The Xcode project declared no mlx-swift dependency of its own, so on a package-identity collision the upstream copy pulled in transitively won and the app linked it; every earlier release therefore shipped a GUI without the correctness cherry-picks that MacMLXCore's own tests had verified. The CLI carried the same defect from a different root and was fixed alongside. This restores the intended engine rather than changing inference behavior beyond the fixes it now carries.
- **Foundation-Models-shaped JSON schemas** — Released; since 0.10.0; last verified 2026-10-29. v0.10.0 structured output accepts the schema shapes Apple's Foundation Models client sends for @Generable types: nested objects, arrays with minItems and maxItems, $ref to the root's $defs or definitions, a string const, any type at the root, keys and literals in any Unicode string, and minimum or maximum bounds on numbers and integers. A schema may nest at most 32 containers deep and hold at most 4,096 nodes after $ref expansion; a recursive schema is a 400, and null, unions, pattern, and multipleOf remain unsupported. A constrained request on a thinking model renders with enable_thinking off and is never reported as reasoning. Apple's TripPlanner and Person samples compile as the framework emits them, and Apple's client was driven against a live Qwen3.6 checkpoint for structured output, but no end-to-end Xcode 27 or Foundation Models connection is claimed as verified: this is schema and wire compatibility, not a verified integration.
- **Streaming usage, max_completion_tokens, and cached tokens** — Released; since 0.10.0; last verified 2026-10-29. v0.10.0 honors stream_options.include_usage with one usage-only chunk before [DONE], accepts max_completion_tokens as the newer spelling of max_tokens, and reports how much of the prompt the prompt cache served. Cached tokens appear as prompt_tokens_details.cached_tokens on OpenAI-shaped responses and as cache_read_input_tokens on /v1/messages, where input_tokens becomes the uncached remainder. The figure is 0 on a miss and on paths that never consult the cache, and it is withheld from requests that carry an Origin header because it is an exact prefix oracle. include_usage is ignored on a non-streaming request, whose body already carries usage. This covers these usage fields only, not every OpenAI streaming option.
- **Unloading returns memory** — Released; since 0.10.0; last verified 2026-10-29. v0.10.0 drains MLX's buffer cache once a chat model is released, so an unload, an idle sweep, or a pool eviction gives the model's memory back instead of leaving it cached. Before this release, unloading Mellum2-12B-A2.5B-Thinking-4bit left 7,021 MB of the 7,035 MB the model had used in MLX's cache; after the change that cache was empty and 15 MB stayed active, nearly all of it the in-memory prompt-cache tier, which an unload does not release (up to 512 MiB by default). That is one measured checkpoint, not a guarantee for every model. A cancel during speculative decoding can leave the weights for a later drain, and a first-ever load that fails after allocating is left to the next plain generation's clear.
- **Rerankers and embedders inside the pool budget** — Released; since 0.10.0; last verified 2026-10-29. In the app, the server admits the /v1/rerank and /v1/embeddings models to the model pool before loading them, so they count against its budget, are evicted least-recently-used, and expire on the model's TTL like chat models. A swap now releases the resident reranker or embedder and drains MLX's cache before loading the replacement, under the generation lock. POST /x/models/unload takes a model id and unloads a resident reranker or embedder by that exact id; an id that is neither one of them nor the active chat model is now a 404 instead of unloading the chat model regardless. The CLI's server has no pool and still loads them directly, and the Models tab no longer offers to pin them. /x/models remains a macMLX extension, not OpenAI-compatible model management.
- **Rerank on MLXRerankers** — Released; since 0.10.0; last verified 2026-10-29. v0.10.0 serves POST /v1/rerank through mlx-swift-lm's MLXRerankers: BERT, RoBERTa, and XLM-RoBERTa cross-encoders, Qwen3 rerankers scored by their yes/no logit margin, and Jina reranker v3. What ran on real checkpoints: ms-marco-MiniLM-L-6-v2 matches the PyTorch fp32 reference to 2e-6 on the logit scale with TF32 off, and to 0.025 under the TF32 matmuls M5 enables by default; Qwen3-Reranker-0.6B-4bit ranks the documents that answer the question above the ones that do not. The XLM-RoBERTa path (BGE) and Jina v3 were not run on a real checkpoint, and Jina v3 reports a cosine similarity rather than a probability. Classification heads qualify more narrowly than upstream's own rule, so sentiment heads stay plain models, and bi-encoder cosine stays the fallback for checkpoints that are not rerankers.
- **Native checkpoint chat templates** — Released; since 0.10.0; last verified 2026-10-29. v0.10.0 renders every checkpoint's own chat template through swift-jinja 2.5.1 and removes the two built-in overrides; a per-model macmlx.chat_template.jinja file still takes precedence. Prompts change in places users may notice: tojson now emits Python json.dumps-style output in tool descriptions, templates with {#- and -#} comments render their whitespace as Jinja does, and a Hunyuan history turn with answer tags is stripped as Python strips it. Command R7B now renders its tool_use template when a request carries tools, but macMLX has no parser for the action markup it asks for, so tool calling on that model is not supported. Template support is still not universal.
- **Controlled MLX fork on mlx-swift 0.32.3** — Released; since 0.10.0; last verified 2026-10-29. v0.10.0 rebases the controlled MLX fork on mlx-swift 0.32.3 (core v0.32.2), which already contains twelve of the thirteen fixes the fork used to carry, so the fork now carries five of its own: mlx#3922, mlx#4009, mlx#4660, mlx#4431 and mlx#4775. mlx#4009 repairs a sorted quantized MoE product that corrupted 92–97% of its output on M5 hardware at group size 32 with a ragged K. mlx#4660 stops the channel padding of a convolution, the 3-channel patch embedding of the Qwen-VL family and GLM-OCR among them, from picking up a stray value under asynchronous evaluation; mlx#4775 corrects the scale of all-negative groups in a quantized KV cache; mlx#4431 fixes a batched long-context attention kernel that no macMLX path selects today. Each was reproduced here with a synthetic test before it was carried, none through a real checkpoint. The new base also fixes the quantized MoE gather kernel names under JIT (mlx#4372) and compiles kernels under the Metal 4.1 language version macOS 27 requests. mlx-swift-lm moves to 3.32.3 with prefill chunking pinned to the legacy .remainder stride, checked by reading rather than by an output comparison, and Gemma3Text's separately reworked prefill is not covered. Carrying a fix is a correctness repair, not a performance claim.
- **Audio downloads stay in the app's cache** — Released; since 0.10.0; last verified 2026-10-29. Through a controlled fork of mlx-audio-swift (upstream v0.1.5 plus cache and listing fixes), the speech families that used to fetch a second copy into ~/.cache/huggingface now load from ~/.mac-mlx/audio-models, and a cached snapshot is completed against the Hub's full listing. Still fetched into the default Hugging Face cache: the tokenizer or codec of a model loaded from a local directory rather than by repo id, Kokoro's and Kitten's grapheme-to-phoneme model, and a non-English Kokoro voice's byT5 model or lexicon. Copies v0.9.0 left there are not removed, and a snapshot the Hub's listing has not yet confirmed cannot be completed offline. Audio loads now run under the generation lock, so a fetch a loader makes on its own can hold other requests. No test here runs audio inference; only the gated cache smokes for moonshine-tiny, VyvoTTS with its SNAC codec, and SenseVoiceSmall passed, so no transcription or synthesis quality is claimed.
- **The DMG ships the tested dependency graph** — Released; since 0.10.0; last verified 2026-10-29. v0.10.0 commits the app's workspace lockfile, builds the release archive, the CLI tarball, and the app's CI build only from the versions their lockfiles record, and fails CI when the app's or the CLI's lockfile pins a MacMLXCore package differently. The v0.9.0 archive resolved on a fresh runner and shipped swift-jinja 2.4.2 while every chat-template test had run on 2.3.6. This pins dependency versions to what the tests ran on; it is not a reproducible-build or code-signing claim, and the DMG remains unsigned.
- **Paged KV, block sharing, and CoW** — Planned; since future; last verified 2026-10-29. Paged allocation, shared blocks, and copy-on-write branching are planned. None of these cache-virtualization features is released; the shipped cache reuses exact token prefixes only, trimmed to the longest common prefix, without shared blocks.
- **Unified adaptive memory guard** — Planned; since future; last verified 2026-10-29. A feedback controller across cache, model pool, and concurrency is planned. Released memory probes and pool caps are separate mechanisms and must not be described as this guard.
- **Expanded sampling controls** — Planned; since future; last verified 2026-10-29. top-k, min-p, presence, frequency, and repetition penalties, plus per-request seed are planned. DeepSeek expert-routing top-k is an internal architecture operation and is unrelated to user sampling top-k.
- **Verified Xcode 27 and Foundation Models connection** — Planned; since future; last verified 2026-10-29. An end-to-end check that Xcode 27's local-model provider and Apple's Foundation Models client drive a running macMLX server is planned. The released schema and usage compatibility does not amount to this check: no end-to-end connection through Xcode 27 or a Foundation Models app has been verified, and no generation quality through either path is claimed.

## Sources

- https://github.com/magicnight/mac-mlx/releases/tag/v0.10.0
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/README.md
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/Engine/MLXSwiftEngine.swift
- https://ml-explore.github.io/mlx/build/html/usage/unified_memory.html
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/Server/HummingbirdServer.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/CHANGELOG.md
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/MCP/MCPClientPool.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/MCP/ToolCallingSession.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/Engine/EmbeddingEngine.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/PromptCache/PromptCacheStore.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/PromptCache/PromptTrie.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/ModelPool/ModelPool.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/Managers/ModelLibraryManager.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/Models/DeepseekV32.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/Batching/BatchScheduler.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/Engine/MLXSwiftEngine+BatchGenerationServing.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/Constraint/ResponseFormatDecoder.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/Engine/SpeculativeDecodingUsage.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/Engine/GenerateRequest.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/docs/model-support.md
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/Models/InternLM3.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/Managers/ModelParametersStore.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/macMLX/macMLX/Views/Activity/ActivityView.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/Silicon/SiliconMonitorModel.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/Silicon/BottleneckClassifier.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/Silicon/BottleneckVerdict.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/Silicon/IOReportReader.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/Silicon/IOReportSiliconSampler.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/Silicon/BenchmarkBottleneck.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/Models/BenchmarkResult.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/Models/LocalModel.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/PromptCache/PromptCacheConfig.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/PromptCache/PromptCacheKey.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/PromptCache/ColdIndex.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/PromptCache/ColdTierWriter.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/Engine/AudioEngine.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/Audio/AudioTranscriptionFormat.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/macMLX/macMLX/Views/Chat/AudioTranscriptionViewModel.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/Audio/AudioModelRegistry.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/Engine/MTPDrafterDetection.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/macMLX/macMLXTests/AppForkPinTests.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Package.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/Constraint/SchemaProgram.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/Constraint/SchemaNumberBounds.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/Engine/RerankEngine.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/MacMLXCore/Sources/MacMLXCore/Engine/ChatTemplateOverride.swift
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/scripts/check-lockfile-parity.py
- https://github.com/magicnight/mac-mlx/blob/v0.10.0/macMLX/macMLX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
- https://github.com/magicnight/mac-mlx/blob/main/docs/superpowers/specs/2026-07-10-engine-scroll-story-design.md
- https://github.com/magicnight/mac-mlx/blob/main/MacMLXCore/Sources/MacMLXCore/Managers/ModelParametersStore.swift
- https://github.com/magicnight/mac-mlx/blob/main/docs/superpowers/specs/2026-09-19-foundation-models-integration-design.md

## Related pages

- [Release status without roadmap blur](https://macmlx.app/releases/)
- [Local API compatibility, endpoint by endpoint](https://macmlx.app/api-compatibility/)
- [macMLX v0.9.0 (historical)](https://macmlx.app/releases/v0-9-0/)
