# macMLX and LM Studio

A neutral comparison of macMLX v0.6.2 and LM Studio 0.4.19 Build 2 using official sources.

## Direct answer

macMLX v0.6.2 focuses on one Swift in-process MLX core for Apple Silicon. LM Studio spans desktop, headless, CLI, SDK, and local-server workflows across platforms and runtimes; its official MLX engine is Python-based and bundles Python 3.11. The table compares those factual routes without rating either product.

- Canonical: https://macmlx.app/compare/lm-studio/
- Last verified: 2026-07-15

## Page facts

- **Apple Silicon macOS installation** — Released; since 0.1.0; last verified 2026-07-15. 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-07-15. 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.
- **No Python on the default path** — Released; since 0.1.0; last verified 2026-07-15. 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.
- **Fourteen detected VLM families** — Released; since 0.5.3; last verified 2026-07-15. 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.
- **Local embeddings** — Released; since 0.5.3; last verified 2026-07-15. 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.
- **Supported LoRA adapters** — Released; since 0.5.0; last verified 2026-07-15. The native engine can apply supported LoRA adapters. Adapter compatibility depends on the base architecture and weights; universal LoRA compatibility is not claimed.
- **Track G tested models** — Released; since 0.6.2; last verified 2026-07-15. 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-07-15. 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.
- **Shared code, process-local engines** — Released; since 0.1.0; last verified 2026-07-15. 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.
- **OpenAI endpoint compatibility** — Released; since 0.5.3; last verified 2026-07-15. 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.
- **MCP server** — Released; since 0.5.0; last verified 2026-07-15. 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.
- **Structured output** — Released; since 0.6.0; last verified 2026-07-15. 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.
- **Integrated chat tool routing** — Released; since 0.6.0; last verified 2026-07-15. 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.
- **Eligibility-gated continuous batching** — Released; since 0.6.0; last verified 2026-07-15. 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.
- **Trie longest-prefix reuse** — Released; since 0.6.0; last verified 2026-07-15. 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.
- **Speculative decoding** — Released; since 0.6.0; last verified 2026-07-15. 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.

## Sources

- https://github.com/magicnight/mac-mlx/releases/tag/v0.6.2
- https://github.com/magicnight/mac-mlx/blob/v0.6.2/README.md
- https://github.com/magicnight/mac-mlx/blob/v0.6.2/MacMLXCore/Sources/MacMLXCore/Engine/MLXSwiftEngine.swift
- https://github.com/magicnight/mac-mlx/blob/v0.6.2/MacMLXCore/Sources/MacMLXCore/Managers/ModelLibraryManager.swift
- https://github.com/magicnight/mac-mlx/blob/v0.6.2/CHANGELOG.md
- https://github.com/magicnight/mac-mlx/blob/v0.6.2/MacMLXCore/Sources/MacMLXCore/Engine/EmbeddingEngine.swift
- https://github.com/magicnight/mac-mlx/blob/v0.6.2/docs/model-support.md
- https://github.com/magicnight/mac-mlx/blob/v0.6.2/MacMLXCore/Sources/MacMLXCore/Models/InternLM3.swift
- https://github.com/magicnight/mac-mlx/blob/v0.6.2/MacMLXCore/Sources/MacMLXCore/Server/HummingbirdServer.swift
- https://github.com/magicnight/mac-mlx/blob/v0.6.2/MacMLXCore/Sources/MacMLXCore/Constraint/ResponseFormatDecoder.swift
- https://github.com/magicnight/mac-mlx/blob/v0.6.2/MacMLXCore/Sources/MacMLXCore/MCP/ToolCallingSession.swift
- https://github.com/magicnight/mac-mlx/blob/v0.6.2/MacMLXCore/Sources/MacMLXCore/Batching/BatchScheduler.swift
- https://github.com/magicnight/mac-mlx/blob/v0.6.2/MacMLXCore/Sources/MacMLXCore/Engine/MLXSwiftEngine+BatchGenerationServing.swift
- https://github.com/magicnight/mac-mlx/blob/v0.6.2/MacMLXCore/Sources/MacMLXCore/PromptCache/PromptTrie.swift
- https://github.com/magicnight/mac-mlx/blob/v0.6.2/MacMLXCore/Sources/MacMLXCore/Engine/SpeculativeDecodingUsage.swift
- https://lmstudio.ai/changelog/lmstudio-v0.4.19
- https://lmstudio.ai/docs/app/basics/lmstudio-vs-llmster-vs-lms
- https://lmstudio.ai/docs/developer/core/server
- https://github.com/lmstudio-ai/mlx-engine

## Related pages

- [Compare local model tools by factual route](https://macmlx.app/compare/)
- [Choose models by task and memory](https://macmlx.app/models/)
- [How macMLX runs models on Apple Silicon](https://macmlx.app/architecture/)
