Overview
TypeSafe AI is the company behind Jev, its first public System One model, announced on September 15, 2026 in early access. Jev returns typed decisions and probabilities for questions defined by software. These community Pi extensions use it as a judging service; your selected coding model still writes the code.
This selection was reviewed on September 22, 2026. Start with the decision you want Jev to make, then check the package owner and data boundary. All five entries are source-reviewed; we did not run paid API evaluations.
Compare by use case
Scroll the table horizontally; configuration and sources follow below.
| Resource & purpose | Mechanism | Dependencies & keys | Data sent | Failure behavior | Evidence |
|---|---|---|---|---|---|
| pi-jev (y0usaf) A tool-call gate and output judge for users who want to observe risky actions before enabling confirmation. | Jev scores pending bash/write/edit calls. A separate judge examines bash output for secrets and failure classes; jev_ask exposes typed decisions to the agent. | Install the scoped @y0usaf/pi-jev package. Requires Pi and a TypeSafe key; environment TYPESAFE_API_KEY takes priority over config apiKey and apiKeyFile. | Sends working directory, tool name, recent user text up to 1,200 characters and tool arguments to TypeSafe. Argument strings default to 400 characters each; the output judge adds up to 2,000 characters of bash output. | Missing credentials disable the judges. Timeouts, rate limits and malformed answers allow calls to proceed. In enforce mode, a flagged headless call still only warns unless gate.blockWithoutUI is enabled. | README / installation / data boundaries ↗ |
| pi-warden For supervising a whole coding session, including actions, project rules, repeated failures and completion claims. | Local guards run on installation. With consent, an online judge adds semantic checks and can return a held action to the agent in the default steer mode. | Node 22.19+, Pi ≥0.85.1 <1 and npm pi-warden. TypeSafe judgment uses pi-typesafe and requires /warden enable consent plus a key. OpenRouter is an optional, separately configured backend. | Depending on the guard, sends bounded prompt/history excerpts, plans, commands, paths, file samples, project rules, outputs or completion text. Rule lookup can fall back to README.md, CLAUDE.md or AGENTS.md. Redaction is best effort. | The default failOpen avoids adding a semantic block on judge errors, but built-in pattern checks can still intervene and user deny rules still reject. Without a UI, confirm falls back to steer. | Package requirements ↗ |
| pi-jev (TheoOliveira) For discovering inactive tools, suggesting skills and requesting typed judgments within one Pi session. | A lexical shortlist supplies up to 10 tools or 12 skills to Jev. Tools reaching the 0.65 threshold are added to the active set; skills are recommended. Optional guards, gate checks and orchestration use separate paths. | Node 20+, Pi and TYPESAFE_API_KEY, or ~/.pi/agent/secrets/typesafe_api_key. npm:pi-jev belongs to this author. The optional agent orchestration requires pi-subagents. | Sends the task plus shortlisted tool metadata or skill metadata, including skill paths, to TypeSafe. Explicit evaluations and gate checks send supplied state or diffs. Optional guards send tool arguments/error output; compaction sends history excerpts. | Without a successful tool judgment, no extra tools are activated. Skill fallback returns lexical matches with zero probability. Automatic routing errors leave the turn running; the optional tool guard allows calls on evaluation errors. | README / setup / optional features ↗ |
| pi-jev-skill-picker For a large skill collection whose catalog consumes too much of the coding model’s prompt. | Removes Pi’s generated skill catalog from the effective system prompt. skill_search scores every enabled skill with Jev, then loads the best matches as tool results. skill_load reads named skills locally. | Node 22.6+, Pi, installed skills and Git installation from safzanpirani/pi-jev-skill-picker. Jev uses TYPESAFE_API_KEY or apiKey in the agent directory’s skill-jev.json. | The search task, skill names and descriptions go to TypeSafe. Descriptions default to 1,200 characters each. Skill files are read locally after selection; this ranking request does not send the full conversation or SKILL.md bodies. | No key or failure of every batch triggers lexical matching that returns metadata and paths. If only some batches fail, successful scores remain usable and the result reports the unranked part. | README / Git installation / configuration ↗ |
| pi-jev-router (win4r) For changing coding models at a new task boundary while keeping follow-up turns on the current model. | Jev judges task tier and context sufficiency. Local policy filters configured models by capability, availability, context capacity and estimated cost before deciding whether to switch. | Node 22.19+, Pi ≥0.84.2 <0.87, Git installation and authenticated target models. Jev also requires TYPESAFE_API_KEY and explicit classifier activation. | Sends task text, an optional briefing and flags for images, tool needs, minimum tier, task boundary and prior failure to TypeSafe. It excludes full history, tool outputs, system prompts, image bodies, model catalog and prices. | Uncertain classification can retain a qualified current model. If no eligible model remains, auto mode rejects that input; shadow mode continues on the current model. It does not automatically replay failed work. | README / installation / commands / limitations ↗ |
Installation & operating boundaries
pi-jev (y0usaf)
A tool-call gate and output judge for users who want to observe risky actions before enabling confirmation.
pi install npm:@y0usaf/pi-jev- Mechanism
- Jev scores pending bash/write/edit calls. A separate judge examines bash output for secrets and failure classes; jev_ask exposes typed decisions to the agent.
- Prerequisites
- Install the scoped @y0usaf/pi-jev package. Requires Pi and a TypeSafe key; environment TYPESAFE_API_KEY takes priority over config apiKey and apiKeyFile.
- Data scope
- Sends working directory, tool name, recent user text up to 1,200 characters and tool arguments to TypeSafe. Argument strings default to 400 characters each; the output judge adds up to 2,000 characters of bash output.
- Failure behavior
- Missing credentials disable the judges. Timeouts, rate limits and malformed answers allow calls to proceed. In enforce mode, a flagged headless call still only warns unless gate.blockWithoutUI is enabled.
- Known limitations
- Shadow mode still sends data and incurs Jev usage. Output warnings arrive after execution and do not remove secrets already printed. Author calibration is not proof that the gate catches every unsafe action.
Source / documentation reviewed · npm v0.2.0 · reviewed source 1b493375ef52e6d8f59dfe83e84402b024536625 (2026-09-19)
pi-warden
For supervising a whole coding session, including actions, project rules, repeated failures and completion claims.
pi install npm:pi-warden- Mechanism
- Local guards run on installation. With consent, an online judge adds semantic checks and can return a held action to the agent in the default steer mode.
- Prerequisites
- Node 22.19+, Pi ≥0.85.1 <1 and npm pi-warden. TypeSafe judgment uses pi-typesafe and requires /warden enable consent plus a key. OpenRouter is an optional, separately configured backend.
- Data scope
- Depending on the guard, sends bounded prompt/history excerpts, plans, commands, paths, file samples, project rules, outputs or completion text. Rule lookup can fall back to README.md, CLAUDE.md or AGENTS.md. Redaction is best effort.
- Failure behavior
- The default failOpen avoids adding a semantic block on judge errors, but built-in pattern checks can still intervene and user deny rules still reject. Without a UI, confirm falls back to steer.
- Known limitations
- Trusted project configuration can change thresholds or disable guards; it cannot grant cloud consent or replace the global backend and mode. Model judgment is not a security boundary. Local temporary files may retain original output before compression.
Source / documentation reviewed · npm v0.34.1 · 784104a167bffb94cd0f6f48f3c1f92acf4b4f40 (2026-09-21)
pi-jev (TheoOliveira)
For discovering inactive tools, suggesting skills and requesting typed judgments within one Pi session.
pi install npm:pi-jev- Mechanism
- A lexical shortlist supplies up to 10 tools or 12 skills to Jev. Tools reaching the 0.65 threshold are added to the active set; skills are recommended. Optional guards, gate checks and orchestration use separate paths.
- Prerequisites
- Node 20+, Pi and TYPESAFE_API_KEY, or ~/.pi/agent/secrets/typesafe_api_key. npm:pi-jev belongs to this author. The optional agent orchestration requires pi-subagents.
- Data scope
- Sends the task plus shortlisted tool metadata or skill metadata, including skill paths, to TypeSafe. Explicit evaluations and gate checks send supplied state or diffs. Optional guards send tool arguments/error output; compaction sends history excerpts.
- Failure behavior
- Without a successful tool judgment, no extra tools are activated. Skill fallback returns lexical matches with zero probability. Automatic routing errors leave the turn running; the optional tool guard allows calls on evaluation errors.
- Known limitations
- Lexical shortlists can miss relevant candidates. Auto mode can make separate tool and skill requests, so one turn is not guaranteed to cost one call. Auto-model uses local heuristics. Both this package and y0usaf register /jev.
Source / documentation reviewed · npm v0.5.0 · 549c2bfa249269d0f5590658b5743801c47af369 (2026-09-20)
pi-jev-skill-picker
For a large skill collection whose catalog consumes too much of the coding model’s prompt.
pi install git:github.com/safzanpirani/pi-jev-skill-picker- Mechanism
- Removes Pi’s generated skill catalog from the effective system prompt. skill_search scores every enabled skill with Jev, then loads the best matches as tool results. skill_load reads named skills locally.
- Prerequisites
- Node 22.6+, Pi, installed skills and Git installation from safzanpirani/pi-jev-skill-picker. Jev uses TYPESAFE_API_KEY or apiKey in the agent directory’s skill-jev.json.
- Data scope
- The search task, skill names and descriptions go to TypeSafe. Descriptions default to 1,200 characters each. Skill files are read locally after selection; this ranking request does not send the full conversation or SKILL.md bodies.
- Failure behavior
- No key or failure of every batch triggers lexical matching that returns metadata and paths. If only some batches fail, successful scores remain usable and the result reports the unranked part.
- Known limitations
- Defaults to batches of up to 50 skills, a 1.4/2 score floor and three loaded skills. Search costs grow with the catalog. Loaded instructions still consume the main model’s context; the author’s savings example is not a universal result.
Source / documentation reviewed · v0.1.0 · d6ce0120698d77d0c667e72b578816bed1cb58ef (2026-09-20)
pi-jev-router (win4r)
For changing coding models at a new task boundary while keeping follow-up turns on the current model.
pi install git:github.com/win4r/pi-jev-router- Mechanism
- Jev judges task tier and context sufficiency. Local policy filters configured models by capability, availability, context capacity and estimated cost before deciding whether to switch.
- Prerequisites
- Node 22.19+, Pi ≥0.84.2 <0.87, Git installation and authenticated target models. Jev also requires TYPESAFE_API_KEY and explicit classifier activation.
- Data scope
- Sends task text, an optional briefing and flags for images, tool needs, minimum tier, task boundary and prior failure to TypeSafe. It excludes full history, tool outputs, system prompts, image bodies, model catalog and prices.
- Failure behavior
- Uncertain classification can retain a qualified current model. If no eligible model remains, auto mode rejects that input; shadow mode continues on the current model. It does not automatically replay failed work.
- Known limitations
- Defaults to shadow with Jev networking disabled. Model tiers and capabilities need user configuration. Routing is neither a spending cap nor action authorization; the author has not established lower cost or higher accuracy on real coding tasks.
Source / documentation reviewed · v0.1.0 · 319a04482ab060268afe31ff29d51c77119114cd (2026-09-20)
Choose by the decision you need
Choose y0usaf for tool-call risk judgments and output advice. Warden covers broader session supervision. Theo combines inactive-tool discovery, skill recommendations and explicit judgments. Skill-picker focuses on keeping a large skill catalog out of the system prompt. win4r selects the coding model at task boundaries.
Try one integration first and inspect its decisions before enabling more automation. The two pi-jev packages have different owners and both register /jev. Use the owner-qualified names and verified installation commands on the cards.
API access and installation names
The TypeSafe console and documentation are linked below. Each featured integration accepts TYPESAFE_API_KEY. Set it locally before starting Pi; a coding-model subscription does not supply TypeSafe access. Warden also requires explicit consent before its cloud judge runs. win4r requires classifier.enabled to enable Jev requests.
The unscoped npm package pi-jev is Theo’s; y0usaf publishes @y0usaf/pi-jev. Use the Git installation for win4r: npm:pi-jev-router belongs to a different author. Skill-picker also uses its author’s Git installation.
export TYPESAFE_API_KEY='YOUR_TYPESAFE_API_KEY'y0usaf: observe before enforcing
After installation, /jev reports the key source and mode; /jev last and /jev output show recent judgments. The default gate is shadow. /jev mode enforce enables confirmation for flagged actions in interactive sessions; /jev off disables both judges for the session.
Optional settings belong in ~/.pi/agent/pi-jev.json or project .pi/pi-jev.json, whose values take precedence. Shadow avoids blocking but still calls Jev. The output judge examines a command after it runs, so it cannot prevent execution or undo a leak.
{
"gate": { "mode": "shadow" }
}Warden: local checks and online consent
Installation enables local checks. Run /warden enable to review the data notice and provide or reuse a TypeSafe key. TYPESAFE_API_KEY takes priority over the shared pi-typesafe keystore. /warden status shows the active setup; /warden test can send a billable synthetic request when an online judge is available.
The default mode is steer. User settings live in ~/.pi/agent/pi-warden/config.json; project .pi/pi-warden.json can adjust or disable guards but cannot grant cloud consent or change the global backend and mode. Put explicit project rules in pi-warden.md. Review the data inputs before enabling cloud judgment, since rule lookup can include other repository documents.
Theo: tool discovery and skill recommendations
Use /jev status to inspect configuration. Start with explicit jev_find_tools, jev_find_skill or jev_evaluate calls; /jev auto on enables tool and skill matching before user turns, and /jev auto off disables it. Auto mode is off by default.
Tool and skill matching each has its own Jev request when candidates exist. The source can make two requests in one automatic pass, despite the README’s one-request wording. Keep auto-model separate in your cost estimate: that feature classifies locally. Optional orchestration requires pi-subagents; enable guards or compaction only after reviewing their additional data inputs.
Skill-picker: search the catalog when needed
After installing, use /reload or restart Pi. Ask the agent to use skill_search with a concrete task; it loads matching instructions. skill_load accepts known skill names and makes no Jev request. Manual /skill:name commands remain available.
Optional settings go in ~/.pi/agent/skill-jev.json, or the directory selected by PI_CODING_AGENT_DIR. The example keeps the defaults. Search evaluates every enabled skill across parallel batches. Locally loaded instructions still enter the main model’s context, so compare total provider usage rather than treating local loading as zero-token work.
{
"minScore": 1.4,
"maxSkills": 3,
"shardSize": 50
}win4r: declare models, then inspect routing
After Git installation, restart Pi and run /route init. It creates a starting configuration with the current model; declare your actual model tiers and capabilities before /route reload and /route doctor. The default shadow mode only proposes changes, and the Jev classifier starts disabled.
With TYPESAFE_API_KEY set, /route jev on enables Jev requests. Inspect a proposal with /route preview before choosing /route auto. The first task or /route new can trigger classification; continuation turns keep the model. This router does not create subagents or remove conversation history.
Why these five, as of September 22, 2026
This is an editorial selection based on identifiable Pi packages, distinct uses, recent repository activity and attributable discussion. Cumulative GitHub stars measure attention over time, not search volume or two-day growth. These five are not a ranking of the five hottest projects under one shared metric.
AISuperDomain’s September 20 post links specifically to win4r/pi-jev-router. Theo’s post announces v0.4.0; this page reviews v0.5.0. The popular Ricker and zhouluobo posts discuss Jev more broadly, so their engagement is not credited to a single Pi plugin. Post bookmarks, views and repost counts were not independently verified.
The additional implementations below retain context pruning, focused code checks and another model-routing policy. Their narrower use cases still matter even when they are not in the featured selection.
More implementations
- pi-fast-jev-compaction →
Jev scores old tool calls/results for per-request pruning while preserving session history. Requires a TypeSafe key; install this Git repository because the same-name npm package belongs to another author.
- pi-jev-code →
Single-agent Jev search ranking, pre-edit checks, and task-baseline diff review. Requires Pi 0.85+, Node 20+, and TYPESAFE_API_KEY. Clone the repository and run its install.sh first; replace the path below with that checkout.
- pi-jev-model-router →
Routes prompts across authenticated Pi models using Jev task judgments, budget policy, and cache-aware switching. Requires a TypeSafe key; budget caps change routing rather than stop spending.
Primary sources & verification scope
Source review and runtime testing are distinguished above. Features, performance and savings not marked “Tested” are not measurements by Pi Index.
- TypeSafe AI: Introducing System One Models & Jev (2026-09-15) ↗
- TypeSafe official documentation ↗
- TypeSafe API console ↗
- AISuperDomain: win4r/pi-jev-router announcement (2026-09-20) ↗
- Theo Oliveira: pi-jev v0.4.0 announcement (2026-09-20) ↗
- Ricker: broader Jev engineering discussion (2026-09-20 UTC) ↗
- zhouluobo: broader Jev project list (2026-09-19 UTC) ↗