CMF β€” Cortiq Model Format

One file. No Python, no torch, no CUDA install, no C++ toolchain.

A .cmf carries the quantized weights, the tokenizer and the chat template together, checks its own integrity, and memory-maps straight off disk. The runtime is a small Rust core with no ML framework under it, running on CPU everywhere and on GPU through wgpu β€” Vulkan, DX12, Metal β€” out of the box.

This repository is the format's front page. It holds the specification and the index of published models; it carries no weights of its own.

Run one

cargo install cortiq-cli                    # or take a prebuilt binary
hf download infosave/Nanbeige4.2-3Bcmf nanbeige42-3b-q4t.cmf --local-dir .
cortiq verify nanbeige42-3b-q4t.cmf         # per-tensor hashes
cortiq run nanbeige42-3b-q4t.cmf --prompt "Write a haiku about memory-mapped files."

Converting a checkpoint is one command and no Python:

cortiq convert --model Qwen/Qwen3-0.6B --quant q8 --output qwen.cmf

What is actually in the file

A CMF file is an envelope, not a tarball: readers navigate through the header and never guess at offsets. Unknown header fields are ignored, so the format grows additively β€” a breaking change costs a feature bit or a version bump, never a silent reinterpretation. A file written today stays readable, and cortiq verify is the contract that says so.

Beside the weights it carries the things that are usually scattered across a repository or lost entirely: the tokenizer and chat template, per-tensor hashes, an optional Ed25519 signature, per-task masks that select an active subset of the shared weights, and a swarm of skills sharing one backbone β€” several specialists in one file, chosen at load time rather than downloaded separately.

Two things it does that other single-file formats do not:

Attention that stops growing with the context. Converting with --o1 replaces a layer's softmax attention with a streaming operator holding a fixed-size state β€” a few exact anchor keys, an exact recent window, and a landmark sketch of everything older, under one shared denominator. The weights are byte-identical; the flag only records a hint in the header.

Generative models in the same container. The format is not LLM-only. cortiq imagine renders images and cortiq animate renders video with synchronized stereo audio, from .cmf files packed the same way, on the same runtime.

On a phone

The same file on Android and iOS. Cortiq: Local AI Models carries this runtime as a native library: chat against a .cmf on the device, convert a Hugging Face repo to CMF on the handset itself, and serve what is loaded to your LAN over the same OpenAI-compatible API. Paired with cortiq worker on a desktop it runs a model larger than the phone's memory β€” measured, a 34.7B MoE at 16.3 tok/s with 2 GB free.

What it does β†’ Β· source (Apache-2.0)

Published models

model what it does size
Nanbeige4.2-3B looped transformer, 22 layers run twice 2.36 GB
Bonsai-1.7B 1-bit BitNet, phone-sized 0.33 GB
Bonsai-8B 1-bit ternary at 2 bits stored 2.32 GB
Bonsai-27B 1-bit, 40 tok/s on an RTX 4090 5.10 GB
KAT-Coder-V2.5 34.7B-A3B MoE for code 12.65 GB
Kimi-Linear-48B-A3B KDA linear attention, MoE 17.75 GB
Qwen3.6-27B dense, q4tp 14.26 GB
Qwen3.6-35B-A3B MoE, q4tp 18.68 GB
Qwen3.6-35B-A3B-Escha the same at two bits 12.87 GB
DeepSeek-V4-Flash 1T-A32B, split into parts 455 GB
Lumina-Image-2.0 text β†’ image, 19 GB tree in 3.2 GB 6.72 GB
MiniMax-H3 Turbo text β†’ video with sound, 4 steps 71.05 GB
LTX-2.5 text β†’ video with sound, 21B DiT + audio VAE 20.53 GB
Qwen3.8-27B dense, q4tp 14.44 GB

Every one of them runs from the same binary: cortiq run for the text models, cortiq imagine for Lumina, cortiq animate for MiniMax-H3, cortiq ltx-video for LTX-2.5.

Where it is honest

The format is settled at v2 and evolves additively. The crate APIs may still move before 1.0. Quality claims in the model cards are measured held-out numbers with the corpus named, not estimates β€” where a number was not measured, the card says so rather than guessing, and the container refuses to record a quality field without a measurement.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Space using infosave/cmf 1