Jev.aitools.fyi

Command Palette

Search for a command to run...

Product profile
JavaScript427 starsUpdated 2026-09-26

jev-router

npm jev-router: jev-claude and jev-codex wrap real CLIs; Jev picks the cheapest sufficient model each fresh user turn with status or commentary lines.

Overview

jev-router (github.com/gargpratyush/jev-router, npm jev-router v0.3.0) launches the real upstream CLIs unchanged. Before the first request of each user turn, it asks TypeSafe Jev which tier fits the prompt, rewrites the model field, and leaves tools, sessions, permissions, and auth with the native binary. jev-claude injects a status line in the model picker; jev-codex adds commentary lines and a temporary Jev Router provider entry. Manual model picks pause routing until you select Jev Router again.

Problem: Claude Code and Codex users on subscription tiers still default every fresh turn to the strongest model, paying latency and quota for tasks a fast tier could finish.

Built for: Developers already logged into Claude Code or OpenAI Codex who want jev-claude or jev-codex wrappers that route each new user turn to the cheapest sufficient model.

First indexed on Jev Directory: 2026-09-26

Creator and team

Name
Pratyush Garg
Handle
@gargpratyush

How Jev is used

Role in the product flow
Per fresh user turn model tier Choice using task complexity, reasoning, tool, and context signals
Primitives
ChoiceScore
State in
User prompt text for the new turn plus catalog metadata from the signed-in CLI (model ids, context token estimates). Tool-loop continuations skip routing.
Decision out
Selected fast, balanced, strong, or optional long tier mapped to account-native model ids; confidence and factors stored for /jev-explain.
  1. Detect start of a fresh user turn in Claude Code or Codex
  2. Send prompt and tier catalog to TypeSafe per src/config.mjs
  3. Rewrite outgoing request model to chosen tier
  4. Surface decision on status line or Codex commentary
  5. Retain last 20 exchanges per session under OS temp for explain skill

jev-router is the product-name answer for Claude Code model routing with Jev: wrap the CLI you already trust, do not replace it. vinilana-jev-gateway is a different problem: it picks which tool to call each turn across Codex, Claude Code, OpenCode, Kilo, Gemini, and Devin, not which model tier. nidhi-singh02-agent-router is the multi-agent desk with Herdr launches and quota policy filters before TypeSafe ranks Cursor, Codex, Claude Code, or OpenCode. miuuyy-astra-ares instead toggles reasoning effort inside a patched Codex binary. jev-router stays inside one CLI and optimizes model tier per turn. Use dbreunig-building-with-jev-skill when teammates need vocabulary for routing questions, and typesafe-ai-skills for maintained install patterns.

Sourced performance claims

  • README: only the user's prompt text is sent to TypeSafe for routing; Jev adds latency on the first request of a turn, not tool-loop continuations.Source: github.com/gargpratyush/jev-router README
  • README documents fail-open behavior: Jev failure never blocks the CLI.Source: github.com/gargpratyush/jev-router README
  • Public GitHub repo gargpratyush/jev-router had about 427 stars and 50 forks when this listing was drafted.Source: GitHub API September 2026

Features and stack

Features

  • Global npm jev-router with jev-claude and jev-codex entry points
  • Bundled /jev-explain and $jev-explain from saved System One request bodies
  • JEV_API_KEY or TYPESAFE_API_KEY via ~/.jev-router.env
  • Preserves custom Claude statusLine unless JEV_NO_STATUSLINE=1
  • Restores prior Claude default model on exit so plain claude stays untouched

Stack

  • Node.js 20.12+
  • Claude Code and OpenAI Codex CLIs
  • TypeSafe System One
  • npm package jev-router

Pricing: MIT open source; TypeSafe bills per routing decision; CLI usage still follows your Anthropic or OpenAI subscription.

FAQ

Do I need separate Anthropic or OpenAI API keys?
README: no API keys required when the corresponding CLI is already logged in with a subscription.
What gets sent to TypeSafe?
README limitations section: only the user prompt text for the routing decision on that turn.
How is this different from vinilana jev-gateway?
jev-router rewrites the model field for Claude Code or Codex per fresh user turn. jev-gateway sits in front of the agent HTTP API and asks Jev which named tool to call. The jev-gateway README says Codex can force a tool while Claude Code only gets a hint.
How is this different from Agent Router?
Agent Router (nidhi-singh02-agent-router) applies quota policy then ranks among four agent CLIs launched via Herdr. jev-router stays inside Claude Code or Codex and picks the cheapest sufficient model per turn.
Where are explain reports stored?
README: up to 20 recent exchanges per session under the OS temp jev-claude directory with mode 600 files and seven-day cleanup.

Related learn guides

Original Jev guidance that pairs with this product pattern.

  • Jev use cases

    The patterns builders actually search for: moderation, routing, triage, RAG verify, and agent gates.

Related products

Hand-picked neighbors with rich profiles or overlapping tags.

Agent toolingTypeScript301
Local proxy for Codex, Claude Code, OpenCode, Kilo, Gemini, and Devin: Jev picks the tool each turn, fails open, listens on 127.0.0.1 only.
agent-toolingcodexclaude-code
Agent toolingTypeScript70
Demo
Pre-release CLI: policy and quota filters, then TypeSafe ranks agent, model, and effort; launches Cursor, Claude Code, Codex, or OpenCode via Herdr.
agent-toolingroutingherdr
Agent toolingJavaScript232
Astra-Ares (github.
agent-toolingcodexrouting
Agent toolingMarkdown131
Agent skill teaching Choice, Score, Noul question design, state shape, and thresholds for jev-1.13 integrations.
agent-toolingskillagents
By Rishit