Skip to content

Harness Router

MIT-licensed Python tool router for coding agents that keeps obvious calls on a fast path, asks Jev (default typesafe/jev-1.13 via OpenRouter) for genuinely ambiguous choices, and can run bounded MCTS when multi-step consequences matter. Ships a CLI, MCP server and hook integrations.

Stars
21
Language
Python
License
MIT
Published by
Community
Last verified
Oct 2026

About this project

Choose the next tool inside an existing agent loop. Harness Router takes a goal, the current observation, and a set of available tools, then returns a tool choice, confidence, or a fallback to the host planner. It uses Jev through OpenRouter for discrete decisions, caches reusable choices, and supports optional Monte Carlo Tree Search (MCTS) over simulated outcomes.

Quoted from the project's README. Read the full README.

Highlights

  • Default provider model is typesafe/jev-1.13 through OpenRouter; hybrid mode accepts a choice at confidence >= 0.85 and falls back to the planner below 0.60.
  • Registers MCP tools route and route_mcts; route returns next tool, confidence, fallback flag and fallback reason.
  • Hook integrations exist for Codex, Claude Code, ohmypi, Antigravity and DeepSeek Harness; the shared Stop hook has a 15-second default decision age limit.
  • Above 24 tools it can choose a category first and then a tool within that category; decisions and traces are stored under .harness-router/sessions/.
  • Status is alpha, Python 3.11+, MIT; scripts/install_hook.py merges hook configuration and backs up changed files as *.harness-router.bak.

Watch out

Young alpha-stage project (21 stars) under MIT. Routing needs OPENROUTER_API_KEY, and MCTS runs over states and transitions you supply rather than executing real tools.

Questions about this entry

Short answers drawn from the linked project or page.

Reactions & coverage

Posts, threads, and videos about this entry from around the web.

Facebook: Intake Router keeps diagnosis out of the answer space at the front desk.

FacebookClinicnotes

YouTube: Jev explained for routing and judging, with a comparison against LLMs.

Hacker News: Vercel on using Jev for defined decisions and GPT-6 Astra when the job also has to write or use tools.

flashbrew4 pointsTypeSafe AI Jev vs. GPT-6 AstraRead the thread on Hacker News

Hacker News: ASTGL replay chose local Laya routing over hosted Jev on one Mac Studio setup.

Jmeg8r15 pointsDoes an open-weight decision model beat a hosted one? Jev vs. LayaRead the thread on Hacker News

Related terms

Glossary definitions related to this entry.

More Jev resources like this

3.4kGitHub stars
Vercel Labs' Unix-like coding agent CLI written in Zig, shipping a typesafe_permission_reviewer builtin that runs the agent's permission decisions through Jev rather than an LLM call. Model-agnostic and embeddable via libfx and ACP.
Jev Tools & CLIs#community#coding-agents#cli
0GitHub stars
A Pi coding-agent extension that uses Jev to classify each request and route it to one of three configured models. Supports TypeSafe, Cloudflare AI Gateway, Vercel AI Gateway and OpenRouter backends, with doctor checks, shadow mode and an off-by-default setup.
Jev Tools & CLIs#community#coding-agents#routing
20.4kGitHub stars
Rust coding-agent harness (MIT, ~20k stars) whose crates/jcode-base/src/jev.rs is a typed TypeSafe Jev decision transport, used for memory pruning (memory_jev.rs), browser navigation (browser_jev.rs), and voice routing (voice_intent.rs) with separate provider selectors per purpose.
Jev Tools & CLIs#community#rust#coding-agent
13GitHub stars
Permission gate extension for the pi coding agent: deterministic allow/deny rules and protected paths settle clear cases first, then gray-zone tool calls get one structured classify() verdict; Jev is an optional native classifier via TypeSafe direct, OpenRouter, or other gateways, failing closed on error.
Jev Tools & CLIs#community#guardrails#permissions
Claude Code plugin whose UserPromptSubmit hook asks Jev a Choice over /effort levels (low, medium, high, max, unclear) plus a Noul on whether a hands-off request has a fuzzy spec, then offers a one-key switch before Claude starts when the tip clears its confidence threshold.
Jev Tools & CLIs#community#claude-code#plugin
3GitHub stars
Evaluation scripts, MCP tools, and a skill router built to measure where jev-1.13.0 fits in agent harnesses, with raw results under eval/.
Jev Benchmarks & Evaluations#community#evaluation#agents

From the Jev guides

Original write-ups on what this entry is for.

The request shape barely changes across surfaces; the surrounding contract does. When to call the API directly and when a gateway, a Worker binding, or a router entry earns its extra hop.
Jev Tools & CLIs#gateway#vercel#cloudflare
Read article
Taking a decision checkpoint out of Python: what the GGUF and browser WebGPU exports preserve, what they change, and the parity evidence the model cards publish.
Jev Tools & CLIs#open-models#local#onnx
Read article
Jev labels a record that already exists. Code moves, flags, or holds it. How the document, mail, and transfer tools keep the action out of the model.
Jev Tools & CLIs#classification#email#security
Read article
Back to all resources

From the Jev community

Posts from builders shipping with Jev right now.

Follow @typesafeai