Development build of main (80be72b). It is not the latest release: sushi update, the built-in update check and Homebrew stay on v1.6.0 and never offer it. Ad-hoc signed and not notarized, like every sushi release.
To try it:
shasum -a 256 -c sushi-bin-macos-arm64.tar.gz.sha256
tar -xzf sushi-bin-macos-arm64.tar.gz
xattr -dr com.apple.quarantine sushi-macos-arm64
./sushi-macos-arm64/sushi --versionSince v1.7.0-dev2, for DeepSeek-V4.1-Flash on Sushi Cooler:
- The release's own checkpoint (FP8 trunk, MXFP4 experts) now runs on Sushi Cooler too, with the tokens MLX gives and at MLX's speed, so every DeepSeek pack decodes on the engine of our own at its load.
--ds41-mlx-engine(or the setting) keeps MLX until 1.8.0. - STQ packs decode and prefill on Sushi Cooler on an M1 to M4 as well, on the SIMD arms where there are no matrix units. Proven as an M1 Max on an M5; no real M1 to M4 run is recorded yet.
- Many large images followed by a small one are served as the MLX route serves them, an image of more than 8,192 patches no longer compiles a pipeline inside its request, and a failed image encode no longer fails the request after it.
- A seeded request keeps the adaptive draft rounds, with the same text every time, and a model that another model's load evicts keeps its conversation state.
For every model:
- A strict JSON schema is enforced as written, or refused with a 400 naming why.
- A tool call's parameter text can no longer change the call, tool arguments keep the model's spelling, and GLM enforces
tool_choicerequiredor a named function as Qwen does. - One conversation is the same prompt on every API surface, and a reply says the same thing on chat,
/v1/messagesand/v1/responses. - A reply never writes a token its template prints only between turns; Qwen3.8 reads decomposed (NFD) text as transformers does; a pack's
chat_template.jinjaoutranks the copy in its tokenizer_config.json.