Clef · decision model · live demo

Decisions about a text
in a tenth of a second

Clef answers typed questions about a text — yes or no with a probability, one option out of several, a point on a scale — and generates nothing else. Change a sentence, and the answer changes while you are still typing.

An open model by Cloudflare (Apache-2.0), served by Heabsy in the European Economic Area.

What does Clef answer while you type?

Pick one of five scenarios, then change the text on the left. Each pause in typing sends the text and the questions to Clef; the answers on the right update in about a tenth of a second. The questions can be edited, and the panel at the bottom shows the same request as curl.

ClefLive
—ms
waiting for the first answer
Try a change:

Scenarios are in English, where Clef is strongest.

Clef's answers

  • What does the customer want?

    pick one
    refund
    —cancel
    —bug
    —how_to
    —sales
    —
  • Is the customer frustrated?

    yes or no
    —
    noyes
  • How soon should a person reply?

    scale · 4
    —
    Within a week
    In two days
    Today
    Within the hour
Tokens read: —
This request: —
A million such requests: —
›Call it from your code
curl https://api.heabsy.com/v1/systemone \
  -H "Authorization: Bearer $HEABSY_API_KEY" \
  -H "Content-Type: application/json" \
  -d @- <<'JSON'
{
  "model": "clef",
  "state": "Subject: Charged twice this month\n\nHi,\n\nI was billed twice for my October plan: €49 on the 1st and €49 again on the 2nd. Please refund the duplicate charge.\n\nThis is the second time this has happened and I'm starting to lose patience.\n\nMarta",
  "questions": {
    "intent": {
      "type": "choice",
      "instructions": "What does the customer want?",
      "criteria": {
        "refund": "Money back for a charge",
        "cancel": "Stop or downgrade the plan",
        "bug": "Report something broken",
        "how_to": "Ask how to do something",
        "sales": "Buy more or upgrade"
      }
    },
    "upset": {
      "type": "noul",
      "instructions": "Is the customer frustrated?"
    },
    "reply_by": {
      "type": "score",
      "instructions": "How soon should a person reply?",
      "criteria": [
        "Within a week",
        "In two days",
        "Today",
        "Within the hour"
      ]
    }
  }
}
JSON
Last response
—

Three kinds of question

A request carries the text (or a JSON state) and any number of named questions. Each question has one of three types, and each answer comes back as probabilities.

Yes or no

noul

One probability that the statement holds: is the customer annoyed, is this a phishing attempt, is the clause one-sided.

One of several

choice

A probability for every option you name, summing to one: which team gets the ticket, which tool the agent calls next.

A point on a scale

score

Ordered options with an expected value: how urgent, how risky, how far a draft is from your standard.

Where does a decision model fit?

Wherever a system has to decide something about a text many times a day and a person should only see the unclear cases. The five scenarios in the demo:

Support triage

Route the message, rate urgency and spot the customer who is about to cancel — before anyone reads it.

Phishing screening

Score an email for impersonation, a lookalike link and pressure to act now, and hold it back above your threshold.

Contract clauses

Flag a one-sided liability cap or an automatic renewal in an incoming clause, with a probability you can set a rule on.

The agent's next tool

Give the agent's state as JSON and ask which tool comes next; when the state changes, the answer changes with it.

Role-play director

Check whether a reply writes the user's lines for them — the guard that keeps an interactive story on track.

Why not just ask a chat model?

Probabilities, not prose

Every allowed option gets a probability from a single forward pass. There is no generated text to parse and no format to break.

You set the threshold

Act automatically above 0.9, send to a person below it. The probability is the setting, not a guess hidden in a sentence.

Fast enough for every keystroke

Around a tenth of a second per answer in the demo, so it fits inside a form, a queue or an agent loop.

Billed on input only

$0.20 per million input tokens. A decision produces no output tokens, so there is nothing else to pay for.

Compatible with Jev and SystemOne

Same request and response format: switching is a change of the model name and the address.

One request, one answer per question

POST /v1/systemone with the model name clef. The answer holds, for each question, the chosen option, its confidence and the probabilities of all options, plus the number of input tokens. Our API accepts text and JSON; images and video, which the open model also reads, are not enabled yet.

curl https://api.heabsy.com/v1/systemone \
  -H "Authorization: Bearer $HEABSY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "clef",
    "state": "Our checkout started returning errors and orders are blocked.",
    "questions": {
      "department": { "type": "choice",
        "instructions": "Which team should handle the message?",
        "criteria": { "billing": "Payments or invoices", "technical": "Bugs or outages" } },
      "urgency": { "type": "score", "criteria": ["Can wait", "This week", "Today"] },
      "outage": { "type": "noul", "instructions": "Is a service down?" }
    }
  }'
Price
$0.20 per 1M input tokens
No output tokens
Where
European Economic Area
Requests are not stored
Model
Clef by Cloudflare
Apache-2.0, model card

Questions about Clef

What is Clef?+
A decision model: you send a text or JSON and typed questions, and it returns a probability for every allowed answer. It does not write text. Clef is an open model published by Cloudflare under the Apache-2.0 licence and post-trained from Qwen3.8-27B; Heabsy serves it through its API.
How fast does Clef answer?+
Around a tenth of a second per request in the live demo, including the way from our servers to the model. Long documents take longer, because the whole input is read in one pass.
What does Clef cost?+
$0.20 per million input tokens. Output tokens are not billed because there are none. A short support ticket with three questions is a few hundred tokens.
Is the text I send to Clef stored?+
No. Requests are processed in memory in the European Economic Area and are not written to logs; the demo on this page logs only the status code, token count and time of each request.
How do I get API access to Clef?+
Clef is enabled per API key. Write to us with your use case and we switch it on for your key; the request format is the same as for Jev and SystemOne, so existing code needs only the model name and the address.
Can Clef run on our own servers?+
Yes. The weights are open under Apache-2.0, so Clef can run inside your network; setting it up and measuring it on your own data is part of an implementation project.

Try Clef on your own decisions

Tell us which decision you want to automate and how often it comes up. We switch Clef on for your key and help you set the first thresholds.