tinyjevclient
Typed Rust client for TypeSafe's System One API that sends Choice, Score and Noul questions and validates responses.
Overview
tinyjevclient is a Rust library for calling Jev through TypeSafe's System One API, or through OpenRouter and a Tiny Humans endpoint that accept the same format. It sends shared state with independent Choice, Score and Noul questions, checks the provider's response against the original request, and returns latency, attempt count, usage and request metadata alongside the typed answers.
The design keeps policy out of the model: a Choice can only pick caller-supplied values, and callers own thresholds, escalation and side effects. The API key is read from TYPESAFE_API_KEY, redacted from Debug output and never placed in errors. Remote endpoints must use HTTPS. Failed calls keep their classified error and timing so reliability measurements stay complete. The repository is GPL-3.0-only and consumed by pinned git revision.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Which team should handle this ticket? | billing · technical |
How it works
- Build an EvaluationRequest with state and named questions.
- Client sends it to TypeSafe, OpenRouter or Tiny Humans.
- The response is validated against the request.
- Caller applies its own thresholds and actions to the typed answers.
Strengths
- Response validation catches provider mismatches.
- Keys are redacted from logs and errors.
- Records latency, attempts and usage, including for failures.
- Supports several providers with the same request shape.
Caveats
- GPL-3.0-only licence may limit use in proprietary code.
- Not published to crates.io; used by git revision.
- Requires a hosted provider key.
Getting started
TYPESAFE_API_KEY='<key>' cargo run -p tinyjevclient --example basicAt a glance
- Type
- Library
- Status
- beta
- Language
- Rust
- Runtime
- library
- Has code
- yes
- License
- GPL-3.0-only
Use cases and integrations
How curated lists describe it
An integration with jev by typesafe.ai in Rust.
hellogumbo/awesome-jev
Frequently asked questions
Which providers does it support?
TypeSafe's System One API, OpenRouter, and a Tiny Humans OpenRouter endpoint.
Does it make decisions itself?
No, it returns typed answers; thresholds and actions stay in the caller's code.
How is the API key handled?
Read from TYPESAFE_API_KEY or config, redacted from Debug output and never included in errors.
Related projects
Hack Club's lightweight LLM proxy, listed for adding a Jev forwarding endpoint behind its auth, limits and usage logging.
MCP serverproductionTypeScriptAx, a DSPy-style multi-language LLM framework, listed with a native TypeSafe provider for Boolean, Choice, Score and raw Jev questions.
PluginproductionTypeScriptEffect TypeScript library whose @effect/ai-typesafe package maps classify, probability and rating operations to Jev questions.
ProjectproductionTypeScriptPHP monorepo whose Polyglot module adds a TypeSafe driver for typed Noul, Choice and Score decisions alongside LLM inference.
ProjectproductionPHPGo MCP server giving any client typed Jev decisions via OpenRouter or TypeSafe, with validated answers and no paid retries.
MCP serverproductionGoSimon Willison's LLM plugin that adds Jev as a model for yes/no, choice and score questions from the command line.
PluginproductionPython