kunobi-decision
Rust client for typed decision models across TypeSafe Jev, Cloudflare Clef, Liquid d1, Vercel AI Gateway and OpenRouter.
Overview
kunobi-decision is an unofficial Rust client for typed decision models: TypeSafe Jev, Cloudflare Clef, Liquid d1, Vercel AI Gateway, OpenRouter and any compatible endpoint, each selected with a provider setting and its own key variable. You send a state and typed questions and get back a label, score or probability with the numbers behind it. Builders cover noul, choice (up to 255 options) and score (2 to 10 levels), and the client refuses out-of-range questions before sending.
Helpers normalise scores to 0 to 1 so rubrics of different lengths can be combined, and rank a choice's probabilities. The README emphasises batching: measured against the live API, a 24,000-token state with one question cost 24,288 input tokens and with 200 questions 26,676, with flat latency, so one call with many questions is far cheaper than one call per question. It runs on Tokio with optional blocking, native-tls and testing features, the last providing a scripted fake client for tests. It is published on crates.io.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Yes / no | Any yes/no question | — |
| Choice | Which label fits (up to 255 options)? | — |
| Score | Where does it fall on 2-10 ordered levels? | — |
How it works
- Build a client with a provider and key
- Define noul, choice and score questions
- Send all questions with one state in a single request
- Use typed answers, normalised scores or ranked probabilities
Strengths
- Multi-provider support in one client
- Validation before sending
- Measured evidence on batching costs
- Fake client for tests
Caveats
- Unofficial client
- Provider features may differ
- Requires an async runtime unless using blocking
Getting started
Add kunobi-decision = "0.3" to Cargo.toml and set TYPESAFE_API_KEY (or another provider's key).At a glance
- Type
- Library
- Status
- beta
- Language
- Rust
- Runtime
- Tokio async library
- Has code
- yes
- Has tests
- yes
Use cases and integrations
How curated lists describe it
Rust client for the TypeSafe System One API (Jev).
hellogumbo/awesome-jevRust client, published on crates.io.
MrJev/awesome-jev
Frequently asked questions
Which providers are supported?
TypeSafe, Cloudflare Clef, Liquid d1, Vercel AI Gateway, OpenRouter and compatible endpoints.
Why batch questions?
The state is charged once per call; the README measured 200 questions costing only about 10% more input tokens than one.
Can I test without a key?
Yes, the testing feature provides a scripted fake client.
Related projects
Hack Club's lightweight LLM proxy, listed for adding a Jev forwarding endpoint behind its auth, limits and usage logging.
MCP serverproductionTypeScriptnpm library that rate-limits, spend-caps, caches and redacts every Jev request made in a loop.
LibrarybetaJavaScriptGo gateway that pools multiple TypeSafe accounts behind the native System One API with user keys, quotas and failover.
ServicebetaGoRust CLI for Jev that lints typed question sets offline, then sends them and prints probabilities, labels and scores as JSON.
CLIbetaRustOffline TypeScript token counter and request-cost estimator for Jev 1.13, a port of the reconstructed jevtok encoder.
PluginbetaTypeScriptTask plugin for the new-api LLM gateway that adds a native /v1/systemone endpoint for Jev with auth, routing and token billing.
PluginbetaJavaScript