Local AI for Apple Silicon.
Chat with open LLMs entirely offline on your Mac — private by design, powered by Apple MLX.

Ka1zen — a native macOS chat with images, web search, thinking mode and image generation.
Ka1zen is a native macOS app that runs open large-language models locally on your Mac via Apple's MLX framework. No account, no cloud, no telemetry — your conversations, documents and embeddings never leave your machine.
Built for:
- People who want privacy: medical notes, code under NDA, personal journals, confidential research.
- People who want zero cost: no API keys, no monthly bill, no credits to budget.
- People who want to learn: watch a model think, inspect token probabilities, switch between Qwen, Gemma, DeepSeek, Mistral, Llama in two clicks.
| 💬 Local chat | Qwen, Gemma, DeepSeek, Mistral, Llama — anything on mlx-community |
| ⚙️ Two engines | MLX (primary, fastest on Apple Silicon) + GGUF via llama.cpp — the day-one bridge for models too new for MLX. Browse GGUF from ggml-org, unsloth, bartowski; pick a quant, Ka1zen runs llama-server directly (no Ollama / LM Studio). GGUF chat is at parity: text, vision, tools, thinking, logprobs, Fast Mode |
| 🌫 DiffusionGemma | Google's block-diffusion LM (mlx-community/diffusiongemma-26B-A4B-it) runs in-app via MLX — it generates by parallel denoising instead of left-to-right, a different decoding paradigm you can try locally. MLX-only (llama.cpp has no diffusion path) |
| 🖼 Vision | Drop images into the chat — Gemma 4, Pixtral, Mistral Small VLM, Qwen2-VL, LLaVA (MLX) · Qwen 3.6 & Gemma 4 (GGUF, via mmproj) |
| ⚡ Fast Mode | Speculative decoding with byte-identical output, on both engines. MTP covers dense AND Mixture-of-Experts — Qwen 3.6 35B-A3B → 145 t/s (MLX 4-bit), Gemma 4 26B-A4B, plus dense Qwen 27B / Gemma 31B (MoE needs mlx-vlm ≥ 0.6.3, auto-gated). New: an optional DFlash for code mode (GGUF) roughly doubles code generation on the slow dense models — Qwen 3.6 27B ×2.63, Gemma 4 31B ×1.91, lossless. One click — Download with Fast Mode — grabs the whole bundle (model + draft) in a single step |
| 🎙 Audio | Speak to the model, it answers (Gemma 4) |
| 🧠 Thinking mode | Watch the model reason before answering (Qwen3, DeepSeek-R1, Gemma 3/4…) |
| 🌐 Web search | Brave Search (primary) with DuckDuckGo as fallback + page fetch, clickable [1]-style citations and date-aware queries |
| 📸 Inline web images | Ask "affiche 5 photos du Japon" / "show me 3 pictures of Mario" — DuckDuckGo Images is queried, results downloaded, displayed inline (up to 10 per call) |
| 🎨 Image generation | FLUX.2-klein-9B, Qwen-Image, Z-Image locally via mflux — natural-language trigger, optional web-search grounding |
| ✏️ Image editing | Pin any image → edit via FLUX.2-Klein-Edit or Qwen-Image-Edit-mflux (dedicated checkpoint, separate download). Attach + edit-verb short-circuit, source dimensions preserved |
| 🧩 Image bundles | T2I + Edit configured together in System Models. Multi-variant repos (e.g. fcreait/Qwen-Image-Edit-mflux with q3-q8 sub-quants) install one variant at a time via a picker sheet — ~25 GB instead of the 141 GB full repo |
| 🏷 Provenance badge | Every generated/edited image carries a badge underneath: model · duration · "from source" — confirms at a glance which checkpoint produced the result |
| 📚 RAG | Index PDFs, text, code — local embeddings (Apple NLEmbedding), SQLite storage |
| 🔎 Token Inspector | Per-token logprobs visualisation — spot hallucinations |
| 🗣 Text-to-Speech | macOS system TTS, language auto-detect |
| 🎤 Voice input | On-device dictation via SFSpeechRecognizer (requiresOnDeviceRecognition = true) — audio never leaves the Mac |
| 🏷 Auto-titre | Conversation titles polished via the optimizer LLM after the first turn |
| 🔔 Notifications | macOS notification when a long generation finishes while the app is in the background |
| 🗜 Auto-summarize old context | Opt-in compression of older turns past a configurable token threshold — keeps long conversations alive |
| 🩺 Diagnostics export | One-click JSON dump (app version, OS, hardware, settings, models, server states) for bug reports |
| 🔌 API Relay | OpenAI-compatible HTTP proxy for Continue / Cursor / Zed / LM Studio |
| 📤 Export | Markdown · PDF · JSON · plain text |
| 🔒 100 % offline | Nothing leaves your Mac unless you explicitly configure a cloud endpoint |

Streaming response with a detailed technical brief.
Onboarding — prerequisites check · Model Manager — browse HuggingFace.
Response presets · Per-model generation parameters.
Ka1zen has five steps. Setup is mostly downloads — the Python packages and the llama.cpp backend take a few minutes, depending on your internet connection. After that you pick a model and it downloads in the background (size-dependent).
- macOS 15 Sequoia or later
- Apple Silicon Mac (M1 / M2 / M3 / M4 or newer) — Intel is not supported
- 16 GB RAM minimum (32 GB recommended for larger models)
On first launch Ka1zen detects your RAM and suggests a model sized for your machine.
Ka1zen needs Python to run the MLX model servers. Use only the official installer from python.org — Homebrew, pyenv and conda do not install Python at the path Ka1zen expects and will not work.
Pick "macOS 64-bit universal2 installer" for Python 3.14.x or newer, double-click the .pkg, follow the wizard.
Download this repository (green Code button → Download ZIP, or git clone). Open Terminal (Applications → Utilities → Terminal) and run:
cd ~/Downloads/Ka1zen-main # or wherever you unzipped/cloned it
./install.shThe script installs mlx-lm, mlx-vlm, huggingface-hub, hf-transfer and mflux into your Python 3.14 — all at the exact versions Ka1zen is tested against — and downloads a pinned llama.cpp build (the GGUF backend).
GGUF backend. GGUF models run through llama.cpp's
llama-server.install.shdownloads a pinned, self-contained build into~/Library/Application Support/Ka1zen/llama/— no Homebrew required (it only falls back tobrew install llama.cppif that download fails). You can also install or upgrade it later from Settings → Runtime Health. MLX models run without it; you're only prompted for llama.cpp the first time you load a GGUF model.
Manual install (if you prefer)
# Pinned to the versions Ka1zen is tested against:
/Library/Frameworks/Python.framework/Versions/3.14/bin/pip3 install \
mlx-lm==0.31.3 mlx-vlm==0.6.5 huggingface-hub==1.17.0 hf_transfer==0.1.9 mflux mlx==0.32.0
# mlx==0.32.0 goes LAST on purpose: mflux caps mlx<0.32.0 and would otherwise
# downgrade it, breaking mlx-vlm 0.6.5 (which needs 0.32.0). The trailing pin
# forces mlx back to 0.32.0 (mflux still runs fine on it; pip prints a harmless warning).
# GGUF backend (optional) — simplest manual option; install.sh pins an exact build:
brew install llama.cpp- Download
Ka1zen.dmgfrom the Releases page. - Double-click the
.dmg. - Drag Ka1zen into the Applications folder.
Ka1zen is not signed with an Apple Developer certificate ($99 / year), so macOS blocks it the first time. This is a one-off step.
Method 1 — right-click (simplest):
- Open
/Applications. - Right-click (or Ctrl + click) Ka1zen → Open.
- Confirm Open in the dialog.
Method 2 — System Settings (if method 1 is refused on Sequoia):
- Double-click Ka1zen, dismiss the warning.
- System Settings → Privacy & Security.
- Scroll to Security → "Ka1zen was blocked…" → Open Anyway.
- Confirm with password or Touch ID.
Method 3 — Terminal (if macOS says "damaged"):
xattr -cr /Applications/Ka1zen.appThen retry method 1.
Every launch after the first one works with a normal double-click.
Ka1zen opens an onboarding assistant with two screens:
- Prerequisites — Python and every required pip package are listed with a status dot. Anything missing comes with a copy-paste command for Terminal. Click Recheck when you're done.
- First model — pick a model that fits your RAM. Ka1zen downloads it from HuggingFace and shows a progress bar.
When the model is ready, you land in the chat. Type a message, press Enter, done.
Ka1zen is developed and validated daily on:
- MacBook Pro (Mac17,6) — Apple M5 Max · 18 CPU cores (6 efficiency + 12 performance) · 40 GPU cores · 128 GB unified memory
- macOS 26.4.1 (Tahoe) · Python 3.14 from python.org
Any Apple Silicon Mac (M1 or newer) with macOS 15+ and 16 GB RAM is supported.
- 📘 User Guide — full walkthrough of every feature: chat, vision, RAG, image generation, API relay, Token Inspector, advanced settings.
- 🧠 Model Guide — how to pick a model for your Mac: naming conventions (4-bit, MoE, A10B…), dense vs MoE, quantization trade-offs, curated
mlx-communityrecommendations by RAM tier.
Is Ka1zen really 100 % offline? Yes. Inference, embeddings and TTS are all local. The only time data leaves your Mac is when you enable web search (query goes to Brave Search, with DuckDuckGo as fallback; image search still uses DuckDuckGo Images), configure a cloud endpoint, or download a model from HuggingFace.
Does Ka1zen collect any telemetry? No. No analytics, no crash reports, no "anonymous usage statistics". None.
Which Mac do I need? Any Apple Silicon Mac (M1 or newer) with macOS 15+. 16 GB RAM runs 7–8 B models comfortably; 32 GB unlocks 30 B; 64 GB handles 70 B.
Why Python 3.14 from python.org specifically?
Ka1zen expects Python at /Library/Frameworks/Python.framework/Versions/3.14/. Homebrew, pyenv and conda install Python elsewhere.
Can I use a cloud model (OpenAI, Anthropic) alongside local ones? Yes. In Settings → Models → Add Model, enter any OpenAI-compatible endpoint. Ka1zen can mix local and cloud models in different conversations.
Is Ka1zen open source?
No. The app is distributed as a signed .dmg. Source code is not published.
Can I use Ka1zen at work / in a company / in a commercial product? Not without a separate agreement. Ka1zen is released under PolyForm Noncommercial 1.0.0: free for personal, educational, non-profit and research use. Commercial or enterprise use requires a written license — contact me.
Ka1zen stands on top of outstanding open-source work from the Apple ML team and the Hugging Face community. Go give them a star — they make on-device AI on the Mac actually possible:
- Apple MLX (
@ml_explore,@awnihannun) — the array framework that powers everything on the GPU / Neural Engine side. mlx-lmandmlx-vlm— the OpenAI-compatible inference servers Ka1zen spawns for text and vision models.mflux— FLUX.2 image generation on Apple Silicon.- Hugging Face &
huggingface-hub— model distribution, the hub, the cache, everything. - mlx-community — the reason we all have day-one MLX quantizations of every open model worth running. Huge thanks.
If you're a maintainer of any of these projects and want a different link or wording, open an issue — happy to adjust.
Ka1zen is a personal project built in my own time. If you find it useful, you can keep it going:
Issues, feedback and feature requests are also welcome on the Issues page. Release news & updates land first on X (@_LEFBE).
Ka1zen is released under the PolyForm Noncommercial License 1.0.0.
- ✅ Free for personal, educational, non-profit and research use.
- ❌ Commercial or enterprise use requires a written agreement. Contact florian.bertaux@gmail.com.
See LICENSE for the full text.
Developed by Florian Bertaux (@_LEFBE) · © 2026 · See also GhostWatch.



