Mindket

Clef

Newversion 1 · updated

Overview

Cloudflare's 27B multimodal model that scores the allowed answers to typed questions about a text, JSON, image or video input, instead of writing free text.

Clef 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 torch and transformers
  • pillow, if you send images or video
  • A large GPU, as the card was tested on one H200
  • About 54.7 GB of disk for the BF16 weights, from the record
Runs in
  • Python, with the model loaded through the repository's own helper file
  • SGLang, which can serve it, with Docker on a single H200 shown in the card
  • Any service that speaks the Jev or SystemOne request format
  • Windows, macOS or Linux for the file download
Start with
pip install -U huggingface_hub
hf download Cloudflare/clef

Platform

DockerContainer
WindowsOperating system
macOSOperating system
LinuxOperating system

About

What it is

Clef is a 27B multimodal model from Cloudflare. You give it a situation and a list of questions that each have fixed answer options. It scores every option of every question in one pass, so you get probabilities instead of a written reply.

The situation can be text, JSON, images or video. Clef is post-trained from Qwen3.8-27B and adds a small head that scores all the options together.

Who it suits

It suits teams that need a model to make a structured decision, such as sorting a message or labeling a record, and want numbers they can act on. The card describes its API as compatible with Jev and SystemOne.

IndustryWho uses itHow they use itExample
Customer supportSupport engineersRoute messages to the right teamChoosing between billing and technical
Finance operationsBack-office teamsClassify records by statusReading an invoice as paid, overdue or draft
SoftwareBackend developersAdd a decision step to a workflowChecking whether a message sounds urgent
Data teamsAnalystsLabel inputs against a fixed set of answersScoring a record on a named scale

Skip it if you need free-form writing, since this model does not generate text.

Where to use it

  • Python, with the model loaded through the repository's own helper file
  • SGLang, which can serve it, with Docker on a single H200 shown in the card
  • Any service that speaks the Jev or SystemOne request format
  • Windows, macOS or Linux for the file download
Use caseWhoWhat they get back
Triage a messageSupport teamsA probability for each team that could handle it
Classify a recordOperations teamsA probability for each allowed status
Yes or no checksDevelopersThe probability that a statement is true

How to set it up

You need a few things in place first.

  • Python with torch and transformers
  • pillow, if you send images or video
  • A large GPU, as the card was tested on one H200
  • About 54.7 GB of disk for the BF16 weights, from the record
  1. Download the repository with the hf command.
  2. Load the model with the helper function in the repository.
  3. Build a record with a state and your questions, then run it.
pip install -U huggingface_hub
hf download Cloudflare/clef

How to use it

You write a record with a state and a set of questions. Each question has a type, its instructions and, for a choice, the allowed options. The helper encodes the record, runs the model and returns one score per option. A softmax per question turns them into probabilities.

import sys

import torch
from huggingface_hub import snapshot_download

path = snapshot_download("Cloudflare/clef")
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)))

To serve it, the card shows a Docker command that starts SGLang on a single H200.

docker run --gpus all \
  --shm-size 32g \
  -p 30000:30000 \
  -v ~/.cache/huggingface:/root/.cache/huggingface \
  --ipc=host \
  lmsysorg/sglang:dev-clef \
  sglang serve \
    --model-path Cloudflare/clef \
    --host 0.0.0.0 \
    --port 30000
ToolWhat it does
load_release_modelLoads the backbone and the scoring head from the downloaded folder
encode_recordTurns a state and its questions into model input
systemoneA Python function that answers a Jev or SystemOne style request

Example

You pass an invoice record from Acme with the question "What is the invoice status?" and the options paid, overdue and draft. You get back a probability for each option, plus one for the yes or no question about a total above 1000 USD.

For newcomers and experts

Think of Clef as a classifier you steer with questions, not a chatbot. Start by running the Python record from the card and reading the probabilities it prints. Change one option description and run it again.

Under the hood, a Qwen3.8-27B backbone with its vision encoder feeds a joint head. A small head on top of the backbone matches parts of the state to each question and ranks every option jointly. There is no sampling and no output parsing. The API returns a choice, a score or a yes or no probability per question, plus a confidence value.

  1. Send a state and typed questions
  2. The backbone reads the state
  3. The joint head scores every option
  4. You get a probability per option

Good to know

  • License: Apache 2.0
  • Cost to run: none named, but the card was tested on one H200 and the BF16 weights are about 54.7 GB
  • Data it reaches: it downloads files from Hugging Face, and the state and media you send run on your own machine
  • Not for: free-form text generation, since the model only scores allowed options

README and files

README

Clef

Cloudflare's 27B multimodal model that scores the allowed answers to typed questions about a text, JSON, image or video input, instead of writing free text.

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 is a 27B multimodal model from Cloudflare. You give it a situation and a list of questions that each have fixed answer options. It scores every option of every question in one pass, so you get probabilities instead of a written reply.

The situation can be text, JSON, images or video. Clef is post-trained from Qwen3.8-27B and adds a small head that scores all the options together.

Who it suits: It suits teams that need a model to make a structured decision, such as sorting a message or labeling a record, and want numbers they can act on. The card describes its API as compatible with Jev and SystemOne.

Industry | Who uses it | How they use it | Example
Customer support | Support engineers | Route messages to the right team | Choosing between billing and technical
Finance operations | Back-office teams | Classify records by status | Reading an invoice as paid, overdue or draft
Software | Backend developers | Add a decision step to a workflow | Checking whether a message sounds urgent
Data teams | Analysts | Label inputs against a fixed set of answers | Scoring a record on a named scale

Skip it if you need free-form writing, since this model does not generate text.

Where to use it:

  • Python, with the model loaded through the repository's own helper file
  • SGLang, which can serve it, with Docker on a single H200 shown in the card
  • Any service that speaks the Jev or SystemOne request format
  • Windows, macOS or Linux for the file download
Use case | Who | What they get back
Triage a message | Support teams | A probability for each team that could handle it
Classify a record | Operations teams | A probability for each allowed status
Yes or no checks | Developers | The probability that a statement is true

How to set it up: You need a few things in place first.

  • Python with torch and transformers
  • pillow, if you send images or video
  • A large GPU, as the card was tested on one H200
  • About 54.7 GB of disk for the BF16 weights, from the record
  1. Download the repository with the hf command.
  2. Load the model with the helper function in the repository.
  3. Build a record with a state and your questions, then run it.
pip install -U huggingface_hub
hf download Cloudflare/clef

How to use it: You write a record with a state and a set of questions. Each question has a type, its instructions and, for a choice, the allowed options. The helper encodes the record, runs the model and returns one score per option. A softmax per question turns them into probabilities.

import sys

import torch
from huggingface_hub import snapshot_download

path = snapshot_download("Cloudflare/clef")
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)))

To serve it, the card shows a Docker command that starts SGLang on a single H200.

docker run --gpus all \
  --shm-size 32g \
  -p 30000:30000 \
  -v ~/.cache/huggingface:/root/.cache/huggingface \
  --ipc=host \
  lmsysorg/sglang:dev-clef \
  sglang serve \
    --model-path Cloudflare/clef \
    --host 0.0.0.0 \
    --port 30000
Tool | What it does
load_release_model | Loads the backbone and the scoring head from the downloaded folder
encode_record | Turns a state and its questions into model input
systemone | A Python function that answers a Jev or SystemOne style request

Example: You pass an invoice record from Acme with the question "What is the invoice status?" and the options paid, overdue and draft. You get back a probability for each option, plus one for the yes or no question about a total above 1000 USD.

For newcomers and experts: Think of Clef as a classifier you steer with questions, not a chatbot. Start by running the Python record from the card and reading the probabilities it prints. Change one option description and run it again.

Under the hood, a Qwen3.8-27B backbone with its vision encoder feeds a joint head. A small head on top of the backbone matches parts of the state to each question and ranks every option jointly. There is no sampling and no output parsing. The API returns a choice, a score or a yes or no probability per question, plus a confidence value.

Send a state and typed questions
The backbone reads the state
The joint head scores every option
You get a probability per option

Good to know:

  • License: Apache 2.0
  • Cost to run: none named, but the card was tested on one H200 and the BF16 weights are about 54.7 GB
  • Data it reaches: it downloads files from Hugging Face, and the state and media you send run on your own machine
  • Not for: free-form text generation, since the model only scores allowed options

On Hugging Face, 13 November 2026

  • Task: image text to text
  • Library: transformers
  • Parameters: 27.4B
  • Weights: about 54.7 GB in BF16; about 13.7 GB at 4-bit (estimate)
  • Formats: Safetensors
  • Downloads in the last 30 days: 72,287
  • Likes: 2,356
  • License: apache-2.0
  • Based on: Qwen/Qwen3.8-27B
  • Quantized versions: 44
  • Fine-tunes: 11
  • Tags: transformers, safetensors, qwen3_5, image-text-to-text, clef, cloudflare, systemone, decision-model, qwen3.8, 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

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

Files
README.md  7 KB

1 file, 7 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 This page72,2872,35627.4Bapache-2.0
Clef-FlashShares image-text-to-typed-output · post-train · cloudflare36,7999199.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 · qwen3.83116668Mapache-2.0
Qwen3.8-27B-piShares qwen3.8 · multimodal · qwen3_51,8578727.8Bapache-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 repliesChema AlonsoEl lado del mal - Cómo evitar fugas de documentos con un "DLP AI" para ficheros de imágenes con Cloudflare Workers AI y Clef www.elladodelmal.com/2026/10/como... #Cloudflare #Clef #DLP #Workers #WorkersAI #Fugadedatos #IA #AI1 likedmyttonAI agent behavior drift analysis with Cloudflare Clef5 pointsPingoru.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 replyersatz_usernameShow HN: SPEV: Open Weight, Omnimodal Decision Model Trained for Turn DetectionWhere Jev and other Jev-style models like OpenAI's Decisions and Cloudflare's Clef are multimodal, supporting text or images in, decision out, SPEV natively supports audio and video inputs. These native capabilities allow SPEV to reason directly from audio without the lossy speech to text…3 points@hochchristoph.bsky.socialI'm currently playing around with Laravel AI SDK & Cloudflare Workers AI using their Clef/Clairic models. Here's what you need if you want to use Clef as a drop-in replacement for Jev: gist.github.com/CHH/caf49e34...1 likemurdersznCube Rule food classifier using Cloudflare Clef classification model1 point · 1 replyPingoru.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 replytrolliedCloudflare Clef Open Weights1 pointSai Prakash5 of the 9 most interesting models of Sep–Oct don't generate text at all: decision models (Cloudflare Clef, Strands Decider, Liquid d1, Laya) return calibrated choices in milliseconds. Plus Mercury 2.5's diffusion speed, Fireworks Ember-1, Reflection Beam, Mistral Large 4 and Kolibri.jedisct1A Jev that can ask Opus for help gives Opus accuracy at 4x lower costI use swival.dev where a decision model (Cloudflare's Clef running locally is free and works great) is used for automatic model selection, but also to complete a task, just like the LLM. It gives confidence scores on the reliability of the LLM output, is used instead of the LLM, even mid-task when…call_user_func📦 meirdick/laravel-cf-workersai v1.3.0 Cloudflare Workers AI provider for the Laravel AI SDK: text, embeddings, reranking, images, speech, transcription, Clef decisions and Clairic typed extraction, with AI Gateway routing. 🔗 https://github.com/meirdick/laravel-cf-workersai

Searched

More from Mindket

See all from Mindket

Huashu Design

alchaincyf · Skill

Turns a one-line request in your AI agent into a finished design: a launch animation, a clickable app prototype, an editable slide deck, an infographic or a se…

New29.4k

Guizang PPT Skill

op7418 · Skill

Skill that makes single-file HTML slide decks, slide illustrations and platform covers in two visual styles, with a presenter mode for rehearsal. For speakers…

New29.8k

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

Similar in Developer

See all in Developer

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

open-code-review

alibaba · Kit

Reviews Git changes with an AI agent that reads files and searches the codebase, then writes comments tied to exact lines. It suits developers who want automat…

New50.7k