typesafe-java
Modular JDK 21 client for System One with typed record mapping, a CLI uber-jar for CI, and a testkit module.
Overview
typesafe-java is a Java 21 client for the TypeSafe API, published to Maven Central with CI and SonarCloud analysis. You send any JSON value as state with Noul, Choice and Score questions and get typed answers. A mapping module lets you declare a record with annotated fields, such as @Noul on a double, and receive a populated record without maps or casts.
The project is modular by design. A CLI module builds a self-contained uber-jar so checks can run in Jenkins jobs, shell scripts or other CI without writing Java, and a dedicated testkit module helps unit-test callers. The API key is read from ~/.typesafe.apikey or TYPESAFE_API_KEY. A tutorial and how-to docs are included.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Yes / no | Does this convey urgency? | yes · no |
How it works
- Load an API key from file or environment.
- Build an EvaluateRequest or annotate a record.
- Call evaluate or evaluateTyped.
- Use the typed answers, or run checks from the CLI jar in CI.
Strengths
- Typed record mapping removes casts.
- CLI uber-jar for pipelines.
- Testkit module for unit tests.
Caveats
- Requires JDK 21+.
- Needs a TypeSafe key.
Getting started
Add io.github.dfa1.typesafe-java:typesafe-java-core from Maven Central, or download the typesafe-java-cli 'all' jar.At a glance
- Type
- Library
- Status
- beta
- Language
- Java
- Runtime
- JVM library, CLI jar
- Has code
- yes
- Has tests
- yes
Use cases and integrations
How curated lists describe it
JDK 21+ client, modular by design, with a dedicated testkit module for unit testing callers.
cobanov/awesome-jev
Frequently asked questions
Can I use it without writing Java?
Yes, the CLI uber-jar runs checks from scripts and CI.
How do I avoid casts?
Use the mapping module with an annotated record.
Where does it read the key?
From ~/.typesafe.apikey or TYPESAFE_API_KEY.
Related projects
Go CLI for Jev that returns numbers to shell scripts, with threshold exit codes and a weighted multi-dimension rank command.
CLIbetaGoPipe-friendly CLI that lets shell scripts and agents ask Jev typed questions and gate on the answers with exit codes.
ProjectbetaGoChinese-documented CLI that turns content into script-ready Jev judgments via noul, choice, score and classify commands.
CLIbetaPythonSysOneScript language, Go System One client, semlint semantic code checks and a VS Code Studio for building with Jev judgments.
LibrarybetaGoShell command, jev, that asks Jev noul, choice and score questions about piped text and prints numbers.
CLIbetaTypeScriptOrchvia: local engine with TS and Python SDKs that runs Claude Code and Codex agents as a team, routing tasks by code and typed decisions.
LibrarybetaTypeScript