Skip to content

fuzzy-jev

Rust CLI and library that asks Jev typed questions via OpenRouter and combines the probabilities with fuzzy-logic rules into decisions.

CLIbetaMIT

Overview

fuzzy-jev asks Jev typed questions about a piece of text (Choice, Score or Noul) and gets probabilities back, reaching Jev through OpenRouter's decisions endpoint, with a URL option to target other endpoints. Its distinctive part is a rules file: a policy that reads each probability as the degree to which a condition holds and combines them with AND, OR, NOT and hedges into a support score per decision, or into a crisp amount through Mamdani-style fuzzy outputs.

The README is careful that a support score belongs to the policy and is not itself a probability. A --svg flag draws the whole rule base, and a detailed guide documents every table, operator and formula with a hand-worked example. It ships as a terminal command, a Rust library that also compiles to wasm32, a Python package, and an agent skill that teaches coding agents when to ask Jev instead of judging by eye.

What the decision model decides

TypeQuestionAnswers
Yes / nois_urgent: Does this message convey urgency?yes · no
Choicedepartment: Which team should handle this?billing · technical · sales
Scorefrustration: How frustrated is the customer?Calm · Frustrated · Very frustrated

How it works

  1. Ask Jev typed questions via the jev CLI or library
  2. Load a rules.toml policy
  3. Combine probabilities with fuzzy operators into support scores or crisp outputs
  4. Optionally render the rule base as SVG

Strengths

  • Explicit, inspectable decision policy
  • Rust, wasm and Python targets
  • Agent skill included

Caveats

  • Requires an OpenRouter key by default
  • Fuzzy policies need careful design

Getting started

export OPENROUTER_API_KEY=..., then jev 'text' --noul 'is_urgent=Does this message convey urgency?' --choice 'department=...'.

At a glance

Type
CLI
Status
beta
Language
Rust
Runtime
CLI, library (native + wasm32), Python package
Has code
yes
License
MIT

Use cases and integrations

How curated lists describe it

  • Ask Jev typed questions about text and get calibrated probabilities back, then turn them into decisions with fuzzy rules (AND, OR, NOT, hedges, Mamdani outputs) and draw the rule base as SVG. A CLI and a Rust library (native and wasm32).

    logicrw/awesome-jev-projects

Frequently asked questions

What does the rules file do?

Combines Jev probabilities with fuzzy logic into support scores or crisp outputs.

Is the support score a probability?

No, the README says it belongs to the policy.

How is Jev reached?

Through OpenRouter's decisions endpoint by default.

Related projects

  • TypeScript library for typed semantic decisions via Zod schemas or native batches, defaulting to Jev, with confidence-gated policies.

    LibrarybetaTypeScript
  • Simon Willison's LLM plugin that adds Jev as a model for yes/no, choice and score questions from the command line.

    PluginproductionPython
  • Go integration bringing TypeSafe Choice, Score and Noul to Google's adk-go agents, with a typed client, routing agent and callbacks.

    ProjectbetaGo
  • Ruby gem for probabilistic conditionals like Feelings(msg).like?("urgent"), answered by Jev or other decision models.

    ProjectbetaRuby
  • Elixir DSL (Gut.feel) that picks an Elixir value for a subject and question, with a Jev evaluation adapter among LLM options.

    ProjectbetaElixir
  • Unofficial standard-library Go client for Jev with generic typed Choice values and local confidence thresholds.

    ProjectbetaGo