Skip to content

Flor1an-B/Ka1zen

Repository files navigation

Ka1zen icon

Ka1zen

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

macOS 15+ Apple Silicon Version 0.6.2 PolyForm Noncommercial

User Guide   Model Guide   Changelog   Download latest

Ka1zen chat interface
Ka1zen — a native macOS chat with images, web search, thinking mode and image generation.


What is Ka1zen?

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.

Features

💬 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

Screenshots

Streaming response
Streaming response with a detailed technical brief.

Onboarding prerequisites     Model Manager

Onboarding — prerequisites check  ·  Model Manager — browse HuggingFace.

General settings     Model settings

Response presets  ·  Per-model generation parameters.


Installation

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).

1. Check compatibility

  • 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.

2. Install Python 3.14

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.

👉 python.org/downloads/macos

Pick "macOS 64-bit universal2 installer" for Python 3.14.x or newer, double-click the .pkg, follow the wizard.

3. Install the Python packages

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.sh

The 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.sh downloads a pinned, self-contained build into ~/Library/Application Support/Ka1zen/llama/no Homebrew required (it only falls back to brew install llama.cpp if 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

4. Install Ka1zen

  1. Download Ka1zen.dmg from the Releases page.
  2. Double-click the .dmg.
  3. Drag Ka1zen into the Applications folder.

5. First launch (Gatekeeper)

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):

  1. Open /Applications.
  2. Right-click (or Ctrl + click) Ka1zenOpen.
  3. Confirm Open in the dialog.

Method 2 — System Settings (if method 1 is refused on Sequoia):

  1. Double-click Ka1zen, dismiss the warning.
  2. System Settings → Privacy & Security.
  3. Scroll to Security"Ka1zen was blocked…"Open Anyway.
  4. Confirm with password or Touch ID.

Method 3 — Terminal (if macOS says "damaged"):

xattr -cr /Applications/Ka1zen.app

Then retry method 1.

Every launch after the first one works with a normal double-click.


First launch walkthrough

Ka1zen opens an onboarding assistant with two screens:

  1. 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.
  2. 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.


Tested on

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.


Documentation

  • 📘 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-community recommendations by RAM tier.

FAQ

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.


Star history

Star History Chart

Credits & acknowledgements

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-lm and mlx-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.


Support the project

Ka1zen is a personal project built in my own time. If you find it useful, you can keep it going:

Support via PayPal   Follow @_LEFBE on X

Issues, feedback and feature requests are also welcome on the Issues page. Release news & updates land first on X (@_LEFBE).


License

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.


Author

Developed by Florian Bertaux (@_LEFBE) · © 2026 · See also GhostWatch.

About

Local AI for Apple Silicon. Chat with open LLMs (Qwen, Gemma, DeepSeek, Mistral, Llama…) fully offline on your Mac via Apple MLX — private by design, zero telemetry.

Topics

Resources

License

Security policy

Stars

12 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors