Skip to content

sabi

Host-agnostic routing layer that picks model, effort and provider per round for coding harnesses from trajectory evidence.

ProxybetaMIT

Overview

Sabi sits between a coding harness and the models it can call. The harness keeps its own loop, tools, permissions and approvals; Sabi reads trajectory evidence such as tool calls, results, failures, context pressure, capabilities and provider state to choose the capacity needed for the next inference round, rather than one model for the whole task. It has two boundaries: inference routing (model and provider per round) and controller handoffs (continue, delegate or spawn).

It installs once at user scope as a controller with hooks, a daemon and a local OpenAI-compatible proxy, works with Claude Code, Codex, OpenCode and Hermes, and also ships as a Command Code mod and an agent skill. The fetched README does not mention Jev or a decision model specifically; it is listed in Jev directories as an adaptive inference scheduler, so the routing judgment is where a decision model would fit. The README is careful to say a hook install is not model switching and a mock pass is not a savings benchmark.

What the decision model decides

TypeQuestionAnswers
ChoiceWhich model, effort and provider should serve the next round?(inferred)—
ChoiceShould the controller continue, delegate or spawn?continue · delegate · spawn

How it works

  1. Harness runs its normal loop
  2. Sabi collects trajectory evidence each round
  3. Choose model, effort and provider for the next inference
  4. Proxy the call or hand off via the controller

Strengths

  • Per-round capacity rather than one model per task
  • Harness keeps its own tools and approvals
  • Falls back to the normal path if Sabi is unavailable

Caveats

  • Jev/decision-model use not stated in the fetched README
  • Savings not benchmarked per its own caveats

Getting started

npm install --global @vizuh/sabi-controller && sabi setup && sabi doctor && sabi serve

At a glance

Type
Proxy
Status
beta
Language
TypeScript
Runtime
Local proxy, hooks and daemon
Has code
yes
Has tests
yes
License
MIT

Use cases and integrations

How curated lists describe it

  • Adaptive inference scheduling for AI agents — per-round model, effort and provider routing for coding harnesses: a Command Code mod or a local OpenAI-compatible proxy.

    logicrw/awesome-jev-projects

Frequently asked questions

What does Sabi decide?

The model, effort and provider for each inference round, and whether to continue, delegate or spawn.

Does it use Jev?

The fetched README does not say; it is listed in Jev directories as a routing layer.

Does it replace my harness?

No; it is a routing layer and the harness keeps its own loop.

Related projects

  • Cost-, cache- and quota-aware LLM router that classifies each turn with a Jev-class model, prices every route, and checks cheap answers.

    ProjectprototypePython
  • Local-first, outcome-aware model router for coding harnesses that picks a capability tier per task with Jev and learns from history.

    ProjectprototypeRust
  • jev-router★ 593

    Per-turn model routing for Claude Code and Codex: wraps the real CLI and lets Jev send simple turns to fast models and hard ones to strong.

    ProxybetaJavaScript
  • TypeScript/Bun launcher that asks Jev which model and reasoning effort each Codex, Claude Code or Pi turn should use.

    ProjectbetaTypeScript
  • Go CLI model router that uses one Jev analysis to recommend a model, harness and effort level, then selects deterministically.

    CLIbetaGo
  • Claude Code and Codex plugin where Jev judges each turn for model routing, delegation, evidence search and compaction.

    ProjectbetaTypeScript