Blaizzy/nativ: a native macOS front end for MLX models
Local AI, native to your Mac. Chat, serve, monitor, and connect MLX models from one macOS app.
At a glance
- What is it?
- Nativ bundles an mlx-vlm server inside a SwiftUI app so Apple silicon Macs can chat, generate images and serve OpenAI- and Anthropic-compatible endpoints locally. It is macOS 26+ only, and most of its search traffic belongs to unrelated companies.
- Who is it for?
- Adopt Nativ if you have an Apple silicon Mac on macOS 26 or newer and want one app that chats with local MLX models and exposes them to coding agents over localhost. Do not adopt it if you are on Intel, on an older macOS, or need a Linux or Windows deployment, because the README states Apple silicon and macOS 26 or newer are requirements.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly Swift, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 19, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What Nativ solves for Apple silicon owners
Running a model locally on a Mac usually means assembling a stack: a Python environment, an inference runtime, a server, and something to talk to it. Nativ's answer is to ship that stack as one app. The README describes it as a "native macOS workspace for running AI models locally on Apple silicon" that bundles an mlx-vlm server, discovers compatible models in your Hugging Face cache, and wraps the result in SwiftUI.
The audience is narrow and specific. You need a Mac with Apple silicon and macOS 26 or newer. Not macOS 14, not an Intel Mac. That is a real constraint, and it is stated in the requirements rather than buried. Within that boundary the app covers several jobs at once: private chat with image attachments, a model library with download and fit warnings, performance analytics, a system monitor, and local API endpoints.
The model discovery detail matters more than it looks. Nativ honors HF_HUB_CACHE and HF_HOME, so models you already downloaded with other Hugging Face tooling are visible without a second copy. If you have been running mlx-vlm from a terminal, the app is largely a front end over the same artifacts.
NativServerKit and the bundled mlx-vlm server
The architecture in the README is a short chain. The SwiftUI app talks to NativServerKit, which owns the embedded Python distribution and the server lifecycle. NativServerKit starts the bundled mlx-vlm server, which runs on the MLX runtime against local models in Apple unified memory. External apps and coding agents reach the same server over a localhost API.
That single-server design has a visible consequence: multiple windows opened with Command + Shift + N share the same inference server, loaded models, and settings. You get independent workspaces without paying for a second model in memory. It also means a stuck server affects every window.
The server speaks more than one dialect. The README lists OpenAI-compatible chat, Responses, image, audio, embeddings, and model endpoints plus Anthropic Messages endpoints. That is the part that makes Nativ more than a chat client: tools that already expect an OpenAI-style base URL can be pointed at localhost instead. The docs directory carries per-tool setup for Codex, Claude Code, Aider, Goose, and others, which suggests the integration surface is maintained rather than incidental.
Installing Nativ with Homebrew and running a first model
The README gives two install paths. You can download the latest DMG from GitHub Releases and drag Nativ to Applications, or use the Homebrew cask:
brew install --cask nativAfter that, Sparkle handles in-app updates, so the cask is mainly the first install. On first launch the README's onboarding asks you to choose an installed language model, download a recommended one, or continue with load-on-demand. It then offers an API key to protect the server's management endpoints, and asks for microphone, accessibility, and screen recording permissions. You can defer all of those to Settings.
From there, open the Models tab to download or select a compatible model, then start chatting. If you want the server reachable by another tool, the Developer workspace is where the host and port are set and where endpoint URLs can be copied. The README does not print a default port in the text supplied here, so read the value from that screen rather than assuming one.
Building from source is a different exercise. The README requires Xcode with the macOS 26 SDK, xcodegen, Python 3, and network access to GitHub Releases and PyPI while the embedded Python bundle is first assembled. The Makefile encodes that flow:
make xcode-generate
make xcode-build
make xcode-runxcode-generate runs xcodegen, xcode-build compiles the Debug scheme with code signing disabled, and xcode-run signs and opens the app bundle. There are also smoke targets, xcode-smoke and xcode-lifecycle-smoke, which run the built binary with --smoke-test and --lifecycle-smoke-test respectively. The Makefile notes that NATIV_PRODUCT_NAME must match NATIV_PRODUCT_NAME in the xcconfig chain, and can be overridden so a worktree gets its own app bundle.
Where Nativ is the wrong tool
The first limitation is the platform floor. macOS 26 or newer and Apple silicon are hard requirements. If your fleet is on macOS 15, or includes Intel machines, this is not a partial fit, it is a non-starter. Nothing in the README suggests a fallback path.
The second is the build story. Nativ is not a single static binary. NativServerKit owns an embedded Python distribution, and the build script PythonDistribution/Scripts/build_mlx_vlm_server.py assembles or refreshes it, which the README says needs network access to GitHub Releases and PyPI. That is a supply-chain surface and a reproducibility question that a pure Swift binary would not have. The Makefile even offers verify-python, which runs the same script with --skip-install --verify-only, implying that checking an existing bundle without rebuilding it is a normal operation.
The third is memory. The model library shows fit warnings, and the README notes a warning when preloading separate language, image-generation, speech, and embedding models would exceed your Mac's memory. Those warnings are advisory. Nothing prevents you from loading a combination that swaps.
Finally, the name is a search problem. Nearly every related query for "nativ" refers to something else: a clothing brand, a hotel in Denver, nurseries, shampoo. If you are looking for documentation, search for the repository owner alongside the name.
Nativ against running mlx-vlm from the terminal
The closest alternative is not another GUI. It is the mlx-vlm project itself, which Nativ bundles. Running it directly gives you the server and the MLX runtime without the Swift layer: no model library with fit warnings, no analytics dashboard, no menu bar controls, no extension platform, no permission prompts.
The difference in approach is where configuration lives. A terminal setup keeps everything in your shell, your Python environment, and your own scripts. Nativ moves host and port, Hugging Face token, model selection, and log inspection into the app's Developer workspace, and adds an API key for the management endpoints. If your workflow is already scripted and you do not want a GUI mediating model selection, bundling mlx-vlm inside an app is overhead rather than convenience. If you want to hand a working local endpoint to a coding agent without writing a launcher, the app removes that work.
A second comparison point is the extension model. The README describes installing, disabling, removing, and restoring independently versioned capabilities, with Audio shipping as the first included extension that contributes its own pages, commands, shortcuts, settings, and permission declarations. That is a plugin surface, and plugin surfaces need documentation and version discipline to stay useful. The Docs/extending directory exists, which is a good sign, but the README alone does not describe the extension API.
Maintenance, releases and the MIT licence
The last push to the default branch was on 2026-09-16, and v0.3.8 was released on 2026-09-14, two days earlier, following a v0.3.8rc1 on 2026-09-11. There is also a preview update channel dated 2026-09-11. The repository is not archived. On that evidence the project is being worked on now, and the release cadence includes release candidates, which suggests the preview channel is genuinely used rather than decorative.
Upgrade cost depends on how you installed it. DMG and Homebrew users get Sparkle updates inside the app, so the cost is mostly re-verifying that your loaded models still behave after a server-side bump. Source builders pay more: a refresh of the embedded Python bundle can require network access to GitHub Releases and PyPI, and the Makefile's verify target exists precisely because rebuilding that bundle is not free. If you build from source, pin the commit you built and re-run make verify after pulling.
The licence is MIT. That is permissive and short, and it governs the repository's code. It does not automatically cover the models you download, which carry their own licences on Hugging Face, nor any third-party components under ThirdParty/. Check those separately if you plan to redistribute a build. This is not legal advice; read the LICENSE file and the model cards.
Editorial conclusion
Adopt Nativ if you have an Apple silicon Mac on macOS 26 or newer and want one app that chats with local MLX models and exposes them to coding agents over localhost. Do not adopt it if you are on Intel, on an older macOS, or need a Linux or Windows deployment, because the README states Apple silicon and macOS 26 or newer are requirements. Before committing, verify that your chosen model fits in unified memory, that the embedded Python bundle assembles on a network with access to GitHub Releases and PyPI, and that the Homebrew cask installs a build whose version matches the release you intended to run.
Frequently asked questions
What is Nativ?
Nativ is a native macOS app from the Blaizzy/nativ repository for running AI models locally on Apple silicon. It bundles an mlx-vlm server, finds compatible models in your Hugging Face cache, and adds chat, a model library, analytics, a system monitor and OpenAI- and Anthropic-compatible local endpoints.
Is "nativ" the same as "native"?
The project name is Nativ, and its tagline is "Local AI, native to your Mac." The README does not explain the spelling, so the name appears to be a deliberate variation on the word native rather than a different term.
What does "nativ" mean?
For this repository, Nativ is the name of the macOS app, not a dictionary word. The README does not define it further, and searches for the term mostly return unrelated businesses.
Community notes