systemone
Unofficial Go client for TypeSafe System One with generics that bind each choice, score and noul answer to a declared Go type.
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
| Type | Question | Answers |
|---|---|---|
| Choice | Which team should handle this message? | billing · technical |
| Yes / no | Does this convey urgency? | — |
How it works
- Declare typed questions with NewChoice, NewScore or NewNoul.
- Create a client (reads TYPESAFE_API_KEY) and call Ask with the state.
- Read typed answers through each question handle.
- 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/systemoneAt 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
An unofficial Go module for interacting with Jev and other System One models.
wh000wh000/awesome-jev-live
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 serverbetaTypeScriptRuby gem that stores Jev Noul, Choice and Score answers about a record's text as ordinary ActiveRecord columns you can query.
LibrarybetaRubyPython dialect that adds a '~' operator and jev/case blocks so a branch can ask Jev a yes/no, scale or choice question.
ProjectprototypePythonProvider-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.
LibrarybetaElixirRuby gem for the Jev API with ask (Noul), choose (Choice) and score (Score) builders and a uniform result accessor.
LibrarybetaRuby