jev4k
Kotlin Multiplatform DSL and client for Jev that declares Noul, Choice and Score questions as typed properties, including enums.
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
| Type | Question | Answers |
|---|---|---|
| Yes / no | Does this message convey urgency? | — |
| Choice | Which team should handle this message? | — |
| Score | How frustrated is the customer? | Calm, just stating facts · Frustrated but civil · Very angry, strong language |
How it works
- Declare questions in a JevQuery object
- Call JevClient.ask with the query and state
- Read typed results, including enum choices
- 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
Unofficial JVM Kotlin client: Choice, Score, and Noul as a DSL, with answers read back as typed values including enums. Maven Central: `com.pambrose:jev4k`
AnotiaWang/awesome-decision-modelsA Kotlin Multiplatform DSL and client for TypeSafe.
wh000wh000/awesome-jev-liveA Kotlin DSL and client for TypeSafe's Jev model.
hellogumbo/awesome-jevKotlin Multiplatform DSL and client, published to Maven Central.
MrJev/awesome-jev
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 serverproductionTypeScriptAx, a DSPy-style multi-language LLM framework, listed with a native TypeSafe provider for Boolean, Choice, Score and raw Jev questions.
PluginproductionTypeScriptEffect TypeScript library whose @effect/ai-typesafe package maps classify, probability and rating operations to Jev questions.
ProjectproductionTypeScriptPHP monorepo whose Polyglot module adds a TypeSafe driver for typed Noul, Choice and Score decisions alongside LLM inference.
ProjectproductionPHPGo MCP server giving any client typed Jev decisions via OpenRouter or TypeSafe, with validated answers and no paid retries.
MCP serverproductionGoSimon Willison's LLM plugin that adds Jev as a model for yes/no, choice and score questions from the command line.
PluginproductionPython