Skip to main content
This guide covers four ways of using Jev, TypeSafe’s System One model, namely: use our SDK, call our API, use our agent skill, or try our browser-based Playground. Get an API key from the TypeSafe console.

The minimum you should know to use Jev effectively

Each call to Jev takes a state (as a simple string or structured object) and a set of questions, and returns one answer per question: Jev answers three types of question, called primitives:

Vibe it: the Agent Skill

The fastest way to add Jev to your project is to have your coding agent write the integration with the TypeSafe skill installed.
  1. Install the TypeSafe skill using the Claude Code plugin or npx skills add typesafe-ai/skills --skill typesafe-ai. You can also read SKILL.md on GitHub.
Run these two commands in your terminal:
  1. Tell your coding agent to use the TypeSafe skill as you build.
Coding agent prompt
We suggest that you generate and store your TypeSafe API key in an environment variable (e.g. TYPESAFE_API_KEY).
The Agent Skill page has more example prompts and fixes for common issues, such as an agent that isn’t using the skill.

Code it: your first request

See how to call Jev from your favourite programming language. The Python, JavaScript, and TypeScript examples use our SDKs; the Bash example calls the API directly. Create a working directory and set your API key. These setup commands use Bash on macOS, Linux, or Windows with WSL:
The example sends a customer support ticket and asks Jev three questions in one request: which team should handle it, how frustrated the customer sounds, and whether the issue is urgent.
Requires Python 3.10 or later. Choose a package manager to install the SDK:
With pip installed, create a virtual environment and add the SDK:
Save as route_ticket.py:
Run it with either installation method:
Jev evaluates each question against the same state and returns answers under the IDs you supplied. choice is the team label, score is the position on the three-level frustration rubric (0–2), and noul is the probability of urgency (0–1). The Python, JavaScript, and TypeScript examples print those three values:
Example output
The Bash example prints the raw JSON response on one line. The Raw Response in the next section shows it formatted, with each answer’s confidence and probabilities. These are example results; values can change between Jev releases. The client SDKs pages cover installing the Python and JavaScript SDKs, typed answers, and their retry policy.

Call it: the API

All four code examples in the previous section use this endpoint. The Bash tab above shows the complete HTTP request without an SDK.
The API Reference lists every request field, question type, and answer type.

Try it: the Playground

The Playground runs Jev in the browser: paste a state, add questions, and read the answers without writing code.
  1. Open the Playground and log in.
  2. Paste any text as the state.
Sample state
  1. Add a question. Try a Noul question: "Does this message express urgency?"
  1. Add more questions. Mix Noul, Choice, and Score questions in one call and see all results at once.

Next Steps

Composing primitives into larger systems takes some practice, even if you’re used to LLMs. The Machine Learning Primer explains why Jev returns calibrated probabilities instead of generated text, and how that changes the way you build with it. We’d also suggest taking a look at Primitives and the Use Case Map.
  1. Errors and retries
  2. Parallel Questions