Skip to content

kojev

Kotlin Multiplatform client for Jev that returns Choice and Score answers as your own enums, with no default thresholds.

LibrarybetaMIT

Overview

kojev is an unofficial Kotlin Multiplatform client for Jev targeting the JVM, Android and iOS. You describe a decision with your own enums, each case carrying a description, and kojev asks Jev and hands the answers back as those enums: a Choice returns your enum value plus every option's probability and a confidence, a Score returns the probability of every level, the most likely level, the probability-weighted mean and a confidence, and a Noul returns just the probability. There is one typed way to read answers and no casts or string keys.

The README explains two common pitfalls: a Noul of 0.5 means 'as likely as not', not 'medium', and a Score's mean can fall between levels or even on a level with zero probability, so kojev provides mean, mode and distribution and leaves the choice to you. It sets no default thresholds, leaving routing to caller code. It works with any Ktor engine, supports offline tests with MockEngine, and is on Maven Central at version 0.1.0, with breaking changes expected between 0.x releases.

What the decision model decides

TypeQuestionAnswers
ChoiceWhat does the customer want?REFUND · TECHNICAL_SUPPORT · GENERAL_INQUIRY
Yes / noIs the customer expressing anger?—

How it works

  1. Define questions over your own enums
  2. Call jev.decide(state) with the questions
  3. Read results as typed enum values and probabilities
  4. Apply your own thresholds and routing

Strengths

  • Compile-time typed answers
  • Multiplatform: JVM, Android and iOS
  • Offline testing with MockEngine
  • Clear guidance on reading Noul and Score

Caveats

  • Unofficial and pre-1.0 with breaking changes expected
  • Requires a TypeSafe key
  • No built-in thresholds

Getting started

implementation("io.github.itisnomatter:kojev:0.1.0") plus a Ktor engine such as ktor-client-cio.

At a glance

Type
Library
Status
beta
Language
Kotlin
Runtime
Kotlin Multiplatform (JVM, Android, iOS)
Has code
yes
Has tests
yes
License
MIT

Use cases and integrations

How curated lists describe it

  • Kotlin ecosystem: Kotlin Multiplatform (JVM, Android, iOS) client for Jev that answers Choice and Score questions as the caller's own enums, with one typed way to read answers, no default thresholds, and offline MockEngine tests.

    yibie/awesome-jev
  • Community client for JVM, Android, and iOS. Choice and Score answers come back as your own enums; one typed way to read them, no default thresholds. Maven Central: `io.github.itisnomatter:kojev:0.1.0`.

    AnotiaWang/awesome-decision-models
  • Kotlin Multiplatform client for Jev that returns your own enum/sealed types instead of string keys.

    logicrw/awesome-jev-projects
  • Kotlin Multiplatform client that answers Choice and Score questions as the caller's own enums; thresholds and routing stay in the caller's code.

    cobanov/awesome-jev
  • Kotlin Multiplatform client for Jev that answers Choice and Score questions as your own enums.

    hellogumbo/awesome-jev

Frequently asked questions

How are answers typed?

Choice and Score answers come back as your own enum values.

Does a Noul of 0.5 mean medium?

No, it means as likely as not; use a Score to measure degree.

Which platforms are supported?

JVM, Android and iOS (arm64, simulator and x64).

Related projects

  • Hack Club's lightweight LLM proxy, listed for adding a Jev forwarding endpoint behind its auth, limits and usage logging.

    MCP serverproductionTypeScript
  • Ax, a DSPy-style multi-language LLM framework, listed with a native TypeSafe provider for Boolean, Choice, Score and raw Jev questions.

    PluginproductionTypeScript
  • Effect TypeScript library whose @effect/ai-typesafe package maps classify, probability and rating operations to Jev questions.

    ProjectproductionTypeScript
  • PHP monorepo whose Polyglot module adds a TypeSafe driver for typed Noul, Choice and Score decisions alongside LLM inference.

    ProjectproductionPHP
  • Go MCP server giving any client typed Jev decisions via OpenRouter or TypeSafe, with validated answers and no paid retries.

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

    PluginproductionPython