jevr
Native R client that sends a state and typed questions to TypeSafe or OpenRouter and returns structured probabilities in R.
Overview
jevr is an R client for Jev and TypeSafe's System One API. You define questions with helpers such as jev_choice and jev_noul, pass them with a state to jev_ask(), and get back structured answers with choices, probabilities, confidence, usage and provider metadata that can be used directly in R. The question names become the answer IDs, so several questions can be sent in one request.
For many states, jev_map() evaluates each independently with bounded HTTP concurrency; the README is careful to note this is not model-level batching. The state can be a string or a named list representing a JSON object. Requests can go directly to TypeSafe or through OpenRouter, with keys read from .Renviron at call time and never included in returned objects. It also supports listing models and versioned question specifications. It is aimed at R users in data analysis and research who want typed classification in their pipelines.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Which team should handle this? | billing · technical · sales |
| Yes / no | Does this request convey urgency? | — |
How it works
- Set TYPESAFE_API_KEY or OPENROUTER_API_KEY in .Renviron
- Define typed questions with jev_choice, jev_noul or score helpers
- Call jev_ask(state, questions) or jev_map(states, questions)
- Use returned choices and probabilities in R code
Strengths
- Idiomatic R interface with named answers
- Provider-independent: TypeSafe or OpenRouter
- Keys never stored in result objects
- R CMD check in CI
Caveats
- Development version on GitHub; CRAN release pending
- jev_map is concurrent requests, not batching
- Requires a provider key
Getting started
pak::pak("simxnherrera/jevr"), set TYPESAFE_API_KEY in .Renviron, then call jev_ask(state, questions).At a glance
- Type
- Library
- Status
- beta
- Language
- R
- Runtime
- R package
- Has code
- yes
- Has tests
- yes
Use cases and integrations
How curated lists describe it
Native R client for typed questions and provider-independent answers through TypeSafe or OpenRouter.
cobanov/awesome-jevA native R client for system one models.
hellogumbo/awesome-jev
Frequently asked questions
Which providers are supported?
TypeSafe directly and OpenRouter.
How do I classify many records?
Use jev_map(), which evaluates each state independently with bounded concurrency.
How does it relate to JevR by mountainmath?
They are separate R clients by different authors.
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.
LibrarybetaRubyUnofficial Go client for TypeSafe System One with generics that bind each choice, score and noul answer to a declared Go type.
ProjectbetaGoPython 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.
LibrarybetaElixir