Skip to content

HiRoute

Local-first routing engine for long-running agent tasks that uses a Jev decider to pick a model group per turn.

PluginproductionApache-2.0

Overview

HiRoute, from the Higress group, is a local control and execution layer for long-horizon agent work, shipped as a macOS desktop app and a Linux headless CLI and daemon. It manages model sources, reusable routing plans, agent connections, bounded failover between ordered candidates, and execution records, with modes such as fixed model, smart saving, custom branches and free first.

Decision models judge the task category and return simple-versus-complex probabilities for routes with two model groups, and can assess the previous execution stage. HiRoute supplies the conditions and scoring criteria and applies the user's thresholds. A new decision is made on each user turn, while tool continuations within a turn keep the frozen decision to preserve prompt-cache reuse. Decision models can be connected via Bailian, OpenRouter Jev, TypeSafe or a compatible endpoint, and a jev-decider extension shows how to plug in a custom decision service. The project links an experiment reporting similar quality at lower cost.

What the decision model decides

TypeQuestionAnswers
ChoiceIs the current task simple or complex?simple · complex
ChoiceWhich task category does this turn belong to?(inferred)—
ScoreHow well did the previous execution stage go?(inferred)—

How it works

  1. Agent client sends a new user turn through HiRoute
  2. Decision model judges task category and complexity
  3. HiRoute applies thresholds to choose a model group
  4. Execute with bounded failover across ordered candidates
  5. Record outcomes and stage competence for later routing

Strengths

  • Cheaper models handle simple stages while risky downgrades are blocked
  • Freezing decisions within a turn keeps provider cache reuse
  • Built-in Jev connections need no self-hosted decision service
  • Local execution records make routing choices inspectable

Caveats

  • Desktop app is macOS 15+ only; Linux is headless
  • Cost savings depend on provider and task mix
  • Routing quality depends on user-set thresholds

Getting started

On Linux: `curl -fsSL https://hiroute.ai/install.sh | sh`, then `hiroute service start --output json`; connect a decision model under Models -> Decision models.

At a glance

Type
Plugin
Status
production
Language
Rust, TypeScript
Runtime
Desktop app, CLI and daemon
Has code
yes
Has tests
yes
License
Apache-2.0

Use cases and integrations

How curated lists describe it

  • Local-first routing and coordination engine for long-running agent work, with a `jev-decider` extension that routes on typed decisions.

    MrJev/awesome-jev

Frequently asked questions

What does HiRoute use Jev for?

To judge task category and simple-versus-complex on each user turn, which selects the model group that runs the next stage.

Do I need to host Jev myself?

No. Built-in connections to Bailian, OpenRouter Jev or TypeSafe work without a self-hosted service.

Why not re-route on every tool call?

Keeping the decision frozen within a turn lets the model reuse its growing context prefix in the provider cache.

Related projects

  • Open-source AI gateway for 100+ LLMs that can use Jev to classify requests for complexity routing and to compact tool results.

    ProxyproductionPython
  • Open-source workspace for running and reviewing AI coding agents across devices, with an optional Jev-based automatic model router.

    ProjectproductionTypeScript
  • 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
  • Per-call router for Codex where Jev picks the model and thinking effort for every model call, including tool continuations.

    ProjectbetaPython
  • Model router where Jev classifies each request's task family and code picks the cheapest capable model on a cost Pareto chain.

    ProjectbetaTypeScript
  • Claude Code mod that sets model and effort per turn and subagent from a prompt classifier: Jev by default, or Clef, OpenAI or Ollama.

    Proxybeta