Note
Whallm was previously named DeepSeekV4SSD. Releases published before the rename, including version 1.0.4, use the old app and archive names.
Inspired by Turbo Fieldfare,
Whallm lets an M-series Mac run all 284B parameters of the pinned
DeepSeek-V4-Flash-0731 checkpoint by streaming routed experts from SSD. It
also supports the pinned Qwen3.8-Flash-Next-FP8 text checkpoint.
| Model | Recorded peak memory |
|---|---|
DeepSeek-V4-Flash-0731 |
32.84–35.70 GiB |
Qwen3.8-Flash-Next-FP8 |
20.92–22.75 GiB |
These v1.1.4 results cover chat prompts with 1,024 to 16,384 input tokens. They are measurements, not minimum memory requirements or performance guarantees. Prompt length, tools, cache state, and runtime settings can change peak memory. See the benchmark and validation record for the measured workloads.
These v1.1.4 results were measured on a MacBook Pro with an Apple M5 Pro, 64 GB of unified memory, and 1 TB of storage. The benchmark used mixed SPEED-Bench prompts, three runs per input size, and a 64-token output limit. With three runs, nearest-rank P95 equals the maximum. TTFT means time to first token.
| Input tokens | P95 total time | P95 TTFT | P95 prefill | P95 decode | Peak memory |
|---|---|---|---|---|---|
| 1,024 | 27.10 s | 17.75 s | 59.9 tok/s | 7.8 tok/s | 32.84 GiB |
| 2,048 | 27.35 s | 17.60 s | 117.3 tok/s | 7.3 tok/s | 33.26 GiB |
| 8,192 | 50.12 s | 40.47 s | 206.3 tok/s | 7.4 tok/s | 34.50 GiB |
| 16,384 | 88.27 s | 78.61 s | 209.0 tok/s | 7.2 tok/s | 35.70 GiB |
| Input tokens | P95 total time | P95 TTFT | P95 prefill | P95 decode | Peak memory |
|---|---|---|---|---|---|
| 1,024 | 22.60 s | 15.65 s | 69.2 tok/s | 10.4 tok/s | 20.92 GiB |
| 2,048 | 31.42 s | 24.90 s | 87.5 tok/s | 9.8 tok/s | 21.26 GiB |
| 8,192 | 84.88 s | 77.74 s | 111.9 tok/s | 10.4 tok/s | 21.90 GiB |
| 16,384 | 157.89 s | 150.33 s | 113.3 tok/s | 9.7 tok/s | 22.75 GiB |
Performance changes with the prompt, SSD speed, and cache state. See the full benchmark and validation record for more details.
Download the app → Open the app → Select and download a model → Start the server → Chat in the app or connect Codex
Important
Version 1.0.3 cannot install version 1.0.4 through automatic update because
the previous Sparkle signing key is no longer available. Quit the app,
download DeepSeekV4SSD-macOS-arm64.zip from the
1.0.4 release,
and replace the existing app manually. Automatic updates work again after
you install version 1.0.4.
- Download the latest
Whallm-macOS-arm64.zipfrom GitHub Releases. - Extract the ZIP and open
Whallm.app. - Open the Model page. Select DeepSeek or Qwen, and then select Download Model. The app checks the required storage. Qwen downloads the published MXFP4 installed model. You can stop the download and resume it later.
- Open the Server page and select Start Server. The server can start with no installed model, but generation needs an installed model.
- Open the chat and select a model. You can also connect Codex with the configuration below.
The local server starts at http://127.0.0.1:11434 by default.
| Item | Requirement |
|---|---|
| Mac | Apple Silicon M-series Mac |
| macOS | macOS 15 or later |
| Unified memory | 64 GiB or more |
| Free storage | The app checks the selected model and existing partial data |
| Model storage | A fast internal, Thunderbolt, or USB4 SSD |
| Internet | Required to download the model and app updates |
Important
Whallm is experimental. Model weights are not included with the app. Keep the default local server address unless another device must connect.
Start the server in Whallm. Then add this configuration to
~/.codex/config.toml:
model = "deepseek-v4-flash-0731"
model_provider = "deepseek-v4-ssd"
model_reasoning_effort = "high"
[model_providers.deepseek-v4-ssd]
name = "Whallm"
base_url = "http://127.0.0.1:11434/v1"
wire_api = "responses"
requires_openai_auth = falseRestart Codex after you save the file. The local address does not need an API key. The provider settings must be in the user-level config file. See the official Codex configuration reference for more options.
- The main model has 284B total parameters and about 13B active parameters per token.
- Common tensors stay in unified memory.
- Routed experts use checkpoint-native FP4 weights and stream from SSD when needed.
- The runtime uses an FP8 KV cache and a bounded expert cache to control memory use.
- The installed model is verified against the pinned checkpoint revision.
- Server startup reads the installed model list but does not load model weights. The first generation request loads its selected model.
- The server keeps one model loaded. A request for another model closes the old runtime before it loads the new runtime.
- The Model page can load or unload a model. A loaded model moves to the Loaded section.
- The DeepSeek layer-major prefill threshold is configurable. Its default is 1,024 uncached prompt tokens.
- The main model uses about 145 GiB.
- DSpark adds about 10.12 GiB. Every new DeepSeek download includes it.
- Installing DSpark does not enable it. Enable Use DSpark in the runtime settings when you want to test speculative decoding.
- You can remove DSpark without reinstalling the main model.
- Qwen installed weight files use 125,268,506,112 bytes. Qwen does not support DSpark.
- Qwen downloads a verified MXFP4 installed model. Model installation does not quantize the Qwen checkpoint on the user's Mac.
The server supports these endpoints:
GET /healthzGET /v1/modelsPOST /v1/responsesPOST /v1/chat/completionsPOST /v1/completionsPOST /api/models/loadPOST /api/models/unload
The fixed API model IDs are deepseek-v4-flash-0731 and
qwen3.8-flash-next-fp8. Each model's Advanced Settings view lets you set an
optional Alias. Valid changes are saved automatically. Generation requests
accept the API model ID or its Alias. The chat model picker shows only the
installed models that were available when the server started. Restart the
server after a download finishes while it is running.
The Responses API supports Codex tools and OpenAI function tools. The client must run each tool and send the result back to the server. Read the API guide for fields, examples, and current limits.
The app shows prefill speed, decode speed, token counts, memory use, SSD read speed, cache hit rate, first-token wait time, and completion time. The app clears metric history when the loaded model changes.
Inference runs on your Mac. Prompts and generated text stay in the local runtime unless the connected client sends them elsewhere. The app uses the network to download the model, check for updates, and accept configured API requests.
- The runtime supports only the two pinned checkpoint revisions in the current documentation.
- Qwen supports text only. Qwen vision, video, MTP, and DSpark are not supported.
- Qwen full-model SHA-256, text, thinking, tool call, greedy 4K, prompt cache, and packaged App validation passed on the recorded M5 Pro environment. See the Qwen support status.
- The server keeps one model loaded and processes one generation request at a time. Other generation requests wait until the full request stream ends.
- Images, audio, logprobs,
response_format, andstopare not supported. - Request bodies are limited to 1 MiB.
- Very long input and output need more KV cache memory.
- Performance depends on SSD speed, input length, and cache state.
Read the current documentation for the model contract, runtime design, validation, performance, and research conclusions.
Whallm is not affiliated with DeepSeek. Review the model terms before you download and use the model.
The Whallm source code is available under the MIT License. Model weights are not included and remain subject to their own terms.
