← Use cases

Jev and Bifrost

Bifrost is an open-source LLM gateway by Maxim AI: one OpenAI-compatible API in front of many providers. Jev is a different layer — a typed decision model that picks one option and returns it with calibrated confidence. They compose cleanly: let Jev decide which model a request deserves, then let Bifrost forward the prompt to it.

If you found this asking whether Jev is 'available on Bifrost', the useful answer is that Jev isn't a chat model you proxy through a gateway — it's TypeSafe AI's System One decision model with its own hosted endpoint. It doesn't generate text token by token; it emits a typed answer in a single parallel pass: one of your options, a probability for each, and a confidence value, in roughly 70–500ms. So you don't register Jev as a Bifrost provider — you call it directly and use its answer to drive the Bifrost call.

What Bifrost is

Bifrost is an open-source, self-hosted AI gateway written in Go and released under Apache 2.0 by Maxim AI (it's a community/third-party project, not part of TypeSafe or jevtypesafeai). It exposes one OpenAI-compatible API across many providers — OpenAI, Anthropic, AWS Bedrock, Google Vertex AI and Gemini, Azure OpenAI, Groq, Mistral and more — with automatic failover, load balancing, semantic caching, Prometheus metrics and a plugin system. You run it yourself (via npx or Docker) and point the OpenAI SDK at it.

Jev vs Bifrost

BifrostJev
What it isOpen-source LLM gatewayTyped decision model
OutputWhatever the chosen model returnsOne typed option + confidence
Use it forUnifying & forwarding prompts to modelsDeciding, classifying, judging, routing
InterfaceOpenAI-compatible /v1/chat/completionsPOST /api/v1/decide
LatencyThe model's latency~70–500ms
HallucinationThe model's0% structured-output error

Use Jev to route across Bifrost

request Jev choose model Bifrost forwards provider
Jev picks the model in one cheap, calibrated call; Bifrost forwards the actual prompt to whichever provider/model Jev chose.

The two compose. Bifrost already unifies your providers behind one endpoint; Jev decides which of those models a given request should use. Define your candidate models as the options of a choice question, send the incoming request as state, and Jev returns the one to call plus a calibrated confidence you can threshold on — then Bifrost forwards the prompt to exactly that model.

Route in code

// 1) Jev picks the model — one cheap, calibrated call
const jev = await fetch("https://jevtypesafeai.com/api/v1/decide", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    Authorization: `Bearer ${process.env.JEV_KEY}`, // jv_live_...
  },
  body: JSON.stringify({
    state: { request: userPrompt },
    questions: {
      model: {
        type: "choice",
        instructions: "Pick the cheapest model that can handle this request.",
        criteria: {
          "openai/gpt-5.6-mini": "cheap, simple tasks",
          "anthropic/claude-haiku-4.5": "fast, mid-difficulty",
          "openai/gpt-5.6": "hard reasoning",
        },
      },
    },
  }),
}).then((r) => r.json());

// 2) Bifrost forwards the prompt to whatever Jev chose (OpenAI-compatible)
const answer = await fetch("http://localhost:8080/v1/chat/completions", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    model: jev.answers.model.choice,            // ← Jev's typed pick
    messages: [{ role: "user", content: userPrompt }],
  }),
}).then((r) => r.json());

jev.answers.model.choice is locked to the model list you sent, so it's always one of the models Bifrost actually fronts — no parsing, no fallback for a name the model invented. Threshold on jev.answers.model.confidence to default to a safe model when Jev isn't sure. The base URL and model-id format follow your Bifrost config; the Model Router tool shows this routing pattern running live.

FAQ

Is Jev available on Bifrost?

Jev isn't a chat model you proxy through an LLM gateway — it's a typed decision model with its own endpoint (POST /api/v1/decide), so you call it directly. What you can do is use Jev to decide which model Bifrost should forward a given request to.

Should I use Jev or Bifrost?

It's not either/or. Bifrost unifies and forwards prompts to LLM providers; Jev makes typed decisions. Many teams run Jev as the fast, cheap router that chooses which model behind Bifrost to call for each request.

Is Bifrost made by TypeSafe?

No. Bifrost is an independent open-source project by Maxim AI (Go, Apache 2.0, github.com/maximhq/bifrost). Jev is TypeSafe AI's System One decision model. This page is about composing the two, not a vendor relationship.

How does Jev choose a model?

Define the models Bifrost fronts as the options of a choice question, send the incoming request as state, and Jev returns the best-fit model with a calibrated confidence you can threshold on — for a fraction of a cent per decision.

See also: Jev and OpenRouter · Model Router (live) · Jev vs an LLM · Jev for coding agents

Route smarter with Jev

Grab a jv_live_ key and pick the right model behind Bifrost in one typed, calibrated call.

▶ Try Jev freeGet an API key →
Jev and Bifrost — typed routing in front of the LLM gateway · Jev by TypeSafe AI