Skip to content
MrJev

Discern

Semantic control flow for Effect: patterns, policies and routable procedures built on typed decisions, where an uncertain answer is a branch you must handle.

View on GitHub →

Checked, not fully reviewed

Patterns, policies and procedures over Effect's Decision and DecisionModel, where 'maybe' is a branch. Checked, not fully reviewed: its suite.

Good for

  • Effect users who want semantic matching to look like Effect's own Match
  • Keeping the provider swappable: Jev through @effect/ai-typesafe, or any DecisionModel

Watch out for

  • Built on Effect v4's Decision API; not useful outside Effect

Tested Oct 4, 2026 at 95c67914b206 · Node 24 in Docker; its build and 64 tests

Checked, not fully reviewed. We built it and ran its tests — 64 pass. No Jev calls.

Effect v4 ships Decision and DecisionModel, a provider-neutral vocabulary for semantic judgments. Discern sits on top as the semantic counterpart to Match: you write patterns over the evidence a DecisionModel returns, attach policies, and register procedures that can be routed to by meaning. The point it makes well is that an uncertain answer is a case to handle — “maybe” is a branch in the type, not a probability you forget to check.

Discern makes no network call of its own. The provider is a Layer; the README’s example wires TypeSafe’s Jev through @effect/ai-typesafe, and anything else that implements DecisionModel drops in the same way, which is what makes it testable without a key: the suite runs against a scripted model, so a policy’s branches can be exercised without spending a request.

MIT, 15 stars. Narrow by design — useful exactly to people already writing Effect.

See how it compares with other tools in Best Jev tools, tested hands-on.

Review updated Oct 4, 2026. Numbers quoted from the project are its author's own; we don't publish our own measurements of Jev.

More in Libraries & Integrations

agentrun

★ 423▲ 13

Parcha-ai/agentrun

A workflow DSL for agents with a Jev package for the steps that are decisions rather than generation.

TypeScript

switch

★ 420▲ 170

osolmaz/switch

TypeScript framework for decision-model harnesses: your program offers a short list of next steps and the model picks one at a time until it can answer, with chess, wikirace and rubric-judge examples run on Jev.

TypeScript

Ten Levels of Jev

★ 264▲ 10

disler/ten-levels-of-jev

Thirty worked uses arranged in ten levels, from one if statement to an agent that reaches for Jev itself, with a video walkthrough.

TypeScriptReviewed

Get new Jev projects every week

New Jev releases, pricing changes, and the best new projects, once a week. No spam; unsubscribe anytime.

Powered by Buttondown. See our privacy policy.