Cloudflare: Clef vs Jared Palmer: Kev 4B
A side-by-side comparison of Cloudflare: Clef ($0.67 / 1M tokens) and Jared Palmer: Kev 4B ($0.15 / 1M tokens) using current USD prices and capabilities from the api14 catalog. Both run through the same OpenAI-compatible API.
Specifications
| Cloudflare: Clef | Jared Palmer: Kev 4B | |
|---|---|---|
| Provider | Cloudflare | Jared Palmer |
| Input | $0.67 / 1M tokens | $0.15 / 1M tokens |
| Context window | 65,537 | 8,192 |
| Max output | 58,983 | 7,372 |
| Input | text, image | text |
| Output | decisions | decisions |
| Tool calling | ||
| Structured output | ||
| Reasoning control | ||
| Added | Oct 1, 2026 | Sep 25, 2026 |
Key differences
- Jared Palmer: Kev 4B is 78% cheaper on input tokens.
- Cloudflare: Clef reads 8.0× more context (65,537 tokens).
- A request with 1,000 input and 500 output tokens costs $0.000672 with Cloudflare: Clef and $0.000147 with Jared Palmer: Kev 4B.
In depth
Cloudflare: Clef is a model from Cloudflare, listed in the decisions category. Jared Palmer: Kev 4B is a model from Jared Palmer, also in the decisions category. Both are decision models rather than general chat models, so you should expect them to return a decision as their output instead of free form prose. The two were published close together, with Kev 4B on 2026-09-25 and Clef on 2026-10-01.
The clearest difference between them is context size. Clef accepts up to 65,537 tokens, while Kev 4B accepts up to 8,192 tokens. That is roughly eight times more room in Clef, which matters when the material you want a decision on is long. The input modalities also differ. Clef takes text and images as input, so you can include a screenshot or a scanned page alongside your written instructions. Kev 4B takes text only. On output they match, since both produce decisions. Neither model lists any supported parameters, so there is no tuning surface to work with on either side, and the qualitative comparison gives no meaningful difference for tool use, structured output or reasoning support.
For practical selection, start with the input you actually have. If your decision depends on an image, such as a chart, a form or a page layout, Clef is the only one of the two that accepts it. If the text you are feeding in is long, a full document, a lengthy thread or a large set of records, Clef's larger context window lets you pass it in one request where Kev 4B would force you to trim or split. Kev 4B is the cheaper option on input according to the comparison, so for short text only decisions it is the more economical call. The comparison does not establish a difference in output cost, so do not assume one is cheaper to run on that basis alone. If your prompts are small and purely textual, Kev 4B is a reasonable default; reach for Clef when length or images are part of the problem.
Calling either model through api14 works the same way. The API is OpenAI compatible, so you point your existing client at the gateway, send a request in the usual chat format, and set the model id. To use Clef, set the model id to "cloudflare/clef"; to use Kev 4B, set it to "jaredpalmer/kev-4b". Nothing else in your request structure needs to change, which makes it easy to try one, then the other, on the same input and compare the decisions you get back. Because neither model supports parameters, keep your requests simple and avoid relying on sampling controls.
There are cases where the cheaper, smaller model is still the better pick. If your decision task is narrow and the input is a short piece of text, Kev 4B covers it at a lower input cost, and the extra context room in Clef buys you nothing. Similarly, if you are running many decisions over brief inputs and cost matters more than handling long or visual material, Kev 4B is the sensible choice. Clef becomes the better pick once your input grows past 8,192 tokens or includes an image.
Switch with one string
Both models use the same endpoint and request shape. Change the model value from "cloudflare/clef" to "jaredpalmer/kev-4b" and prompts, streaming and tools keep working.
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api14.com/api/v1",
apiKey: process.env.API14_API_KEY,
});
const result = await client.post("/decisions", { body: {
"model": "jaredpalmer/kev-4b",
"state": "Customer: I was charged twice for my order and want my money back.",
"questions": {
"team": {
"type": "choice",
"instructions": "Which team should handle this message?",
"criteria": {
"billing": "Payments, refunds, invoices",
"support": "Product questions and bugs",
"sales": "Pricing and new purchases"
}
},
"urgent": {
"type": "noul",
"instructions": "Does this need a reply today?",
"criteria": {
"true": "Money, outage or legal risk",
"false": "Can wait"
}
}
}
} });
console.log(result.answers);
More comparisons
- LiquidAI: d1 Latest vs LiquidAI: d1-ultra Latest
- LiquidAI: d1 Latest vs Baseten: Joey 1
- LiquidAI: d1 Latest vs LiquidAI: d1.1
- LiquidAI: d1 Latest vs Morph: Reflex
- LiquidAI: d1-ultra Latest vs Baseten: Joey 1
- LiquidAI: d1-ultra Latest vs LiquidAI: d1.1
- LiquidAI: d1-ultra Latest vs Morph: Reflex
- Baseten: Joey 1 vs LiquidAI: d1.1