Skip to content

typesafe-java

Modular JDK 21 client for System One with typed record mapping, a CLI uber-jar for CI, and a testkit module.

Librarybeta

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

TypeQuestionAnswers
Yes / noDoes this convey urgency?yes · no

How it works

  1. Load an API key from file or environment.
  2. Build an EvaluateRequest or annotate a record.
  3. Call evaluate or evaluateTyped.
  4. 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.

    CLIbetaGo
  • Pipe-friendly CLI that lets shell scripts and agents ask Jev typed questions and gate on the answers with exit codes.

    ProjectbetaGo
  • Chinese-documented CLI that turns content into script-ready Jev judgments via noul, choice, score and classify commands.

    CLIbetaPython
  • SysOneScript language, Go System One client, semlint semantic code checks and a VS Code Studio for building with Jev judgments.

    LibrarybetaGo
  • Shell command, jev, that asks Jev noul, choice and score questions about piped text and prints numbers.

    CLIbetaTypeScript
  • Orchvia: 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