Skip to content

systemone

Unofficial Go client for TypeSafe System One with generics that bind each choice, score and noul answer to a declared Go type.

ProjectbetaMIT

Overview

systemone by justintout is an unofficial Go client for the TypeSafe System One API. Questions are declared once as typed values, for example a Choice over a Go string type or a Score over an int type, and answers are read back through the same handle, so option and level names are checked by the compiler instead of compared as strings. There is no untyped map to fall back on.

Requests go to TypeSafe by default, but a provider option can switch to Cloudflare's Clef models, which accept the same requests and can also read images. The package includes configurable API key, base URL and model, structured logging per HTTP attempt, and a pattern helper with confidence bands and weighted composites that follow the TypeSafe docs, leaving thresholds to the user. It is aimed at Go developers who want compile-time safety when branching on decision-model output.

What the decision model decides

TypeQuestionAnswers
ChoiceWhich team should handle this message?billing · technical
Yes / noDoes this convey urgency?—

How it works

  1. Declare typed questions with NewChoice, NewScore or NewNoul.
  2. Create a client (reads TYPESAFE_API_KEY) and call Ask with the state.
  3. Read typed answers through each question handle.
  4. Branch on values and apply your own confidence thresholds.

Strengths

  • Compile-time checking of options and levels.
  • Provider switch between TypeSafe Jev and Cloudflare Clef.
  • Image inputs supported for providers that read them.

Caveats

  • Unofficial and not supported by TypeSafe.
  • Depends on a hosted provider and its key.

Getting started

go get github.com/justintout/systemone

At a glance

Type
Project
Status
beta
Language
Go
Runtime
library
Has code
yes
Has tests
yes
License
MIT

Use cases and integrations

How curated lists describe it

Frequently asked questions

What makes this client different?

Answers are bound to Go types you declare, so a typo in an option name fails the build.

Which providers does it support?

TypeSafe's hosted Jev by default, and Cloudflare Clef via a provider option.

Is it official?

No, it is community-maintained; TypeSafe's official SDKs are Python and JavaScript.

Related projects

  • Local service to define, test and publish versioned Jev judgment functions, callable over HTTP by backends and over MCP by agents.

    MCP serverbetaTypeScript
  • Ruby gem that stores Jev Noul, Choice and Score answers about a record's text as ordinary ActiveRecord columns you can query.

    LibrarybetaRuby
  • Python dialect that adds a '~' operator and jev/case blocks so a branch can ask Jev a yes/no, scale or choice question.

    ProjectprototypePython
  • Provider-independent .NET decision engine with a separate TypeSafe Jev provider package mapping Choice, Score and Noul to /v1/systemone.

    LibrarybetaC#
  • Elixir/OTP library treating Jev as a peer process whose answers arrive as messages you pattern match in GenServer clauses.

    LibrarybetaElixir
  • Ruby gem for the Jev API with ask (Noul), choose (Choice) and score (Score) builders and a uniform result accessor.

    LibrarybetaRuby