# Zen

URL: https://docs.hanzo.ai/docs/models/zen

> Zen is the open-weight model family from Zoo Labs Foundation, for two jobs: agentic coding that runs on your own machine, and marketing work — campaign copy in your brand's voice and the images and speech that go with it.

**After this page you know which Zen model does which job, how to call it,
where its weights are, and which generation is current.**

Zen is the open-weight family of Zen LM, from [Zoo Labs Foundation](https://zoo.ngo), a
501(c)(3) non-profit, and served on `api.hanzo.ai`. It is chosen for two jobs.

**Agentic coding that runs locally.** `zen6` is a 27B dense model that reads
262,144 tokens natively and 1,048,576 with YaRN, and ships a speculative drafter
for faster decoding; its card reports 141 tokens a second on code completion on
one DGX Spark. `zen6-flash` is the same generation in ternary weights, 5.95 GB,
for an Apple Silicon laptop or one GPU. Hosted, both ids take a 1,000,000-token
context.

**Marketing work.** [`POST /v1/content/generate`](https://docs.hanzo.ai/docs/openapi/content/post-content-generate) drafts
campaigns and social posts from a brief, with the brand-voice guidance you pass
and the Zen model you name, and files each one in the CMS as a draft. `zen6`
reads images and video beside the brief, and `zen-vl` reads images, documents
and charts. The Zen 3 weights make the images
(`zen3-image`) and speech (`zen3-tts`) that go with the copy.

Weights are published under [huggingface.co/zenlm](https://huggingface.co/zenlm); each model card states its
license, base and serving instructions. The same ids answer hosted on
`api.hanzo.ai`.

## Generations

| Generation | Models                                                                                                   | Where                                                                                                                                                                                 | Status                                                                                  |
| ---------- | -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
| **Zen 7**  | —                                                                                                        | no weights; no id to call                                                                                                                                                             | research preview · [Request access](https://hanzo.ai/research-access) · succeeds Satori |
| **Zen 6**  | `zen6`, `zen6-flash`, and `zen6-max` (3.7T enterprise MoE)                                               | hosted; weights at [`zenlm/zen6`](https://huggingface.co/zenlm/zen6) and [`zenlm/zen6-flash`](https://huggingface.co/zenlm/zen6-flash); [zen6-max](https://docs.hanzo.ai/docs/models) | available now; enterprise evaluation                                                    |
| **Zen 5**  | `zen5`, `zen5-coder`, `zen5-flash`, `zen5-mini`, `zen5-pro`, `zen5-evo`, `zen5-spark`                    | hosted; GGUF builds on Hugging Face (`zen5-gguf`, `zen5-coder-gguf`, …)                                                                                                               | earlier                                                                                 |
| **Zen 3**  | speech (`zen3-asr`, `zen3-tts`), image (`zen3-image`), `zen3-vl`, `zen3-omni`, `zen3-nano`, `zen3-guard` | weights on Hugging Face                                                                                                                                                               | shipped                                                                                 |

Task lines sit beside the generations: `zen-embedding` and `zen-reranker`
(0.6B, 4B, 8B) for retrieval, `zen-guard` for safety, `zen-vl`
for vision. `zen-embedding-2` embeds text in 768 dimensions and takes `dimensions`
of 512, 256 or 128 for shorter vectors; a query prefix (`task: search result | query: `)
and a document prefix (`title: none | text: `) belong in the text. Its vectors are not
`zen-embedding`'s, so an index is built with one of the two. `zen-free` and `hanzo/zen` answer on the gateway too.
[`zen-router`](https://huggingface.co/zenlm/zen-router) is a
classifier, not a generator; the gateway also accepts its name as an alias for
[`auto`](https://docs.hanzo.ai/docs/models/enso).

## Zen 6 weights

|              | [`zenlm/zen6`](https://huggingface.co/zenlm/zen6) | [`zenlm/zen6-flash`](https://huggingface.co/zenlm/zen6-flash)                 |
| ------------ | ------------------------------------------------- | ----------------------------------------------------------------------------- |
| Weights      | 27.3B dense, NVFP4 MLP and LM head, FP8 attention | ternary: 1.77 bits per weight packed (5.95 GB), 2.14 in 2-bit slots (7.21 GB) |
| Layers       | 64: 48 linear-attention, 16 full-attention        | the same 27B                                                                  |
| Attention    | 24 query heads, 4 key/value, head size 256        |                                                                               |
| Vocabulary   | 248,320 tokens                                    |                                                                               |
| Context      | 262,144 native; 1,048,576 with YaRN               | 262,144                                                                       |
| Inputs       | text, images, video                               | text, images                                                                  |
| Drafter      | bundled, block-diffusion                          | bundled, 2.06 GB                                                              |
| Runs on      | SGLang, NVIDIA Blackwell                          | llama.cpp, Metal or one GPU                                                   |
| Architecture | `Qwen3_5ForConditionalGeneration` (`qwen3_5`)     | GGUF `qwen35`                                                                 |

## Call one

```bash
curl https://api.hanzo.ai/v1/chat/completions \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "zen6",
    "messages": [{"role": "user", "content": "Write a binary search in Rust."}]
  }'
```

Every hosted Zen id, with its context window and rate, is one request away and
needs no key:

```bash
curl -s https://api.hanzo.ai/v1/models \
  | jq -r '.data[] | select(.owned_by == "zenlm") | "\(.id)\t\(.context_window)\t\(.pricing.input_per_million)/\(.pricing.output_per_million)"'
```

The gateway is the source of truth for ids, windows and rates. If this page and
that command disagree, believe the command.

## Run one yourself

```bash
hf download zenlm/zen6 --local-dir zen6
hf download zenlm/zen6-flash --local-dir zen6-flash
```

Each card carries the serving command its model was built for: SGLang for
`zen6`, llama.cpp for `zen6-flash` and the GGUF builds. A server that speaks

## SDK Examples & Recipes

- **[Open Source Repository on GitHub (`hanzoai/zen`)](https://github.com/hanzoai/zen)**: Canonical open-source repository with cloud streaming clients, reasoning extraction, and recipes.
- **Multi-Language Cloud Examples**:
  - [Python Client (`examples/cloud/client_cloud.py`)](https://github.com/hanzoai/zen/tree/main/examples/cloud/client_cloud.py): Real-time SSE streaming with reasoning token extraction (`delta.reasoning_content`).
  - [Go Client (`examples/cloud/client_cloud.go`)](https://github.com/hanzoai/zen/tree/main/examples/cloud/client_cloud.go): Streaming SSE client using `bufio.Scanner`.
  - [Rust Client (`examples/cloud/client_cloud.rs`)](https://github.com/hanzoai/zen/tree/main/examples/cloud/client_cloud.rs): Async streaming client using `reqwest` and `eventsource-stream`.
- **[Modular Rust Recipes Crate (`zen-recipes`)](https://github.com/hanzoai/zen/tree/main/recipes)**: High-level abstractions including `ZenChatRecipe` and `ZenStreamAccumulator`.

## Where Zen sits

Zen is the model that writes. It is not the model that picks which model
writes — that is [Enso](https://docs.hanzo.ai/docs/models/enso) — and it is not asked bounded
questions a typed answer settles — that is [Kai](https://docs.hanzo.ai/docs/models/kai). An agent
built on all three spends generative compute only where generation is the work.

Specifications: [HIP-0039](https://hips.hanzo.ai/docs/hip-0039-zen-model-architecture) for the
family; [HIP-0904](https://hips.hanzo.ai/docs/hip-0904-zen6) records what each `zenlm/zen6*`
repository on Hugging Face holds.

## License & attribution

Each repository's own license governs its files; the model card names it.

- `zenlm/zen6`: Apache-2.0. Built from Qwen3.8-27B by the Qwen team (Apache-2.0);
  NVFP4 quantization `RadixArk/Qwen3.8-27B-NVFP4`, drafter `incoai/Qwen3.8-27B-DFlash2`.
- `zenlm/zen6-flash`: Apache-2.0. Ternary Bonsai 2 27B by prism-ml
  (`prism-ml/Ternary-Bonsai-2-27B-gguf`), built from Qwen3.8-27B; drafter
  `ProCreations/Ternary-Bonsai-2-27B-DFlash2`.
- `zen-embedding-2`: Apache-2.0. EmbeddingGemma 2 by Google DeepMind
  (`google/embeddinggemma-2`), served unchanged.
