incoai/Qwen3.6-35B-A3B-Splash

Model

Qwen3.6-35B-A3B-Splash

19

9 commits

1 linked in READMEs

updated Sep 18, 2026

See the code

README

Qwen3.6-35B-A3B-Splash

Qwen3.6-35B-A3B, packed for Splash on Apple silicon.

Splash is Inco AI's open-source inference engine for Apple silicon, built around the model. This package contains everything Splash needs to serve Qwen3.6-35B-A3B: the 4-bit target, its DFlash 2 draft, the vision encoder, and the tokenizer. It is not a Transformers or MLX checkpoint and does not load anywhere but Splash.

Qwen3.6-35B-A3B is the mixture-of-experts launch model, with 35B total parameters and about 3B active per token, and the faster of the two. The other, Qwen3.8-27B-Splash, is a dense 27B model.

Engine · Launch post and benchmarks · DFlash 2

Quick start

Apple M3 or newer, macOS 26.4 or later, Homebrew, and 36 GB of unified memory (48 GB or more recommended).

brew install incoai/tap/splash
splash serve --model incoai/Qwen3.6-35B-A3B-Splash

The first run downloads this package (20.9 GB), verifies it, checks available memory, and starts serving on 127.0.0.1:8000. When it prints its Ready line, open http://127.0.0.1:8000 or attach an agent you already have installed from another terminal:

splash opencode    # or: splash claude / splash codex / splash hermes

The server binds 127.0.0.1, and authentication is off by default. Set SPLASH_API_KEY before exposing it beyond your Mac.

The API is OpenAI Chat Completions and Responses, and Anthropic Messages, with streaming, tool calls, JSON Schema output, images, and inline PDFs:

curl http://127.0.0.1:8000/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "incoai/Qwen3.6-35B-A3B-Splash",
    "messages": [{"role": "user", "content": "Explain speculative decoding in one sentence."}]
  }'

Reasoning is on by default and is a switch, not a dial. "reasoning_effort": "none" turns it off, and reasoning comes back as reasoning_content.

There is no config file. The only settings are ceilings such as --max-memory and --max-context, which the README lists with their defaults.

Performance

Measured on an M5 Pro (16-core GPU, 48 GB) with selected SPEED-Bench coding prompts over HTTP, with a 1,024-token output limit and reasoning on. The ratio in each cell is against the next-fastest engine we measured.

MetricQwen3.6-35B-A3B
Decode · short prompt210 tok/s (1.7×)
Prefill · 32K prompt2,011 tok/s (1.3×)
Time to first token · 32K prompt, uncached17 s (1.3×)
Cached time to first token · 32K replay123 ms (6.6×)
Aggregate decode · 4 concurrent short prompts357 tok/s (2.0×)
Aggregate decode · 4 concurrent 32K prompts236 tok/s (3.8×)

Splash led on every measure at every prompt length we tested, and the lead grows with load. The cached figure replays the prompt exactly, so a real turn also pays for the tokens it adds. The launch post has the method and the full comparison.

Package contents

target/      42 files   18.2 GiB   Qwen3.6-35B-A3B, 4-bit, one packed file per layer
draft/        7 files    0.5 GiB   DFlash 2 draft model
vision/       1 file     0.8 GiB   bf16 vision encoder
tokenizer/    5 files              tokenizer and chat template
manifest.json                      provenance, geometry, and SHA-256 of every artifact
layout.json                        section-level map of every packed file
ComponentSourceRevision
Target, tokenizer, visionmlx-community/Qwen3.6-35B-A3B-4bit38740b847e4cb78f352aba30aa41c76e08e6eb46
Draftincoai/Qwen3.6-35B-A3B-DFlash28e713508f0bb02f03b5cb5cabbc8d9604f924be2

The weights are fixed-layout binaries that Splash maps directly from disk, keeping the upstream conversion's mixed precision: 4-bit weights with 8-bit expert routers. The draft is a six-layer DFlash 2 model that reads the target's hidden states at eight layers and proposes 7 tokens per step, which the target verifies in one pass. The chat template is upstream's with one change: a system message after the first turn is rendered in place instead of rejected, which coding agents that inject instructions mid-conversation need.

manifest.json records the revisions above, the execution geometry, and the size and SHA-256 of every artifact. Splash pins an immutable commit of this repository, checks every artifact's SHA-256 before installing it, and re-checks sizes and alignment on every start. The target is the upstream 4-bit conversion, and the target verifies every drafted token, so speculation changes speed and not the output distribution.

License

Apache-2.0. Every component is Apache-2.0 upstream as well: Qwen3.6-35B-A3B (Alibaba), its 4-bit conversion (mlx-community), and the DFlash 2 draft (Inco AI).

Citation

@misc{inco2026splash,
  title  = {{Splash: A Local Engine Built Around the Model}},
  author = {{Inco AI}},
  year   = {2026},
  month  = {September},
  url    = {https://inco.ai/blog/splash/}
}
4-bit
apple-silicon
dflash2
local-inference
metal
qwen3.6
speculative-decoding
splash
text-generation

Contributors

zhijianliu

9 commits

incoai/Qwen3.6-35B-A3B-Splash

Model

Qwen3.6-35B-A3B-Splash

19

9 commits

1 linked in READMEs

updated Sep 18, 2026

See the code

README

Qwen3.6-35B-A3B-Splash

Qwen3.6-35B-A3B, packed for Splash on Apple silicon.

Splash is Inco AI's open-source inference engine for Apple silicon, built around the model. This package contains everything Splash needs to serve Qwen3.6-35B-A3B: the 4-bit target, its DFlash 2 draft, the vision encoder, and the tokenizer. It is not a Transformers or MLX checkpoint and does not load anywhere but Splash.

Qwen3.6-35B-A3B is the mixture-of-experts launch model, with 35B total parameters and about 3B active per token, and the faster of the two. The other, Qwen3.8-27B-Splash, is a dense 27B model.

Engine · Launch post and benchmarks · DFlash 2

Quick start

Apple M3 or newer, macOS 26.4 or later, Homebrew, and 36 GB of unified memory (48 GB or more recommended).

brew install incoai/tap/splash
splash serve --model incoai/Qwen3.6-35B-A3B-Splash

The first run downloads this package (20.9 GB), verifies it, checks available memory, and starts serving on 127.0.0.1:8000. When it prints its Ready line, open http://127.0.0.1:8000 or attach an agent you already have installed from another terminal:

splash opencode    # or: splash claude / splash codex / splash hermes

The server binds 127.0.0.1, and authentication is off by default. Set SPLASH_API_KEY before exposing it beyond your Mac.

The API is OpenAI Chat Completions and Responses, and Anthropic Messages, with streaming, tool calls, JSON Schema output, images, and inline PDFs:

curl http://127.0.0.1:8000/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "incoai/Qwen3.6-35B-A3B-Splash",
    "messages": [{"role": "user", "content": "Explain speculative decoding in one sentence."}]
  }'

Reasoning is on by default and is a switch, not a dial. "reasoning_effort": "none" turns it off, and reasoning comes back as reasoning_content.

There is no config file. The only settings are ceilings such as --max-memory and --max-context, which the README lists with their defaults.

Performance

Measured on an M5 Pro (16-core GPU, 48 GB) with selected SPEED-Bench coding prompts over HTTP, with a 1,024-token output limit and reasoning on. The ratio in each cell is against the next-fastest engine we measured.

MetricQwen3.6-35B-A3B
Decode · short prompt210 tok/s (1.7×)
Prefill · 32K prompt2,011 tok/s (1.3×)
Time to first token · 32K prompt, uncached17 s (1.3×)
Cached time to first token · 32K replay123 ms (6.6×)
Aggregate decode · 4 concurrent short prompts357 tok/s (2.0×)
Aggregate decode · 4 concurrent 32K prompts236 tok/s (3.8×)

Splash led on every measure at every prompt length we tested, and the lead grows with load. The cached figure replays the prompt exactly, so a real turn also pays for the tokens it adds. The launch post has the method and the full comparison.

Package contents

target/      42 files   18.2 GiB   Qwen3.6-35B-A3B, 4-bit, one packed file per layer
draft/        7 files    0.5 GiB   DFlash 2 draft model
vision/       1 file     0.8 GiB   bf16 vision encoder
tokenizer/    5 files              tokenizer and chat template
manifest.json                      provenance, geometry, and SHA-256 of every artifact
layout.json                        section-level map of every packed file
ComponentSourceRevision
Target, tokenizer, visionmlx-community/Qwen3.6-35B-A3B-4bit38740b847e4cb78f352aba30aa41c76e08e6eb46
Draftincoai/Qwen3.6-35B-A3B-DFlash28e713508f0bb02f03b5cb5cabbc8d9604f924be2

The weights are fixed-layout binaries that Splash maps directly from disk, keeping the upstream conversion's mixed precision: 4-bit weights with 8-bit expert routers. The draft is a six-layer DFlash 2 model that reads the target's hidden states at eight layers and proposes 7 tokens per step, which the target verifies in one pass. The chat template is upstream's with one change: a system message after the first turn is rendered in place instead of rejected, which coding agents that inject instructions mid-conversation need.

manifest.json records the revisions above, the execution geometry, and the size and SHA-256 of every artifact. Splash pins an immutable commit of this repository, checks every artifact's SHA-256 before installing it, and re-checks sizes and alignment on every start. The target is the upstream 4-bit conversion, and the target verifies every drafted token, so speculation changes speed and not the output distribution.

License

Apache-2.0. Every component is Apache-2.0 upstream as well: Qwen3.6-35B-A3B (Alibaba), its 4-bit conversion (mlx-community), and the DFlash 2 draft (Inco AI).

Citation

@misc{inco2026splash,
  title  = {{Splash: A Local Engine Built Around the Model}},
  author = {{Inco AI}},
  year   = {2026},
  month  = {September},
  url    = {https://inco.ai/blog/splash/}
}
4-bit
apple-silicon
dflash2
local-inference
metal
qwen3.6
speculative-decoding
splash
text-generation

Contributors

zhijianliu

9 commits