$git clone https://github.com/signerlabs/KleeA native macOS AI agent that runs entirely on your Mac. No cloud, no account, no subscription.
| 1 | # Klee |
| 2 | |
| 3 | A native macOS AI agent that runs entirely on your Mac. No cloud, no account, no subscription. |
| 4 | |
| 5 | Klee uses [MLX](https://github.com/ml-explore/mlx-swift) to run large language models directly on Apple Silicon, so your conversations never leave your device. |
| 6 | |
| 7 | ## Features |
| 8 | |
| 9 | - **100% local inference** -- your data stays on your Mac |
| 10 | - **No account or API key required** -- download and start chatting |
| 11 | - **One-click model download** -- pick a model, Klee handles the rest |
| 12 | - **Native tool calling** -- the AI can read/write files, search the web, and run shell commands |
| 13 | - **Vision support** -- attach images to your messages with supported VLM models |
| 14 | - **Web search** -- search the web via Jina AI (free API key, configurable in sidebar) |
| 15 | - **Streaming responses** -- tokens appear as they're generated |
| 16 | - **Inline thinking** -- see the model's reasoning process in a collapsible card |
| 17 | - **Platform modules** -- extend the AI with native Swift integrations (coming soon) |
| 18 | - **Lightweight** -- ~75MB native SwiftUI app, no Electron, no Docker, no background services |
| 19 | |
| 20 | ## System Requirements |
| 21 | |
| 22 | | Requirement | Minimum | |
| 23 | |---|---| |
| 24 | | macOS | 15.0 (Sequoia) or later | |
| 25 | | Chip | Apple Silicon (M1 or later) | |
| 26 | | RAM | 16 GB (see model table below) | |
| 27 | |
| 28 | More RAM unlocks larger, more capable models: |
| 29 | |
| 30 | | RAM | Recommended Models | |
| 31 | |---|---| |
| 32 | | 16 GB | Qwen 3.5 9B, Qwen 3 8B, Gemma 3 12B, DeepSeek R1 8B | |
| 33 | | 32 GB | Qwen 3.5 27B, Qwen 3.5 35B (MoE) | |
| 34 | | 64 GB | Gemma 3 27B, DeepSeek R1 32B | |
| 35 | | 96 GB+ | Qwen 3.5 122B (MoE) | |
| 36 | |
| 37 | ## Install |
| 38 | |
| 39 | Klee is distributed directly as a signed macOS app (Developer ID), not through the App Store. |
| 40 | |
| 41 | 1. Download the latest `.dmg` from [Releases](https://github.com/signerlabs/Klee/releases) |
| 42 | 2. Drag **Klee** into your Applications folder |
| 43 | 3. Open Klee -- if macOS shows a Gatekeeper warning, go to **System Settings > Privacy & Security** and click "Open Anyway" |
| 44 | |
| 45 | ## Usage |
| 46 | |
| 47 | 1. **Open Klee** -- the app detects your system RAM and shows compatible models |
| 48 | 2. **Download a model** -- tap the download button next to any recommended model. Downloads resume automatically if interrupted |
| 49 | 3. **Start chatting** -- select the downloaded model and type your message |
| 50 | |
| 51 | The AI can help you with file operations, web lookups, and shell commands -- just ask naturally. |
| 52 | |
| 53 | ### Web Search Setup (Optional) |
| 54 | |
| 55 | To enable web search: |
| 56 | |
| 57 | 1. Get a free API key at [jina.ai](https://jina.ai/?sui=apikey) (no credit card needed) |
| 58 | 2. Click the sidebar toggle button (top-right) |
| 59 | 3. Enable **Web Search** and paste your API key |
| 60 | 4. Ask Klee to search for anything |
| 61 | |
| 62 | Models are cached in `~/.klee/models/` and persist across app restarts. |
| 63 | |
| 64 | ## Supported Models |
| 65 | |
| 66 | All models are 4-bit quantized variants from the [mlx-community](https://huggingface.co/mlx-community) on HuggingFace. |
| 67 | |
| 68 | | Model | Size | Min RAM | Vision | HuggingFace ID | |
| 69 | |---|---|---|---|---| |
| 70 | | Qwen 3.5 9B | ~6 GB | 16 GB | Yes | `mlx-community/Qwen3.5-9B-4bit` | |
| 71 | | Qwen 3 8B | ~4.3 GB | 16 GB | | `mlx-community/Qwen3-8B-4bit` | |
| 72 | | Gemma 3 12B | ~8 GB | 16 GB | | `mlx-community/gemma-3-12b-it-qat-4bit` | |
| 73 | | DeepSeek R1 8B | ~4.6 GB | 16 GB | | `mlx-community/DeepSeek-R1-0528-Qwen3-8B-4bit` | |
| 74 | | Qwen 3.5 27B | ~16 GB | 32 GB | Yes | `mlx-community/Qwen3.5-27B-4bit` | |
| 75 | | Qwen 3.5 35B (MoE) | ~20 GB | 32 GB | Yes | `mlx-community/Qwen3.5-35B-A3B-4bit` | |
| 76 | | Gemma 3 27B | ~17 GB | 64 GB | | `mlx-community/gemma-3-27b-it-qat-4bit` | |
| 77 | | DeepSeek R1 32B | ~18 GB | 64 GB | | `mlx-community/DeepSeek-R1-Distill-Qwen-32B-4bit` | |
| 78 | | Qwen 3.5 122B (MoE) | ~70 GB | 96 GB | Yes | `mlx-community/Qwen3.5-122B-A10B-4bit` | |
| 79 | |
| 80 | ## Built-in Tools |
| 81 | |
| 82 | Klee uses native tool calling (mlx-swift-lm ToolCall API) -- no MCP, no Node.js, no external processes. |
| 83 | |
| 84 | | Tool | Description | |
| 85 | |---|---| |
| 86 | | `file_write` | Create or overwrite files | |
| 87 | | `file_read` | Read file contents | |
| 88 | | `file_list` | List directory contents | |
| 89 | | `file_delete` | Delete files | |
| 90 | | `web_search` | Search the web (requires Jina API key) | |
| 91 | | `web_fetch` | Fetch and extract webpage content | |
| 92 | | `shell_exec` | Exec |