Skip to content

jev4k

Kotlin Multiplatform DSL and client for Jev that declares Noul, Choice and Score questions as typed properties, including enums.

LibrarybetaApache-2.0

Overview

jev4k is an unofficial Kotlin Multiplatform DSL and client for TypeSafe's Jev, targeting the JVM, Apple platforms, Linux, Windows and Node.js, and published to Maven Central. You declare a query object whose properties are questions, such as an urgency Noul, a team Choice over an enum and a frustration Score with described levels, send them in one request with a state, and read results back as typed values that can drive an exhaustive when expression.

The README covers defining questions, state, reading results, client configuration, embedding in an application, errors, testing code that uses jev4k, and guidance on writing good questions. It has CI, code coverage, ktlint and a documentation website, and is Apache-2.0 licensed. It is aimed at Kotlin developers who want compile-time structure around Jev calls.

What the decision model decides

TypeQuestionAnswers
Yes / noDoes this message convey urgency?—
ChoiceWhich team should handle this message?—
ScoreHow frustrated is the customer?Calm, just stating facts · Frustrated but civil · Very angry, strong language

How it works

  1. Declare questions in a JevQuery object
  2. Call JevClient.ask with the query and state
  3. Read typed results, including enum choices
  4. Branch on results in Kotlin code

Strengths

  • Multiplatform support
  • Enum-valued choices with exhaustive handling
  • CI, coverage and docs site
  • Published on Maven Central

Caveats

  • Unofficial client
  • Requires a TypeSafe key

Getting started

Add com.pambrose.jev4k:jev4k from Maven Central and set your TypeSafe key.

At a glance

Type
Library
Status
beta
Language
Kotlin
Runtime
Kotlin Multiplatform
Has code
yes
Has tests
yes
License
Apache-2.0

Use cases and integrations

How curated lists describe it

Frequently asked questions

Which platforms are supported?

JVM, Apple platforms, Linux, Windows and Node.js.

Can a Choice map to a Kotlin enum?

Yes, enum-valued choices are read back as typed values.

Where is it published?

Maven Central.

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