Jev vs Gemini FlashOne of them can see. The other reads text.
Gemini Flash takes images, video and audio. Jev takes text and nothing else: TypeSafe's docs say string, JSON object, or array of text values, with no image, audio or video input. For moderating a social feed full of screenshots, memes and video that one line settles the choice before any benchmark gets involved.
Last updated: September 2026
Jev decides on text. An LLM writes. OpenTweet publishes.
The short answer
If any input is an image, use Gemini Flash. Jev cannot read it. Not badly, not approximately. A post whose entire payload is a screenshot of a slur arrives at Jev as an empty string. The docs say text only, so there is nothing for it to read; treat any answer it returns on an empty state as meaningless.
If every input is text, Jev is the cheaper and more directly usable answer: about 2 cents per 1,000 decisions at 500 input tokens each, a probability distribution over the options you declared rather than a sentence to parse, and an answer that cannot fall outside your schema. Most teams end up routing on the presence of media instead of choosing once.
Jev vs Gemini Flash, side by side
| Measure | Jev (jev-1.13.0) | Gemini Flash |
|---|---|---|
| Image input | No. Text only | Yes |
| Video and audio input | No | Yes |
| Accepted state | String, JSON object, or array of text values | Text plus media |
| Generates text | No. None at all | Yes |
| Returns a probability distribution | Yes, over your declared answer space | Not from the structured response |
| Schema conformance | Guaranteed. It cannot emit a value outside the schema | Good with structured output, not guaranteed |
| Input rate card | $0.042 per 1M tokens, output unmetered | Not verified here. Google publishes it and it moves |
| Cost per 1,000 text decisions at 500 tokens | About $0.02 | Not verified here |
| Latency | 0.4s median on TypeSafe's workflow eval, 70ms to 500ms end to end per TypeSafe | Not on TypeSafe's eval board, so no comparable number |
| Accuracy head-to-head | None published | None published |
| Decoding | Parallel. Every declared question answered in one pass | Autoregressive, token by token |
| Context budget | 64k per request, 32k for state plus longest question | Far larger |
| Non-English input | Handled, but docs say English is primary and others are not equal | Broad language support |
| Access | Waitlist, or OpenRouter, Vercel AI Gateway, Cloudflare | Public API |
Jev modality, limits and pricing from docs.typesafe.ai/models. Latency from evals.typesafe.ai, TypeSafe's own eval, which lists no Gemini model. Capability rows reflect what each vendor's own structured-output documentation returns, Google's for the Gemini column, not a test we ran. "Not verified here" means we did not have a first party source on 18 September 2026, not that the number is bad.
Why text only is a real disqualifier on social
This is not a checkbox on a feature grid. It is most of the content on some feeds.
On X, Bluesky and LinkedIn a large share of the posts that need moderating carry their meaning in the image: a screenshot of a conversation, a meme with the text baked into the picture, a chart, a quote card, a video with a caption that says nothing. A text-only model sees the caption and nothing else, and the caption is often the least informative part of the post.
The community extensions built on Jev in the days after launch hit this immediately and handled it the same way. The x-jev extension, which scores every post in an X timeline, says plainly in its README that image-only and video-only posts are skipped. It also notes that long posts get clipped behind X's show more, so truncated content gets flagged on partial text. Those are the two honest failure modes of a text-only classifier on a social feed, and both were found within a week.
None of that makes Jev a bad choice. It makes it a first pass. Route on the presence of media: text-only posts go to Jev at two cents a thousand, posts with media go to a multimodal model, and you pay the higher price only on the fraction that needs it.
How to split the work
Send to Jev
- Text-only posts and replies, which is the bulk of a reply stream.
- The same small judgment over every item: spam, rage bait, engagement bait, worth answering.
- Anything where you want a number to threshold on, so low confidence can route to a human.
- Batches of questions about one document, answered in a single parallel pass.
- Volumes where cost per call decides whether the filter runs on everything or on a sample.
Send to Gemini Flash
- Any post with an image, a video or audio attached.
- Screenshots and quote cards, where the text lives inside the picture.
- Anything that has to produce written output: a reply, a summary, a rewrite.
- Work that needs counting, arithmetic or date ordering, all documented Jev weaknesses.
- Inputs that are mostly not in English, where the Jev docs say quality is not equal.
The router, in about fifteen lines
One branch on whether the post carries media. Everything text-only takes the cheap path.
import { TypeSafeClient, noul } from "@typesafe-ai/sdk";
const jev = new TypeSafeClient();
export async function screen(post: { text: string; media: string[] }) {
if (post.media.length > 0) {
return multimodalScreen(post); // Gemini Flash, or any model that can see
}
const { answers } = await jev.systemOne({
state: { post_text: post.text },
questions: {
spam: noul("This post is spam, a scam, or an unsolicited promotion."),
rage_bait: noul("This post is written to provoke an angry reply rather than to inform."),
toxic: noul("This text contains slurs, harassment, or abuse aimed at a person or group."),
},
});
// A Noul returns only a float from 0 to 1. There is no confidence field on it.
return { hide: answers.toxic.noul > 0.8 || answers.spam.noul > 0.9 };
}Set the thresholds on your own data
TypeSafe refuses to publish universal numbers and says to start conservative, test with your own data and adjust. The docs suggest above 0.9 for high stakes automatic action and below about 0.5 for routing to a human, and they note different actions in the same system should be gated at different levels. Blurring a post is cheap to get wrong. Suspending an account is not.A live example, on text
The free will it go viral scorer sends a draft post to Jev with seven questions attached: one Score for how far the post travels against five rubric levels, three Scores for hook, clarity and specificity, and three Nouls for AI slop, engagement bait and toxicity. TypeSafe publishes a 70ms to 500ms end-to-end range, and the seven questions fit in roughly 430 input tokens, which is about $0.000018 at the published $0.042 per million. The page shows the confidence band because a distribution is what Jev actually returns.
It scores text, because that is what Jev reads. If your draft leans on an image to land, the score is measuring the caption. That is worth knowing before you act on it, and it is the same limitation this whole page is about. More on the three primitives at Choice, Score and Noul, and the hard numbers at Jev limits.
Frequently asked questions
Does Jev support images?
No. TypeSafe's model documentation says text only: a string, a JSON object, or an array of text values. There is no image, audio or video input. The launch blog mentions images as a possible future capability and nothing more, so anything that depends on seeing a picture needs a different model today.
Jev vs Gemini Flash, which should I use?
Gemini Flash if any input is an image, a video or audio, because Jev cannot read those at all. Jev if every input is text and you are making the same small judgment over a lot of items, because it returns a probability over your declared answer space, which TypeSafe describes as calibrated, a claim we have not verified, and costs about 2 cents per 1,000 decisions at 500 input tokens each. In a social moderation pipeline the usual answer is both: Jev on the text, a multimodal model on the posts that carry media.
Is there a Jev vs Gemini Flash benchmark?
Not a serious one. TypeSafe's eval board at evals.typesafe.ai lists Jev, Terra, Sol, Opus 5, Sonnet 5, Luna, two DeepSeek models and Haiku 4.5, and no Gemini model, so there is no head-to-head accuracy number to quote. The only public comparison we could find is a community repository, gemanor/jev-code-review-benchmark, which puts Jev, Gemini Flash and Claude Fable against Python code review rules. It is a repository, not a reviewed benchmark, and we have not verified which model scored what.
What share of social posts have images in them?
We are not going to invent a number for that, and you should not trust a page that does. Measure your own feed before you choose. The practical test is simple: sample 200 posts from the accounts you actually moderate and count how many carry meaning that is only in the image. If it is a handful, run Jev on the text and accept the gap. If it is a third, a text-only model is the wrong tool.
Can I run Jev on the alt text instead of the image?
You can, and it is a reasonable fallback, but be honest about what it buys. Alt text is missing on most posts, and where it exists it is written by the poster, which means the person posting the thing you want to catch also wrote the description of it. The x-jev extension takes the simpler route and skips image-only and video-only posts entirely rather than guessing.
What does Jev do that Gemini Flash does not?
It returns a probability distribution over the options you declared, as a first class part of the response: Choice gives every option a probability plus a confidence, Score gives a probability weighted mean, Noul gives a single float from 0 to 1. It also cannot return a value outside your schema, and it answers many declared questions in one parallel pass rather than generating each answer token by token. An LLM can be asked to state a confidence, but the number it writes is generated text.
Keep exploring
The rest of the Jev cluster, and the API that publishes what survives the filter.
What Jev is, in one page
System One, the three primitives, and the limits TypeSafe documents itself.
Jev alternatives
Seven options compared on cost per 1,000 decisions, latency and what each one returns.
Jev vs GPT
The four-workflow benchmark table, and what each model cannot do.
Jev vs Claude Haiku
Judgment only against judgment plus text, with cost math on 100,000 replies.
Will it go viral, free scorer
A live Jev scorer. Seven questions, no signup.
Content moderation with Jev
Category lists, thresholds and what a first-pass filter costs at platform scale.
Filter with the cheap model. Publish with one call.
Whichever model reads the post, one POST to /api/v1/posts reaches X, Bluesky and LinkedIn. From $11.99 a month.
- 7-day free trial
- No X developer account needed
- REST API and MCP server on every plan