mrkeyoor.com_
Tue 01 Sept 17:44 UTC
AI Toolsevaluationupdated 28 Aug 2026

router review

Weave Router is a proxy that chooses an AI model for each API request made by a coding agent or application. It accepts Anthropic, OpenAI, and Gemini request formats, scores the action locally, then sends it to an enabled provider while recording the routing decision.

+1,013 / 3dstars / 7d
Verdict

Our Router run installed 325 packages, built in 87 seconds, and passed 106 of 106 tests, making the codebase a credible trial for teams already buying from several model providers. Use it when per-action model choice is worth operating Postgres, credential encryption, and another decision layer in the request path. Do not adopt its hosted-service restrictions or savings display by accident: review Elastic License 2.0 and validate the cost arithmetic against your own bills.

We ran it

Lab card: what happened when we ran routerScreenshot of router (weaveos.com/products/router)
Install✓ · 46s325 packages
Build✓ · 87s
Tests✓ · 49s106 passed · 0 failed of 106 (go test)
Repo1473 files~195,742 lines of source · 24.6 MB · 8 CI workflows · Dockerfile

Answers from our run

Does router build from source?

Dependencies installed in 46 seconds (325 packages), and the build succeeded in 87 seconds. We cloned commit 092f53d into a clean Debian container with 3 CPUs and no project-specific setup.

Do router's tests pass?

Yes: 106 of 106 passed when we ran the project's own test command (go test). Some failures need services or credentials a bare container does not have.

Who should not use router?

Companies planning to resell the router as a managed service: Elastic License 2.0 forbids offering a substantial set of its features to third parties as a hosted service.

What are the alternatives to router?

LiteLLM, Portkey AI Gateway, TensorZero. Our Router run installed 325 packages, built in 87 seconds, and passed 106 of 106 tests, making the codebase a credible trial for teams already buying from several model providers.

Setup4/5106 tests passed; full self-hosting still needs Postgres and keys
Docs5/5Specific client, endpoint, secret, and deployment guidance
Community4/52,232 stars with same-day issue and pull request activity
Maturity3/5Healthy test run, but no GitHub release and cost display drift

Discussed on

  1. hnShow HN: Smart model routing directly in Claude, Codex and Cursor216 points
  2. hnShow HN: Optimal model routing directly in Claude, Codex and Cursor4 points

Who it’s for

Teams paying several model providers and willing to let a policy choose per request.
Claude Code, Codex, opencode, or pi users who want routing without changing each client's request format.
Platform engineers who need one gateway for provider keys, routing logs, spend controls, and OTLP traces.
Self-hosters comfortable operating Go, Postgres, Docker Compose, and provider credentials.

Who it’s NOT for

Companies planning to resell the router as a managed service: Elastic License 2.0 forbids offering a substantial set of its features to third parties as a hosted service.
Self-hosters who will not configure secret encryption: the configuration guide says BYOK keys are stored unencrypted when EXTERNAL_KEY_ENCRYPTION_KEY is unset.
Teams that cannot run Postgres or protect an admin dashboard: the local stack stores keys and usage in Postgres, and the documented dashboard password defaults to admin.
Buyers who need cost-savings displays to be exact before rollout: open issue 1003 says generated clients use the wrong cache-read multiplier for 17 of 69 catalog models.

Setup reality

Our sandbox installed 325 packages in 46 seconds, built the router in 87 seconds, and ran all 106 Go tests in 49 seconds with 106 passing and 0 failing. The commit 092f53d checkout contained 1,473 files, about 195,742 source lines, and 24.6 MB before dependencies.

The hosted installer needs Node 18 or newer and obtains a router key. Self-hosting needs at least one upstream provider key, Postgres, and a router key; Docker Compose supplies the local stack. BYOK encryption needs an external AES-256-GCM keyset, and multi-replica deployments also need Pub/Sub.

The README asks for Go 1.25 or newer for source work, while our supplied sandbox image was golang:1.24-bookworm and completed the measured commands. The repository has a Dockerfile, compose file, and 8 CI workflows. The optional HMM policy adds a sidecar and Google API key; it is not the default local strategy.

The router chooses a model for every upstream request

Weave Router sits between an agent and the model providers it may call. It accepts Anthropic Messages, OpenAI Chat Completions, and Gemini requests, then selects a model and provider for each action. In the project's terminology, an action is one upstream API request, which may be only one step inside a longer agent turn. This finer grain lets a cheap model handle routine steps while another handles work the scorer classifies differently.

The default selector is an in-process ONNX embedder and cluster scorer. An optional HMM policy runs as a companion service, but make up-hmm and a Google API key are needed to use it locally. Clients may force a model, disable routing, or restrict the enabled catalog. Those controls matter because the router is making a quality and cost decision repeatedly, not choosing one model for an entire 20-message session.

Claude Code and Codex need configuration changes, not rewrites

The npm installer knows how to configure Claude Code, Codex, opencode, and pi. Applications can instead point an existing Anthropic, OpenAI, or Gemini client at the proxy. Native endpoints cover messages, chat completions, Gemini generation, token counting, model lists, and a route-only request that returns the decision without calling a provider. That last endpoint is useful for examining policy behavior before paying for completions.

The installer requires Node 18 or newer, and several client paths also require jq. Codex receives a managed provider block plus native skills for forcing a model and sending feedback. Claude Code gets slash commands and a status line. Cursor is labeled early beta in the README, with a warning that performance may be weaker, so Cursor-heavy teams should treat compatibility as an experiment rather than assume parity.

What happened when we ran it

Our sandbox installed 325 packages in 46 seconds and built commit 092f53d in 87 seconds. The checkout held 1,473 files, about 195,742 source lines, and 24.6 MB before installation. It includes a Dockerfile, compose file, and 8 CI workflows. Those are good repository mechanics for a gateway that touches credentials and rewrites requests across provider APIs.

The Go test step completed in 49 seconds. All 106 tests passed, with 0 failures out of 106. This was a fresh unprivileged Debian container with 3 CPUs, 8 GB of RAM, no secrets, and the supplied golang:1.24-bookworm image. The run did not call Anthropic, OpenAI, Gemini, or OpenRouter, so it proves the measured build and test path, not routing quality or provider compatibility under live traffic.

Self-hosting keeps the scorer local but still calls providers

The local Compose path starts the router, Postgres, dashboard, and scorer. Prompts travel from that router to the configured upstream provider, while the README says they do not pass through WorkWeave. One OpenRouter key is the recommended baseline, although direct Anthropic, OpenAI, Gemini, and compatible gateways are configurable. A router key authenticates clients separately from those upstream keys, and confusing the 2 credential types will produce a broken or unsafe setup.

Production configuration needs more care than make full-setup. Postgres holds installations, router keys, encrypted provider keys, and usage records. Multi-replica deployments need Pub/Sub for cache invalidation. The dashboard password defaults to admin, with a startup warning, and BYOK values remain unencrypted if EXTERNAL_KEY_ENCRYPTION_KEY is absent. Content capture for telemetry is off by default; enabling it changes the privacy review because prompts and outputs can enter OTLP logs.

Elastic License 2.0 blocks a competing hosted service

The source is available, but the license is not Apache, MIT, or another permissive choice. Elastic License 2.0 permits use, copying, distribution, and modification under stated conditions. It forbids providing third parties a hosted or managed service that exposes a substantial set of the software's features. An internal gateway is a different case from reselling Router as part of your own public AI platform, and the latter needs legal review.

GitHub's API reported no latest release for the repository. That absence is not evidence that development stopped: the last push was August 28, 2026, and current pull requests were changing provider translation, billing, client savings, and routing controls. GitHub listed 2,232 stars and 135 combined issues and pull requests. The code is moving quickly, so pinning a commit or image matters even without a formal release tag.

The savings display needs billing-data verification

Open issue 1003 identifies a concrete accounting mismatch. Generated client artifacts apply a fixed cache-read multiplier of 0.1, while the server catalog holds different multipliers for 17 of 69 models. The report says this can understate or overstate displayed savings depending on the route. An open pull request in the recent activity aims to use catalog multipliers, but a pending change is not a shipped guarantee.

That issue does not show that model selection or provider billing is wrong. It shows that the user-facing comparison can drift from the catalog, which is enough to change an adoption plan. Export routing decisions, compare provider invoices, and calculate savings outside the status line during a pilot. If the proxy improves spend without hurting task completion, it earns a place; if you only need one provider and one model, it adds 1 more service to debug.

Alternatives

ProjectWhat it isPick it when
LiteLLM gh↗A broad OpenAI-compatible gateway covering many model providers and budget controls.pick this instead when provider breadth and an established proxy interface matter more than WorkWeave's per-action scorer.
Portkey AI GatewayAn AI gateway focused on routing, fallbacks, guardrails, and observability.pick this instead when gateway policy and failure handling matter more than a bundled local model selector.
TensorZeroAn inference gateway and optimization system built around measured model behavior.pick this instead when experiments and feedback-driven optimization are central to your model choice.

What people are saying

  1. [github-trending] workweave/router
  2. [velocity-scout] remix-run/react-router
  3. [velocity-scout] wang2122/sprix-sage-router
  4. [producthunt] Router by Ramp
  5. [techcrunch-ai] Ramp launches its own AI model router, called Router
  6. [velocity-scout] anonrig/router

Sources

  1. Weave Router README
  2. Router configuration reference
  3. Elastic License 2.0 text in the repository
  4. Issue 1003: cache-read multiplier drift in savings displays

More ai tools reviews

claudian · SkillSpector · robin · mjlab · MoGe · awesome-design-md · the whole board →