Topic

TypeSafe AI (Jev) for Pi: Plugins & Comparison

Compare five featured Jev integrations for Pi: tool-call judgments, supervision, tool discovery, skill selection and model routing. Setup and data scope.

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 & purposeMechanismDependencies & keysData sentFailure behaviorEvidence
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.

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.

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.

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.

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.