Mindket

Clef-Flash

Newversion 1 · updated

Overview

Turns a state and a set of typed questions into decisions, returning a probability for every option of every question in one pass, with no free text. A 9B multimodal model from Cloudflare for developers.

Clef-Flash is a kit in the Developer category, listed by Mindket. It is free. This is version 1, last updated on . Download it on this page, a zip of its files. Nothing in it runs by itself.

At a glance

You need
  • Python with the torch and transformers packages
  • A CUDA GPU, since the card's example runs on one (it was tested on a single H200)
  • The pillow package, if you send images or video
  • About 18.8 GB of disk space in BF16, or about 4.7 GB at 4-bit (an estimate)
Runs in
  • Python with torch and transformers, on a CUDA GPU
  • SGLang, which can serve it, with launch notes for H200, B200 and B300 GPUs
  • Services that speak the Jev or SystemOne request format
Start with
pip install -U huggingface_hub
hf download Cloudflare/clef-flash

About

What it is

Clef-Flash is a 9B multimodal model from Cloudflare, post-trained from Qwen3.5-9B. You give it a state and a list of typed questions. The state can be plain text, a JSON record, pictures or video. In one pass the model gives back a probability for every answer option of every question. It writes no free text, so there is nothing to parse.

Who it suits

Developers who want a model to make routine decisions, such as sorting messages or judging records, and want probabilities back instead of prose.

IndustryWho uses itHow they use itExample
Customer supportSupport engineersRoute and rank incoming messagesDeciding which team should handle a message
Finance operationsBilling teamsClassify records by statusJudging whether an invoice is overdue
Software developmentBackend developersAdd a decision step to a serviceA yes or no check on a message's urgency
Content reviewOperations teamsJudge images and video against rulesA typed question about a picture

If you want a model that writes answers or chats, you can skip it, because it only returns option probabilities.

Where to use it

  • Python with torch and transformers, on a CUDA GPU
  • SGLang, which can serve it, with launch notes for H200, B200 and B300 GPUs
  • Services that speak the Jev or SystemOne request format
Use caseWhoWhat they get back
Message triageSupport teamsA probability for each team or urgency option
Record checksFinance teamsProbabilities for choice, score or yes-no questions
Multimodal decisionsDevelopersProbabilities from text, JSON, images or video input

How to set it up

  • Python with the torch and transformers packages
  • A CUDA GPU, since the card's example runs on one (it was tested on a single H200)
  • The pillow package, if you send images or video
  • About 18.8 GB of disk space in BF16, or about 4.7 GB at 4-bit (an estimate)
  1. Install the Hugging Face hub tools.
  2. Download the model files.
  3. Run the Python example from the card, which loads the model and asks two questions.
pip install -U huggingface_hub
hf download Cloudflare/clef-flash

How to use it

Build a record with a state and a set of questions. Each question has a type, an instruction and, for choice questions, the criteria for each option. Encode the record, run the model and apply a softmax to each question's logits to get probabilities.

import sys

import torch
from huggingface_hub import snapshot_download

path = snapshot_download("Cloudflare/clef-flash")
sys.path.insert(0, path)
from joint_schema_model import collate_records, encode_record, load_release_model

model, processor = load_release_model(path, device="cuda")

record = {
    "state": {"invoice": {"vendor": "Acme", "total": 1250.0, "currency": "USD", "status": "overdue"}},
    "questions": {
        "status": {
            "type": "choice",
            "instructions": "What is the invoice status?",
            "criteria": {"paid": "Invoice is paid.", "overdue": "Invoice is past due.", "draft": "Not sent."},
        },
        "large": {"type": "noul", "instructions": "Is the total above 1000 USD?"},
    },
}

encoded = encode_record(processor.tokenizer, record, processor=processor)
batch = collate_records([encoded], processor.tokenizer.pad_token_id, torch.device("cuda"))
with torch.inference_mode():
    logits = model(batch)[0]

for question, question_logits in zip(encoded.questions, logits):
    probabilities = question_logits.float().softmax(-1).tolist()
    print(question.question_id, dict(zip(question.option_ids, probabilities)))
ToolWhat it does
load_release_modelLoads the model and its processor
encode_recordTurns a state and questions into model input
collate_recordsBatches encoded records for the model
systemoneAnswers a request written in the Jev or SystemOne format

Example

You give it an invoice from Acme for 1,250 USD marked overdue. You ask for its status, with paid, overdue and draft as options, and whether the total is above 1,000 USD. It returns a probability for each status option and one for the yes-no question.

For newcomers and experts

If you are new to this, run the card's invoice example first and read the printed probabilities. Each number is how likely that option is, and the numbers for one question add up to one.

Underneath, the Qwen3.5-9B backbone and its vision encoder feed a small joint schema head. The head picks out the parts of the state that matter for each question, then scores every option of every question at once. The output is one logit per option, and a softmax per question gives the probabilities. A larger variant called Clef also exists.

  1. You write a state and typed questions
  2. The backbone reads the state
  3. The joint head scores every option
  4. You apply a softmax per question

Good to know

  • Question types: choice, score and noul, where noul returns the probability of true
  • Output: a choice answer has the choice, a confidence and probabilities, and a score answer adds an expected score and a legend
  • License: Apache-2.0
  • Cost to run: no API key or paid service is named, only a GPU
  • Data it reaches: the local example downloads the model and reads the record you build, and the card names no other access
  • Not for: free-form text generation, which the card says it does not do

README and files

README

Clef-Flash

Turns a state and a set of typed questions into decisions, returning a probability for every option of every question in one pass, with no free text. A 9B multimodal model from Cloudflare for developers.

Made by Cloudflare on Hugging Face. These notes are Mindket's, written from its model page and model card; the model's own files and license are on Hugging Face.

About

What it is: Clef-Flash is a 9B multimodal model from Cloudflare, post-trained from Qwen3.5-9B. You give it a state and a list of typed questions. The state can be plain text, a JSON record, pictures or video. In one pass the model gives back a probability for every answer option of every question. It writes no free text, so there is nothing to parse.

Who it suits: Developers who want a model to make routine decisions, such as sorting messages or judging records, and want probabilities back instead of prose.

Industry | Who uses it | How they use it | Example
Customer support | Support engineers | Route and rank incoming messages | Deciding which team should handle a message
Finance operations | Billing teams | Classify records by status | Judging whether an invoice is overdue
Software development | Backend developers | Add a decision step to a service | A yes or no check on a message's urgency
Content review | Operations teams | Judge images and video against rules | A typed question about a picture

If you want a model that writes answers or chats, you can skip it, because it only returns option probabilities.

Where to use it:

  • Python with torch and transformers, on a CUDA GPU
  • SGLang, which can serve it, with launch notes for H200, B200 and B300 GPUs
  • Services that speak the Jev or SystemOne request format
Use case | Who | What they get back
Message triage | Support teams | A probability for each team or urgency option
Record checks | Finance teams | Probabilities for choice, score or yes-no questions
Multimodal decisions | Developers | Probabilities from text, JSON, images or video input

How to set it up:

  • Python with the torch and transformers packages
  • A CUDA GPU, since the card's example runs on one (it was tested on a single H200)
  • The pillow package, if you send images or video
  • About 18.8 GB of disk space in BF16, or about 4.7 GB at 4-bit (an estimate)
  1. Install the Hugging Face hub tools.
  2. Download the model files.
  3. Run the Python example from the card, which loads the model and asks two questions.
pip install -U huggingface_hub
hf download Cloudflare/clef-flash

How to use it: Build a record with a state and a set of questions. Each question has a type, an instruction and, for choice questions, the criteria for each option. Encode the record, run the model and apply a softmax to each question's logits to get probabilities.

import sys

import torch
from huggingface_hub import snapshot_download

path = snapshot_download("Cloudflare/clef-flash")
sys.path.insert(0, path)
from joint_schema_model import collate_records, encode_record, load_release_model

model, processor = load_release_model(path, device="cuda")

record = {
    "state": {"invoice": {"vendor": "Acme", "total": 1250.0, "currency": "USD", "status": "overdue"}},
    "questions": {
        "status": {
            "type": "choice",
            "instructions": "What is the invoice status?",
            "criteria": {"paid": "Invoice is paid.", "overdue": "Invoice is past due.", "draft": "Not sent."},
        },
        "large": {"type": "noul", "instructions": "Is the total above 1000 USD?"},
    },
}

encoded = encode_record(processor.tokenizer, record, processor=processor)
batch = collate_records([encoded], processor.tokenizer.pad_token_id, torch.device("cuda"))
with torch.inference_mode():
    logits = model(batch)[0]

for question, question_logits in zip(encoded.questions, logits):
    probabilities = question_logits.float().softmax(-1).tolist()
    print(question.question_id, dict(zip(question.option_ids, probabilities)))
Tool | What it does
load_release_model | Loads the model and its processor
encode_record | Turns a state and questions into model input
collate_records | Batches encoded records for the model
systemone | Answers a request written in the Jev or SystemOne format

Example: You give it an invoice from Acme for 1,250 USD marked overdue. You ask for its status, with paid, overdue and draft as options, and whether the total is above 1,000 USD. It returns a probability for each status option and one for the yes-no question.

For newcomers and experts: If you are new to this, run the card's invoice example first and read the printed probabilities. Each number is how likely that option is, and the numbers for one question add up to one.

Underneath, the Qwen3.5-9B backbone and its vision encoder feed a small joint schema head. The head picks out the parts of the state that matter for each question, then scores every option of every question at once. The output is one logit per option, and a softmax per question gives the probabilities. A larger variant called Clef also exists.

You write a state and typed questions
The backbone reads the state
The joint head scores every option
You apply a softmax per question

Good to know:

  • Question types: choice, score and noul, where noul returns the probability of true
  • Output: a choice answer has the choice, a confidence and probabilities, and a score answer adds an expected score and a legend
  • License: Apache-2.0
  • Cost to run: no API key or paid service is named, only a GPU
  • Data it reaches: the local example downloads the model and reads the record you build, and the card names no other access
  • Not for: free-form text generation, which the card says it does not do

On Hugging Face, 13 November 2026

  • Task: image text to text
  • Library: transformers
  • Parameters: 9.4B
  • Weights: about 18.8 GB in BF16; about 4.7 GB at 4-bit (estimate)
  • Formats: Safetensors
  • Downloads in the last 30 days: 36,799
  • Likes: 919
  • License: apache-2.0
  • Based on: Qwen/Qwen3.5-9B
  • Quantized versions: 63
  • Fine-tunes: 15
  • Tags: transformers, safetensors, qwen3_5, image-text-to-text, clef, cloudflare, systemone, decision-model, qwen3.5, post-train, image-text-to-typed-output, multimodal

Links

Get the model

Download its files with Hugging Face's command line:

pip install -U huggingface_hub
hf download Cloudflare/clef-flash

Then follow the usage in its model card. Nothing in this kit runs by itself.

Files
README.md  6 KB

1 file, 6 KB, downloaded as a zip.

What’s new

  • Version 1 · 2026-11-12

Compare with similar

Listed Hugging Face models in the same category that share the most tags with this one.

ProductDownloads, last 30 daysLikesParametersLicenseLast change
Clef-Flash This page36,7999199.4Bapache-2.0
ClefShares image-text-to-typed-output · post-train · cloudflare72,2872,35627.4Bapache-2.0
Cloudflare clef GGUFShares image-text-to-typed-output · post-train · cloudflare18,3543627Bapache-2.0
clef-flash-4bitShares cloudflare · clef · systemone3,524409.4Bapache-2.0
Clef-LoRA-for-Qwen3.8-27B-GGUFShares clef · systemone · decision-model3116668Mapache-2.0
Alpie Seed 9BShares qwen3.5 · multimodal · qwen3_5741269.4Bapache-2.0
Numbers as Mindket last read them, from 2026-11-12 to 2026-11-13.

Reviews

No ratings yet

Write a review

No reviews yet.

What people say

Posts and comments that name this project on Hacker News, Bluesky, X, Reddit, Facebook and YouTube, found by a weekly search and on Trendshift. Mindket doesn’t write or check them. Open one to read it where it was posted.

felix089Show HN: Jevman – AI decision models play Pac-ManOpenai just launched their decisions endpoint, cloudflare launched clef the other week, and many more jev alternatives are out there. We wanted to put the popular ones to the test and thought Pac-Man is a good benchmark for simple and fast decision making. So we let jev 1.13, kev, clef, clef…82 points · 23 repliesPingoru.io🟠 Berget AI is reporting a Partial Outage since 11:10 UTC "Cloudflare/clef-flash is down" Affects: Cloudflare/clef-flash Live timeline → https://pingoru.io/providers/berget-ai/incidents/12447236 #BergetAI #BergetAIDown1 replycoloneltcbClef-Omni: full multimodality, a faster Clef and a cheaper Clef-flash24 pointsPingoru.io🟠 Berget AI is reporting a Partial Outage since 17:05 UTC "Cloudflare/clef-flash is down" Affects: Cloudflare/clef-flash Live timeline → https://pingoru.io/providers/berget-ai/incidents/12443721 #BergetAI #BergetAIDown1 replyDerDerDaIstClef (and Clef Flash) from Cloudflare2 pointsPingoru.io🟠 Berget AI is reporting a Partial Outage since 14:10 UTC "Cloudflare/clef-flash is down" Affects: Cloudflare/clef-flash Live timeline → https://pingoru.io/providers/berget-ai/incidents/12436703 #BergetAI #BergetAIDown1 replyjoerebilAgumon, a 2B model as an inline WAFHi HN, Giovanni here, I have been working for the last 10+ years in Cybersecurity, defense operations. While building my cloud platform that's bootstrapping in Europe, I kept reading the access logs of my projects, and wondering over and over how to avoid placing a traditional rule-based WAF as a…asuraCloudflare got you huggingface.co/Cloudflare/c...1 replynacsTypesafe AI raises $870M at $7.5BHm? Jev's actual (network) latency is not that great and even small local models are doing far better latency-wise. The Microsoft article GP linked even shows the MS model having 95ms latency. Even on price Jev being matched (the same MS model is "Input tokens cost $0.042 USD per million tokens.…Le Fil IA1/ Cloudflare sort Clef-omni, modèle de décision multimodal à poids ouverts, huit jours après Clef et Clef-flash. 30 milliards de paramètres, texte, image, audio et vidéo en un appel. Les petits modèles juges deviennent de l'infra. https://www.lefilia.fr/article/63101371 replymurdersznCube Rule food classifier using Cloudflare Clef classification modelI built a small demo that classifies food using the Cube Rule rather than asking a general model to write an essay on whether a hot dog is a sandwich. The Cube Rule categorizes food by the location of structural starch relative to the six faces of a cube: 0 Starchless (Salad): Steak, soup 1 Face…NeuroLinkCloudflare Clef, 29 Oct probes: 413/5021 fired on an estimate (request JSON, chars ÷ 4, rounded) over twice the window its message prints. Refused: clef-flash 196,609 got 422 (real tokens > max), 196,610 got 413; clef 524,289 got 422, 524,290 got 413. Mostly-'a'; images not in estimate (24 Oct)

Searched

More from Mindket

See all from Mindket

anaksor-ocr

Sokheng · Kit

Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…

New

Qwen2.5-7B-Instruct as GGUF files in eight quantization sizes, to chat with locally through llama.cpp. For people who want a capable 7.6B model on their own co…

New

ACE-Step 1.5 XL SFT

ACE-Step · Kit

Generates music from text with a 4B diffusion decoder, 50 steps and guidance control, aiming for higher audio quality than the base. For creators with a GPU of…

New

Similar in Developer

See all in Developer

Claude Code Skills & Plugins

alirezarezvani · Skill

Adds 411 ready-made skills for Claude Code and other coding agents, grouped by role from engineering and product to marketing, finance and compliance. Installs…

New29.8k

buzz

block · Kit

Self-hostable workspace where people and AI agents share the same rooms, built on a Nostr relay that logs every action as a signed event. For teams that want t…

New37.3k

plannotator

backnotprop · Kit

Opens your AI coding agent's plans, specs and code changes in a browser so you can annotate or comment on them and send the feedback straight back to the agent.

New10.5k