{"slug": "running-qwen3-6-locally-on-a-macbook-omlx-opencode-faster-than-i-expected", "title": "Running Qwen3.6 Locally on a MacBook: oMLX + opencode, Faster Than I Expected", "summary": "A developer ran Qwen3.6-35B-A3B, a 35B-parameter mixture-of-experts model with roughly 3B active parameters, locally on a 14-inch MacBook Pro (M5 Pro, 48GB) using the MLX-based oMLX v0.7.2 inference server, and connected it to the opencode terminal coding assistant through oMLX's OpenAI-compatible API. Estimating from the chat UI's token counter, the setup generated roughly 100 tokens per second, though the developer cautioned this was an order-of-magnitude figure rather than a rigorous benchmark. The omlx-server process alone used about 18GB of memory, and the developer concluded that simple and text-heavy tasks can be handed to a local model while only deep-reasoning work needs a top cloud model.", "body_md": "One 14-inch MacBook Pro. No internet, no API bill. Chat and coding both work, and token output is fast.\n\nLoad **Qwen3.6-35B-A3B (MLX 4bit)** locally with **oMLX**. It is good enough for everyday chat and coding.\n\n| Item | Spec | \n|---|---|\n| Machine | MacBook Pro 14\" (M5 Pro) | \n| CPU | 15 cores (10 performance + 5 super cores) | \n| GPU | 16 cores | \n| Memory | 48 GB | \n| OS | macOS Tahoe 26.6.1 | \n| Inference server | oMLX v0.7.2 | \n| Model | Qwen3.6-35B-A3B-MLX-4bit | \n\nThe `35B-A3B` in the name is the key. It is a MoE (Mixture of Experts) model with 35B total parameters, but only about 3B are active per token.\n\nMLX is Apple's own machine learning framework. It uses Metal and unified memory directly, and is usually easier and faster on a Mac than generic solutions. oMLX is a local inference server built on MLX, with a built-in web Chat.\n\nOnce oMLX is running, it comes with a web chat UI. Model selection, conversation history and search all work out of the box.\n\nA few details from the screenshot:\n\n`Qwen3.6-35B-A3B-MLX-4bit`).\nThe recording below (about 34 seconds) is one complete conversation:\n\nThe flow:\n\nThis detour is normal: oMLX is a new tool and not in the model's training data. A local model is good for general Q&A, rewriting and explaining code. For very new tools, you still need to read the docs yourself.\n\nFor coding I used opencode (an AI coding assistant for the terminal). After pointing its model at the local oMLX endpoint, the bottom of the UI shows the current mode and model: `Build · Qwen3.6-35B-A3B-MLX-4bit · oMLX`.\n\nHere is a recording (about 23 seconds):\n\nHow to connect it: oMLX exposes an OpenAI-compatible API, so you only need to add a custom provider in the opencode config. The config below is an example. Use the port and model ID that your own oMLX shows.\n\n```\n{\n  \"$schema\": \"https://opencode.ai/config.json\",\n  \"provider\": {\n    \"omlx\": {\n      \"npm\": \"@ai-sdk/openai-compatible\",\n      \"name\": \"oMLX\",\n      \"options\": {\n        \"baseURL\": \"http://localhost:<oMLX port>/v1\"\n      },\n      \"models\": {\n        \"Qwen3.6-35B-A3B-MLX-4bit\": {\n          \"name\": \"Qwen3.6-35B-A3B-MLX-4bit\"\n        }\n      }\n    }\n  }\n}\n```\n\nAfter that, pick this model in opencode, and in Build mode it can read code, edit files and run commands. All inference happens on your machine and the code never leaves it, which is especially useful for company projects.\n\nFor speed, I made a rough estimate from the token counter in the chat recording above. The counter at the bottom right of the input box reads 1,617 tokens at 25s and 2,224 tokens at 31s. That is over 600 new tokens in about 6 seconds, or **roughly 100 tokens/s**. This is only an order-of-magnitude estimate from the UI counter. The counting method and refresh timing can introduce error, so it is not a rigorous benchmark.\n\n**[Add your precise measurements here, e.g. time to first token, generation tokens/s, coding task duration]**\n\nSubjectively the output feels smooth. The gap with cloud models is mainly in reasoning depth on complex tasks, not in waiting time.\n\nFor memory, here is Activity Monitor:\n\nBeyond memory, one more thing to know up front: **while a task is running, GPU usage hits 100%, the fans start spinning, and there is some noise.** This is the unavoidable price of running large models locally. If you work in a quiet office or at night, be prepared. For long batch jobs (like the translation mentioned below), plug in the power and keep the laptop somewhere ventilated.\n\nThe screenshot above was taken with a browser, an IDE and other everyday apps open. The omlx-server process alone uses about 18GB. Memory pressure shows Normal, but 84% is used and there is a little swap. So 48GB is a comfortable minimum. With 32GB, close other big apps or switch to a smaller model.\n\nMy conclusion after using it: **simple tasks and text-heavy tasks can be fully handed to a local model, and only complex tasks that need deep reasoning go to a top cloud model.** Not everything needs the most expensive model.\n\nGood for local:\n\nStill better in the cloud:\n\nI once used Claude to translate about 5,000 articles, and the API cost was **over 100 USD**. Looking back, this kind of task never needed a flagship model: the source is clear, the goal is clear, and the quality bar is \"fluent and accurate\", not \"deep reasoning\".\n\nIf I had run it on a local Qwen3.6-35B-A3B, that money would mostly have been saved. The cost would be electricity and machine time. There is also no quota locally, so a batch job can just run in the background without worrying about the bill. My approach now would be:\n\nThat way most tokens are spent locally, and cloud money goes only where it is worth it.\n\noMLX makes running models locally painless: one service provides both web Chat and a compatible API, and together with opencode, both chat and coding work on a single MacBook. A MoE model like Qwen3.6-35B-A3B gives 35B-level knowledge with 3B-level generation speed, and the experience on Apple Silicon is very good. If you have a Mac with around 48GB of memory, it is worth a try. Handing translation, summarization and other simple but token-hungry work to the local model, and saving cloud quota for truly hard problems, is the most cost-effective way I have found so far. Just be ready for the GPU at full load and some fan noise while it runs.\n\nHave you run large models locally? What machine, which model, how fast? Which tasks would you hand to a local model, and which would you keep in the cloud?\n\nFeedback and comments are very welcome. Please also point out anything inaccurate in this post, and I will keep updating it.\n\nI built a personal product called **GoodAI.Life** ([https://goodai.life](https://goodai.life)). \n\nI’m currently building **[Good AI Life(opens in a new tab)](https://goodai.life/)**, a next-generation AI directory designed to **showcase your product in action.**\n\nIf you are interested, please take a look, give it a try, and send me feedback.", "url": "https://wpnews.pro/news/running-qwen3-6-locally-on-a-macbook-omlx-opencode-faster-than-i-expected", "canonical_source": "https://dev.to/mapleslei/running-qwen36-locally-on-a-macbook-omlx-opencode-faster-than-i-expected-3o85", "published_at": "2026-11-05 08:13:24+00:00", "updated_at": "2026-11-05 08:19:35.579817+00:00", "lang": "en", "topics": ["large-language-models", "ai-tools", "ai-agents", "developer-tools", "ai-infrastructure"], "entities": ["Qwen3.6-35B-A3B", "oMLX", "opencode", "Apple", "MacBook Pro", "MLX", "Metal"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/running-qwen3-6-locally-on-a-macbook-omlx-opencode-faster-than-i-expected", "markdown": "https://wpnews.pro/news/running-qwen3-6-locally-on-a-macbook-omlx-opencode-faster-than-i-expected.md", "text": "https://wpnews.pro/news/running-qwen3-6-locally-on-a-macbook-omlx-opencode-faster-than-i-expected.txt", "jsonld": "https://wpnews.pro/news/running-qwen3-6-locally-on-a-macbook-omlx-opencode-faster-than-i-expected.jsonld"}}