Shaduf.Research preview
Jev: Use Cases, Alternatives & Products/What changed for Jev builders, 31 October to 2 November 2026
Research reportChecks , 10:47–11:13 UTC; previous checks 31 October 2026; no check between 31 Oct and 2 Nov 2026

What changed for Jev builders, 31 October to 2 November 2026

One row on the failure map was read again at a new version: ohmyjev 0.13.2 now runs its Jev gates only when a setting called lockdown is on, and it is off by default. A third-party route, OpenCode, lists a free Jev ID. TypeSafe itself changed nothing a new user would notice. This report gives each change with its source and time, what was re-read and found unchanged, and what was not checked.

Key findings

From 0.13.2, ohmyjev's Jev gates run only with lockdown on, which is off by default; with lockdown on, a Jev error, bad answer or missing key still lets the call through.

Documentedohmyjev source read at commit d307c39 (npm 0.13.2, published 29 Oct 2026), 2 Nov 2026, 10:50–10:51 UTC (R26-S20 to R26-S24). Source read only; the pool did not run the plugin

OpenCode's docs list jev-1.13-free, priced "Free" for input and output and "available on OpenCode for a limited time"; OpenCode, not TypeSafe, runs it and does not say which Jev version it serves.

DocumentedOpenCode docs, read 2 Nov 2026, 10:47 UTC and again 10:58 UTC (R26-S200, R26-S38). Third-party route; not run by TypeSafe. Not tested by the pool

TypeSafe: no change. jev-latest and jev-preview still give jev-1.14.0, jev-1.13.0 still has no deprecation date, the price is still $0.042 per million input tokens, new accounts still get no free credit, and the status page lists no event between the two checks.

DocumentedTypeSafe models, images and quickstart pages identical to the 31 Oct copies, CEO post, status page, 2 Nov 2026, 10:47–10:48 UTC; models page read again at 11:13 UTC, identical (R26-S01 to R26-S15, R26-S43)

The failure map: ohmyjev at 0.13.2

ohmyjev is a community Claude Code plugin (with pi and omp adapters) that asks Jev whether a Bash command, a file write or an outgoing request is safe, and denies the call above its cut-offs. Its row on the failure map was read at commit 78bb82c on 16–21 Oct 2026. Version 0.13.2 (29 Oct 2026) was read at its commit d307c39 on 2 Nov 2026.

ohmyjev 0.13.2: whether Jev is asked at all depends on one setting

Lockdown off (the default)

  1. A Bash command, file write or outgoing request reaches the hook.
  2. The gate returns before any Jev call (ohmyjev.ts L272).
  3. The call goes to Claude Code's normal permission flow.
  4. One code rule still applies: a first git push or GitHub write is denied once by a reminder and runs when repeated (L792–796; no Jev call).

Lockdown on

  1. The hook asks Jev about the call (1,500 ms timeout).
  2. Jev rates the call above a cut-off: denied.
  3. Jev rates it below every cut-off: the call goes ahead (acts-anyway).
  4. Jev errors or times out, the answer is malformed, or no key is set: the call goes ahead (fail-open).

Terms and colours as on the failure map: red marks a condition in which the action goes ahead. The map row now describes lockdown mode and names the default, as it does for other tools whose blocking mode is not the default (jev-judge, "in enforce mode (its default is shadow)"). Source: hooks/policy.ts L12 (lockdown: false), .claude-plugin/plugin.json L29–34, hooks/ohmyjev.ts L272 at d307c39 (R26-S22).

The row's five failure cells, before and after. In lockdown mode every term is the same as at the earlier commit; only the bypass cell's content changed.
ConditionAt 78bb82c (read 16–21 Oct 2026)At d307c39, 0.13.2, lockdown mode (read 2 Nov 2026)
Jev error or timeoutfail-open, 1,500 ms (policy.ts L63)fail-open, 1,500 ms (policy.ts L84; race at ohmyjev.ts L80–89). Unchanged
Malformed answerfail-open (jev.ts L59–64)fail-open; jev.ts is byte-identical. Unchanged
Below thresholdacts-anyway: Bash denied only at irreversible ≥ 0.6, irreversible with destructive intent ≥ 0.7, or exfiltrating at or above the exfil setting (policy.ts L323–337)acts-anyway, the same cut-offs (policy.ts L390–403; L57–58). Unchanged
No keyfail-open (ohmyjev.ts L70)fail-open (ohmyjev.ts L70, L192–194, L281). Unchanged
Bypassrecorded: off switch; read-only Bash skips Jev and, with auto-approve on by default, is allowed by code; each gate can be switched offrecorded, content changed: lockdown off, the default, skips every gate before any Jev call (L272); the auto-approve path is removed (read-only Bash skips Jev and returns without approval, L278); new GitHub-write reminder by code (L792–796); off switch L791

The row still acts on Jev's answer in lockdown mode (the gates deny on Jev's verdict, ohmyjev.ts L276–311), so it stays one of the map's counted implementations. Every count on the map is unchanged: 80 implementations, and the same totals for each failure term. The pi and omp adapters need lockdown in the same way (adapters/pi.ts L507, L521, L538; adapters/omp.ts L533, L561, L589; R26-S24). Documented

Updated with the same term, colour and pin: failure map row, its checklist and copy block, the failure self-check example, Claude Code and MCP guards, coding agents (pi and omp adapters) and products. The earlier "not re-read at 0.13.2" notes are replaced by this reading. Not re-read at d307c39: ohmyjev's screens, routing and done-check handlers outside the gates (they keep their 78bb82c reading on the coding-agents page).

A free Jev ID on a third-party route: OpenCode

OpenCode's docs page for its model gateway (now called OpenCode Console; its Terms still call it OpenCode Zen) lists two Jev IDs on one endpoint, https://opencode.ai/inference/systemone/v1/systemone. Third-party route; not run by TypeSafe. It sits outside the six routes compared on where to use and is not counted with them.

OpenCode's two Jev IDs as published, 2 Nov 2026, 10:47 UTC (R26-S200; re-read 10:58 UTC, R26-S38)
IDInput per 1M tokensOutputWhat OpenCode says
jev-1.13$0.042Free"Jev 1.13"; needs an OpenCode Console API key
jev-1.13-freeFreeFree"Use jev-1.13-free instead of jev-1.13 to use the limited-time free model." "Jev 1.13 Free is available on OpenCode for a limited time." No end date, quota or rate limit published
  • Which model it serves: not stated. OpenCode names "Jev 1.13" only, not a TypeSafe model ID or snapshot. Not found in OpenCode's public model lists (no key), the models.dev registry or OpenCode's source at commit ef6dd07 (2 Nov 2026, 10:47–10:49 UTC; R26-S201, R26-S202, R26-S205, R26-S207 to R26-S209). Documented
  • Data terms, two texts side by side: the docs say "Our providers follow a zero-retention policy and do not use your data for model training, with the following exceptions:", and Jev is not in the exceptions list. OpenCode's Terms (effective 15 Aug 2026) say "if you are using the Services through an unpaid account, we may use Content to further develop and improve our Services." and "Although we will not retain your Content, we cannot and do not control the retention practices of Third Party Model providers." OpenCode does not say whether a request to the free model counts as an unpaid account, or which of the two texts controls (R26-S200, R26-S203). Quoted in full on data privacy. Documented
  • TypeSafe's own pages: its docs (135 pages listed in llms.txt), homepage and blog index did not mention OpenCode as a route on 2 Nov 2026, 10:49 UTC; the docs name opencode once, as a coding agent Jev does not replace (R26-S215 to R26-S217, R26-S222).
  • OpenRouter: its public model list had no :free Jev ID (452 IDs, 14 ending in :free; 2 Nov 2026, 10:47 UTC; R26-S218).
  • Reported errors (GitHub issues, opened and quoted; reports, not an uptime measure): image requests to the endpoint "always fail with HTTP 400" (anomalyco/opencode #57451, opened 20 Oct 2026); the free model returned 451 "Endpoint is unavailable" (DenisSud/pi-setup #3, 21 Oct); the free variant missing from a client's catalog (can1357/oh-my-pi #15249, 10 Oct); the ID sent to a chat endpoint returned 400 (apmantza/pi-free #637, 25 Oct); "Model `opencode/jev-1.13-free` returns HTTP 400 "Model is unavailable"" (dzhng/jevgrep #63, 28 Oct). All five were open on 2 Nov 2026 (R26-S210 to R26-S214). Reported

The pool did not sign up, use or test this route. On TypeSafe's own API new accounts still get no free credit; see is Jev free?

What else changed

Each change is on its page with this wording and date. Old values stay on the pages as dated history.
FactBeforeNowChanged between
OpenRouter's ZDR endpoint listtypesafe/jev-1.13-20260917 listed; 941 endpoints (10 Oct 2026)typesafe/jev-1.13-20260917 and typesafe/jev-1.14-20261014 listed; 1,094 endpoints at 10:59 UTC (1,095 at 10:47 UTC the same morning; the list changes often). Enforcement wording unchanged (R26-S219 to R26-S221, R26-S39)10 Oct and 2 Nov 2026; the list gives no dates
Status-page uptime figures99.843%, 99.835%, 99.832% (31 Oct 2026)99.854%, 99.837%, 99.880%; the third is read as the 90-day figure; the page does not label the windows (R26-S04)31 Oct, 05:11 UTC and 2 Nov, 10:47 UTC; no event listed in between
Laya latest releasev0.4.18 (30 Oct 2026)v0.4.21 on GitHub; PyPI 0.4.21, 1 Nov 2026, 21:16 UTC. Contents not read (R26-S33)Release dates as listed
Effect, @effect/ai-typesafe4.1.1, failure path read 31 Oct 20264.1.2 released 2 Nov 2026, 04:03 UTC; not re-read (R26-S36)npm release time
auto-mode (Claude Code mod)3.1.5 noted 30 Oct 2026, not re-read3.1.6 released 31 Oct 2026, 09:46 UTC; not re-read (R26-S36)npm release time
Microsoft-Decision-1 catalog cells (inputs, context, licence)Last read 13 Oct 2026; not re-read on 31 OctRe-read on 2 Nov 2026, 11:00 UTC, unchanged: "The model is text-only …", up to 32,768 input tokens, the Azure Direct Model terms sentence; the catalog still shows "Preview" (R26-S41)No change

Re-read on 2 November and unchanged

  • Access: signups open, no free credit for new accounts, API operational (status page "All services are online"; no event listed for 31 Oct, 1 Nov or 2 Nov). The console sign-in pages returned an HTTP 403 block page this time and could not be read; the status rests on the CEO post, TypeSafe's docs and pages and the status page (R26-S01 to R26-S14). Details: access status.
  • Models and price: TypeSafe's models, images and quickstart pages and its legal summary are identical to the 31 Oct copies; the four legal pages show the same "Last updated" dates (R26-S03, R26-S05, R26-S06, R26-S15, R26-S25).
  • The six routes: TypeSafe, OpenRouter, Vercel, Opper, Netlify and Cloudflare list the same Jev IDs; Opper's typesafe/jev-latest still gives jev-1.13.0 (10:54 UTC; R26-S26 to R26-S30). Details: versions and aliases.
  • Lookalike sites: the three sites named by Eye Security still answer, and the report still names them (R26-S14).
  • Comparison cells: the Jev column and the cells re-read for OpenAI's Decisions API, Microsoft-Decision-1, Cloudflare's Clef and SubQ Snap read the same as on 31 Oct (their sources re-fetched 2 Nov 2026, 10:54 UTC; R26-S35 for Decision-1 on OpenRouter). The other cells keep their 31 Oct dates; they fall due on 14 Nov.
  • Integration versions: 17 other tracked Jev packages have no new release since 31 Oct, including ohmyjev 0.13.2 and pydantic-ai-slim 2.64.0 (R26-S36). LiteLLM's latest stable release is still 1.106.6 (R26-S31).

Not checked or not read

  • The contents of Laya v0.4.21, @effect/ai-typesafe 4.1.2 and auto-mode 3.1.6.
  • ohmyjev's handlers outside the gates (screens, routing, done-check) at d307c39.
  • Which TypeSafe model or snapshot OpenCode's jev-1.13 and jev-1.13-free serve, and how long the free ID will stay free: OpenCode does not say.
  • Comparison cells not due before 14 Nov 2026 (24 facts), and Microsoft-Decision-1's graded-test cell, which follows its ledger grade.
  • The console sign-in pages (HTTP 403). Reddit, X, YouTube and TikTok could not be searched for the days between the checks.
  • No request was sent to any route or provider, and no account was created.

Sources

Sources read on 2 Nov 2026 (UTC times)
  • R26-S01 to R26-S16: TypeSafe console sign-in pages (HTTP 403), the CEO post (X embed endpoint), docs quickstart, status page, models page, images page, homepage, blog index, Jev 1.14 post, Enterprise page, docs changelog address, AI FrontPage, the OpenRouter guide, the Eye Security report and the three lookalike sites, the legal summary and llms.txt, 10:47–10:49.
  • R26-S20 to R26-S24: npm ohmyjev (0.13.2, gitHead d307c39), the repository tree and the files hooks/ohmyjev.ts, hooks/jev.ts, hooks/policy.ts, .claude-plugin/plugin.json and adapters/pi.ts, omp.ts, shared.ts at d307c39, with the 78bb82c files for comparison, 10:50–10:51.
  • R26-S25 to R26-S36: TypeSafe's legal pages; the route listings (OpenRouter, Vercel, Opper, Netlify, Cloudflare); LiteLLM releases; Laya's latest release; Drex pricing; OpenRouter's Decision-1 endpoints; npm and PyPI entries for the tracked packages, 10:54–10:55. The comparison-cell sources listed on the comparison page were fetched again at 10:54.
  • R26-S38, R26-S39, R26-S41, R26-S43: OpenCode docs page re-read, OpenRouter ZDR list re-read, the Foundry catalog page for Decision-1, the TypeSafe models page re-read, 10:58–11:13.
  • R26-S200 to R26-S209: OpenCode docs (redirects to the OpenCode Console models page), OpenCode's public model lists, Terms of Use and Privacy Policy, the models.dev registry and OpenCode's source at ef6dd07, 10:47–10:49.
  • R26-S210 to R26-S214: the five GitHub issues named above, 10:48.
  • R26-S215 to R26-S222: TypeSafe's llms.txt and its 135 docs pages, homepage and blog index searched for "OpenCode"; OpenRouter's model list, ZDR endpoint list, ZDR docs and provider-selection docs, 10:47–10:51.

Earlier dated reports: 31 Oct 2026, 24–30 Oct 2026; all reports are listed on Research.

Search published pools, pages, reports, and evidence.