Awesome Jev / TypeSafe

Awesome Live site Checks License: MIT All Contributors

Jev gives your software a typed judgment. Your code stays in charge.

A community field guide to TypeSafe's Jev: see one documented call, try live projects, copy a starter, and inspect independent tests.

Try a live build Shape a decision Explore projects Add your project Star on GitHub

Saved Jev quick-start response showing the support message before Choice, Score, and Noul. The documented values appear in the table below.

A visual map of Jev: context enters a typed judgment, then application code decides what happens. Explore the directory.

One call, three typed answers. TypeSafe’s documented support-ticket example shows the saved jev-1.13.0 response below. This is a published example, not a live model call. Application code still decides when to route or escalate.

Input or answer Documented value
State Hi, I've been trying to connect my Stripe account for 3 days and the integration keeps failing. I'm losing sales. Please help ASAP.
Choice technical · 0.85 selected probability
Score 1 on a 0–2 frustration rubric (Frustrated but civil)
Noul 1.0 urgency probability

See Jev at work

Open a live build from a preview, or read its listing first.

Recently curated

Three additions from 22 September 2026. These are places to explore, not a ranking or endorsement; the full listings include limitations and source links.

I want to… Go here
Understand the idea in 2 minutes See where Jev fits, try the policy threshold, then read the introduction and the three primitives
Make my first typed call Copy the runnable example, shape your own question, then explore the official SDKs
See it work live Explore the featured builds, then browse more applications
Test the claims Read what independent tests found, inspect JevBench’s cross-model results, then browse independent evaluations and TypeSafe’s own evals

Download the JSON directory · Use with a coding agent · Suggest a resource · Follow updates · Join the builder community

Independent community project. This repository is not affiliated with or endorsed by TypeSafe AI. Community entries are labeled by section; inclusion is not a claim that TypeSafe has reviewed or approved them.

Last updated: 2026-09-22. Links and project descriptions change; please report a stale entry.

Contents

Start here

Choose the right tool

In a support workflow, separate the work before choosing a model. This is a practical design rule based on the TypeSafe introduction linked above, not a performance claim:

What the step needs Use Example
Apply an explicit rule to known fields Code Check an account flag or enforce a routing threshold.
Judge messy context with a bounded answer Jev Choose billing, technical, or other for a ticket, with probabilities.
Produce prose or work through an open-ended task Text LLM Draft the reply after the route is chosen.

Code still validates the answer and owns the action. Measure Jev’s error and abstention rates on your own cases before automating a consequential step.

One state can answer several focused questions in the same request. Pick the answer shape your code can use directly:

Question shape Use it for What comes back
Noul A clear yes/no claim, such as “Does this message request a refund?” A number from 0 to 1: the probability of yes.
Choice Selecting from named options, such as billing, technical, or sales. The selected option, a probability for every option, and confidence.
Score An ordered rubric, such as calm, concerned, or angry. A position on your rubric, probabilities over its levels, and confidence.

Ask independent questions together. Set thresholds, fallback behavior, and side effects in application code.

Choose where to call Jev

The typed decision is the common idea; the client, model name, authentication, and billing depend on the route. Start with the direct API below if you want TypeSafe’s documented systemOne contract, or follow the platform guide for an app already running there.

Route Documented way in Check before using it
TypeSafe direct Official JavaScript or Python SDK with a TypeSafe API key. The runnable example below uses this route and sends its state to TypeSafe.
Cloudflare Workers AI Run typesafe/jev with a Workers AI binding or Cloudflare API call. Use Cloudflare’s request shape and credentials; its model page labels Jev as a third-party model.
Netlify AI Gateway Use the official TypeSafe JavaScript SDK from a Netlify Function or Edge Function; the gateway supplies its environment configuration when enabled. Follow Netlify’s plan and key-override rules. This is a server-side path, not a browser key.
Vercel AI Gateway AI SDK’s experimental evaluate with typesafe-ai/jev. Its Boolean question maps to Jev’s Noul; the AI SDK interface differs from systemOne.
OpenRouter OpenRouter’s decisions API with typesafe/jev-1.13 or its latest-model route. Use an OpenRouter key and its decisions request shape; do not send these questions to a chat-completions API.

These are documented access paths, not equivalent SDKs or claims about price, latency, or reliability. Check the linked provider page before deploying because availability and terms change.

Make your first decision

Pick JavaScript or Python. Both examples send a synthetic support ticket to TypeSafe’s API and return a Choice and a Noul. Jev returns typed answers; the 0.9 routing rule is ordinary application code. It is an illustrative threshold, not a measured or recommended operating point.

JavaScript

Install the official JavaScript SDK with npm install @typesafe-ai/sdk (Node.js 20+), set TYPESAFE_API_KEY in your environment, save this as first-decision.mjs, then run node first-decision.mjs:

import { choice, noul, TypeSafeClient } from '@typesafe-ai/sdk';

const { answers } = await new TypeSafeClient().systemOne({
  state: { ticket: 'I was charged twice. Please refund the extra payment.' },
  questions: {
    team: choice('Which team should handle this ticket?', {
      billing: 'Payments and refunds',
      technical: 'Bugs and integrations',
      other: 'None of the above',
    }),
    refund: noul('Does the customer explicitly request a refund?'),
  },
});

const team = answers.team.choice;
const probability = answers.team.probabilities[team];
const action = team !== 'other' && probability >= 0.9
  ? `route to ${team}` : 'send to review';
console.log({ team, probability, refundProbability: answers.refund.noul, action });

Python

Install the official Python SDK with python3 -m pip install typesafe-sdk (Python 3.10+), set TYPESAFE_API_KEY in your environment, save this as first_decision.py, then run python3 first_decision.py:

from typesafe_sdk import Choice, Noul, TypeSafeClient

with TypeSafeClient() as client:
    result = client.system_one(
        state={"ticket": "I was charged twice. Please refund the extra payment."},
        questions={
            "team": Choice(
                instructions="Which team should handle this ticket?",
                criteria={
                    "billing": "Payments and refunds",
                    "technical": "Bugs and integrations",
                    "other": "None of the above",
                },
            ),
            "refund": Noul(instructions="Does the customer explicitly request a refund?"),
        },
    )

team = result.choices["team"].choice
probability = result.choices["team"].probabilities[team]
action = f"route to {team}" if team != "other" and probability >= 0.9 else "send to review"
print({
    "team": team,
    "probability": probability,
    "refund_probability": result.nouls["refund"].noul,
    "action": action,
})

Shape a typed question

Start with one state and a question whose answer your code can use. This synthetic support report can be asked as a Choice, Noul, or Score. On the live site, edit the fields and copy a JavaScript SDK call. The designer runs in your browser without making a model request; running the copied code later sends the state to TypeSafe.

Design input Synthetic example
State text The PDF upload fails with a 500 error. I need it before today's deadline.
Choice question Which team should handle this report?
Choice options technical=Failures and integrations; support=Account and usage help; other=Neither team
Noul question Does the message explicitly mention a deadline?
Score question How much does the reported issue block the user's work?
Score levels Cosmetic; Workaround available; Blocks the task

Keep the state short, describe the options so they do not overlap, and include a no-match option when the task allows it. Choose thresholds and actions only after measuring your own labelled cases.

Try a policy threshold

The documented support-ticket example above selects technical with probability 0.85. In this illustrative policy, a ticket routes automatically only when the selected probability reaches the application’s threshold. At 0.90, it goes to review; at 0.80, it routes to technical. The model answer stays the same. These thresholds are teaching examples, not measured operating points or safety guarantees.

Policy input Example value
Selected team technical
Selected probability 0.85
Starting threshold 0.90

On the live site, move the threshold to see which action the application takes. A real threshold needs evaluation on your own labelled cases, with a review path for uncertainty.

Before you trust a decision

Independent studies make five failure modes concrete. Each result below belongs to the cited task, dataset, and model run; use it to design a test for your own workflow.

Decision you want to make What was measured What to test before shipping
Answer or abstain? In a KoBBQ audit, Jev chose “unknown” for 95% of 300 ambiguous items when that option was available. With that gold answer removed from the options, accuracy on those items was necessarily 0%; 79% of answers picked the dataset’s stereotype. Add an explicit no-match or review option where evidence can be missing. Measure wrong forced answers and needless abstentions on your own ambiguous cases.
Route to a fallback? Janus tested 500 items each from Banking77 and Web of Science. Its tuned Jev-to-DeepSeek cascade improved Banking77 accuracy over either model alone, but on Web of Science matched Jev alone at 47% higher cost. Label representative cases, price both legs, and choose a threshold on a held-out split. Confirm that the fallback actually fixes errors where Jev is uncertain.
Certify a routing threshold? In jev-certify’s CLINC150 study, a 5% bound on silently misrouted incoming queries held on 400 in-scope examples: 84.75% were auto-routed with 2.25% loss per incoming query. A separate scope gate missed its 5% target by 3.6× when out-of-scope prevalence rose. Calibrate on traffic that represents deployment, monitor the mix, and distinguish loss per incoming query from error among routed queries. The bound does not cover a shifted population.
Sort by probability? An ordering study passed six ranking gates on 360 topic-membership rows, then failed four of six on 306 human-graded shopping pairs. On the first corpus, 53 rows tied at 0.99; batching 40 rows changed a passing ranking gate into a failure. Measure pairwise order, ties at the cutoff, and the exact request shape on your relevance labels. A good classifier is not automatically a good sort key.
Approve an agent action? In a 111-case action-gate study, Jev matched 100 case labels and Claude matched 102; each had one unsafe allow. Contract and policy mapping was the largest single source of wrong decisions for both. Test the answer-to-action mapping as well as the model. Escalate consequential tool families with deterministic policy even when a semantic answer seems confident.

These are independent, study-specific observations, not a leaderboard or a guarantee for another task. Read the linked protocols, labels, and limitations before carrying a number into a decision policy.

For a comparison across decision models, JevBench’s method publishes its scoring code, frozen tasks, adapters, and result artifacts. Its composite score combines accuracy, calibration, speed, and cost; some latency and hosting costs are estimates, and a held-out set is still sent to the evaluated services. Read the per-task outcomes and assumptions before treating a rank as evidence for your workflow.

Official resources

Product and documentation

SDKs and developer tools

Concepts, patterns, and cookbooks

Research and writing

Community and updates

Community projects

Community projects are independent unless their repository says otherwise. Read the code, licenses, data-handling notes, and evaluation caveats before using them in a consequential system.

Browse a focused page: Client libraries and integrations · Agent and developer tooling · Browser agents · Applications and workflows · Games and robotics · Evaluations and independent research · Showcases and field notes.

On the live directory, save up to eight projects to a reading list and share its link. The selection uses the entries below; no account is needed.

Client libraries and integrations

Build with Jev from a language, framework, gateway, or data system you already use. Check each community client’s maturity and data handling before adopting it.

Agent and developer tooling

These tools use typed judgments to search, route, review, or gate developer work. Inspect each tool’s action policy, fallback behavior, and request costs.

Browser agents

Browser projects put Jev between page observations and bounded actions or use it to classify page content. Check permissions and human review points before automating clicks.

Applications and workflows

End-user apps and workflow prototypes show where typed decisions can help with real tasks. Their source availability, evaluation depth, and data paths vary.

Games and robotics

Playable and physical-world experiments pair Jev judgments with deterministic environments. A successful run demonstrates that task and setup, not general reliability.

Evaluations and independent research

Independent tests and open decision-model alternatives provide methods and results to inspect. Compare task data, calibration, and costs before carrying a result into your own workflow.

Showcases and field notes

Short demos and builder reports show what was tried and observed. Treat reported numbers as starting points for your own tests.

Contributing

Contributions are welcome. Please read the contribution guide before opening a pull request.

The short version: submit a public, directly useful resource; describe what it actually does; put it in one category; and include limitations when a result depends on a private dataset, a single run, or an unverified claim.

To propose one, edit only the README entry and open a pull request. CI validates the derived directory and images; a maintainer commits them before merging.

Listed here? Your project page has a direct link, a README badge, and a downloadable image for sharing your entry.

Build a listing

Use the live listing builder to draft one entry and find its alphabetical position. It runs in your browser and does not submit anything. Copy the result into README.md on GitHub, then open a pull request. If you cannot send a pull request, suggest the resource in an issue.

Contributors

Thanks to everyone who has improved the list. The portraits below are generated from All Contributors; contribution types reflect work in this repository.


AbdelStark

💻 📖

AboveColin

📖

Alibi Serikbay

📖

Basit Mustafa

📖

Dearest

📖

DevMortimer

📖

FirasSX914

📖

Fox-Islam

📖

Friedjof

📖

GenieRobot

📖

Hawxy

📖

IRONICBo

📖

Jevals.com

🤔

Lasse-numerous

📖

Lu Chong

📖

Mohammed Nabil

📖

Nasrallah-AL

📖

Nedomas

📖

Nyarlathoteppppp

📖

Paulo Silas Severo de Souza

📖

Robert Soriano

📖

Ruban

📖

Sachin Sharma

📖

SergeAx

📖

Stas Kulesh

📖

WiktorB2004

📖

Xinyao

📖

abhixhek

📖

antiyro

📖

anxkhn

📖

aowang-ai

📖

brokermr810

📖

carldaws

📖

chy4pro

📖

copyboy

📖

dependabot

💻

devx-opensource

📖

emreozyoruk

📖

eugeniughelbur

📖

fatwang2

📖

formulahendry

📖

forvela

📖

gaborishka

📖

garretpremo

📖

ikkun1222

📖

jesset

📖

jonesmelton

📖

jyatesdotdev

📖

kylemclaren

📖

kyu1204

📖

ljedrz

📖

luantak

📖

lukstei

📖

marandaneto

📖

nshkrdotcom

📖

roadtogideon222-byte

📖

rubenroques

📖

rupeshpoojary9

📖

rustyconover

📖

scienthoon

📖

sensahin

📖

sethkimmel3

📖

shiftynick

📖

shimo4228

📖

shitianfang

📖

ticofab

📖

ufec

📖

unikcc

📖

valentynkit

📖

yodablocks

📖

yuyang2230

📖

To add someone or update their contribution type, see the contribution guide.

License

MIT. Individual projects and linked content retain their own licenses and terms.

README-DERIVED DIRECTORY

Find a Jev project

Loading projects…

Every listing comes from the README. Inclusion is not an endorsement.