mrkeyoor.com_
Mon 02 Nov 22:50 UTC
AI Toolsevaluationupdated 27 Oct 2026

router review

Weave Router is a Go proxy that selects a model for each upstream API request from an agent or application. Its README documents Anthropic Messages, OpenAI Chat Completions, and Gemini native formats, with an in-process cluster scorer for the default self-hosted stack. The Apache-2.0 release line begins with router-v0.2.24; earlier releases retain their original licenses.

+12stars / 7d
Verdict

Weave Router merits a controlled evaluation when choosing among models is a concrete requirement. Our September 18, 2026 run at 76a9bbb recorded successful dependency, build, and Go test steps, with 134 successful package results rather than 134 individual tests. It did not establish a working installed CLI, live routing quality, latency, or savings. Current Apache-2.0 releases permit hosted services subject to their terms; the old blanket hosted-resale exclusion does not describe that release line.

We ran it

Lab card: what happened when we ran routerScreenshot of router (weaveos.com/products/router)
Install✓ · 70s335 packages
Build✓ · 124s
Tests✓ · 107s134 passed · 0 failed of 134 (go test)
Repo2097 files~292,642 lines of source · 30.2 MB · 10 CI workflows · Dockerfile

Answers from our run

Does router build from source?

Dependencies installed in 70 seconds (335 packages), and the build succeeded in 124 seconds. We cloned commit 76a9bbb into a clean Debian container with 3 CPUs and no project-specific setup.

Do router's tests pass?

Yes. The project's own test command finished in 107 seconds and reported 134 passed, 0 failed (go test).

Who should not use router?

Teams requiring measured routing quality, latency, or savings before adoption: our recorded run does not establish those outcomes.

What are the alternatives to router?

LiteLLM, Portkey AI Gateway. Weave Router merits a controlled evaluation when choosing among models is a concrete requirement.

Setup3/5Client setup is documented, but self-hosting adds Postgres and configuration. The September 18 run at 76a9bbb did not verify an installed CLI or working deployment.
Docs4/5Detailed supplied guides cover clients, platform requirements, deployment modes, and license boundaries. The npm guide provides qualifications absent from the shorter README.
Community2/5Supplied issue discussions demonstrate contributor and reporter participation, but do not establish adoption, response-time reliability, or support quality.
Maturity2/5Historical setup, build, and test steps exited successfully. Current deployment behavior, routing quality, and release-specific accounting and cache behavior remain unverified here.

Who it’s for

Teams using several model providers that can evaluate routing choices against their own tasks.
Claude Code, Codex, OpenCode, or pi users who want a configured connection to a hosted or self-hosted router.
Platform engineers prepared to operate Postgres, manage provider credentials, and reconcile usage accounting.
Operators who can distinguish the current release documentation from our recorded September 2026 source run.

Who it’s NOT for

Teams requiring measured routing quality, latency, or savings before adoption: our recorded run does not establish those outcomes.
Users expecting dependency setup to prove that the npm installer, installed CLI, or a working deployment was checked.
Operators who need current billing and semantic-cache correctness established by this review. The supplied issue reports identify checks to reproduce against the chosen release.
Teams whose existing single-model setup already meets their needs and who have no task-specific reason to add model selection.

Setup reality

In our recorded run on September 18, 2026, at commit 76a9bbb54dadf7ce6a1decdfe954bab00a62bc39, the dependency setup step exited successfully in 70 seconds. The record lists 335 dependencies and shows a Go 1.25.9 toolchain download. This was not a recorded npm CLI installation or an installed-binary check.

The build step exited successfully in 124 seconds; its retained tail is vet-exit:0, so the available evidence does not identify the exact compiled target or full command sequence. The Go test step exited successfully in 107 seconds. Its parser summary records 134 successful package results, zero failed package results, and 19 packages without tests. Those are package-level summaries, not 134 individual passing tests; exhaustive unique coverage was not reconciled.

The recorded configuration was 3 CPUs, 8 GB of memory, and image golang:1.24-bookworm. The image name does not establish the toolchain used. The checkout contained 2,097 files, about 292,642 source lines, and 30.2 MB. The scan recorded 10 CI workflows, a Dockerfile, a Compose file, and no dedicated tests directory; Go tests can reside beside source files.

The current npm guide requires Node 18 or newer. Basic Windows setup can use the native Node installer; shell-based extras need Git Bash or WSL. On supported Bash platforms, the installer can download checksum-verified jq 1.8.1 when jq is absent. Self-hosting adds Postgres and provider configuration; a dashboard password enables administration, while inference can run without it. Multi-replica deployments also need Pub/Sub for cache invalidation, and the optional HMM sidecar adds a Google API key.

Model selection is the question to test

Weave Router puts a model-selection service between an agent and its providers. The useful adoption question is whether its choices preserve the quality your tasks require at an acceptable cost and latency. Our recorded source run cannot answer that question.

The README describes routing per action, meaning each upstream API request rather than an entire agent turn. It documents Anthropic Messages, OpenAI Chat Completions, and Gemini native interfaces. The default self-hosted stack uses an in-process ONNX embedder and cluster scorer; an HMM policy is optional. These are documented capabilities, not results from a live provider workload in our run.

What our September 18 run establishes

Our recorded run used commit 76a9bbb54dadf7ce6a1decdfe954bab00a62bc39 on September 18, 2026. Dependency setup exited zero after 70 seconds, with 335 dependencies recorded. Its retained output shows go: downloading go1.25.9 (linux/amd64). That establishes a toolchain download during setup, not installation of the npm package or verification of an installed CLI.

The build step exited zero after 124 seconds. Its retained tail is vet-exit:0; the supplied record does not preserve enough command detail to identify the exact compiled target. The Go test step exited zero after 107 seconds. The parser records 134 successful package results, zero failed package results, and 19 packages without tests. Some retained output explicitly says [no tests to run]. A successful package result therefore cannot be counted as one individual passing test.

These are recorded parser summaries. No complete-log reconciliation established exhaustive unique test coverage, and no new execution accompanies this review. The record contains no installed-binary check or measured live routing workload. It does not establish model quality, routing latency, savings, or security. The audit field is null.

The configured sandbox had 3 CPUs, 8 GB of memory, and image golang:1.24-bookworm. The toolchain download shows why the image label alone is insufficient to identify the Go version used. The checkout measured 30.2 MB, 2,097 files, and about 292,642 source lines. The scan found 10 CI workflows, a Dockerfile, and a Compose file. Its absence-of-tests-directory signal does not imply an absence of Go tests beside source files.

Hosted setup and self-hosting have different requirements

The current README says the bare npm invocation opens a hosted setup page. An explicit client target selects terminal installation. The npm guide covers Claude Code, Codex, OpenCode, and pi; it requires Node 18 or newer. OpenCode major version 2 is required when its CLI is installed and available on PATH.

The detailed installer guide also qualifies the older blanket jq requirement. Basic Windows configuration can use a native Node installer without Git Bash, WSL, or jq. Shell-based status displays, hooks, and account-management commands still need Git Bash or WSL. On supported Bash platforms, missing jq can be supplied by a checksum-verified jq 1.8.1 download; other architectures need manual installation.

Self-hosting starts Postgres and the router on port 8080 through the documented setup target. A separate rk_ key authenticates clients. ROUTER_ADMIN_PASSWORD enables dashboard administration; leaving it unset disables administration while inference remains available. The optional HMM sidecar uses port 8093 and a Google API key. Multiple replicas need Pub/Sub for cache invalidation.

The supplied configuration extract does not include the BYOK encryption section itself. The README claims encryption at rest, but this review cannot establish the precise missing-key behavior from that extract. Before storing real provider credentials, verify encryption requirements in the documentation for the exact deployed release.

The current license permits hosted services

The current README and LICENSE identify Apache License 2.0. The README places the release boundary at router-v0.2.24, including version 0.2.24 of both @weave-os/router and @workweave/router. Earlier tags and published packages retain the licenses shipped with them.

For that Apache-2.0 release line, commercial use, hosted services, and proprietary derivatives are permitted subject to the license terms. General trademark rights are excluded, and dependencies, model weights, and datasets retain their own licenses. Check the license bundled with the artifact you deploy. The current license statement cannot retroactively establish the license of the September measured commit.

Separate a reported problem from a confirmed deployment defect

Issue 1360 is closed, and its author explicitly withdrew the claim that Compose failed to load provider variables. In the October 4, 2026 follow-up, the author confirmed that the variables were loading. The attempted printenv execution could not work inside the distroless image; empty piped output was a failed inspection command, not evidence of missing variables. The author attributed the actual routing failure to a gateway key without model aliases and reported successful routing after adding aliases.

Two other supplied issues remain reports to investigate against a chosen release. Issue 867 describes a mock-upstream reproduction in which 1-hour Anthropic cache writes used the 5-minute multiplier, producing the reported 37.5% shortfall for that cache-write component. The discussion also mentions a proposed debit-time fix; it does not establish the deployed status of that fix. Issue 789 describes preferred-model changes sharing a semantic-cache bucket and returning a cached body that differs from the live decision's model header. Its stated conditions include fresh scoring and a sufficiently similar prompt; it is not presented as a cross-organization isolation failure. Neither report was reproduced in our recorded run.

A pilot should therefore compare provider invoices with router accounting and check cache behavior when model preferences change. Treat issue status and reporter reproductions as inputs to those checks, rather than proof that every current deployment has the same behavior.

Alternatives depend on the job

LiteLLM's README documents both a Python SDK and a centralized proxy, including virtual keys, spend tracking, load balancing, and an admin dashboard. It is relevant when those integration and administration features define the requirement. The SDK is a library integration option; the proxy is the deployment alternative.

Portkey AI Gateway's README documents retries, fallbacks, load balancing, conditional routing, and guardrails. It is relevant when explicit policy and failure handling drive the decision. Its feature table distinguishes capabilities available in hosted or enterprise versions. These descriptions come from the projects' documentation; we did not benchmark either alternative against Weave Router.

How to read the scores

These are editorial assessments of the supplied evidence, not measured product performance. The rubric is: 1 means substantial documented barriers; 2 means limited evidence or substantial unresolved validation; 3 means a documented path with meaningful operational work; 4 means detailed evidence for the dimension with bounded gaps; 5 requires broad corroboration beyond the supplied material. Unknown adoption, compatibility, and support quality do not earn a high score.

Setup receives 3/5 because client setup is documented but self-hosting adds Postgres and operational configuration, and our run did not verify installation end to end. Documentation receives 4/5 because the supplied material distinguishes client integrations, platform requirements, deployment modes, and release licensing, although some README details differ from the more specific npm guide. Community receives 2/5 because the issue threads show participation but do not establish adoption or dependable support. Maturity receives 2/5 because the historical command results provide limited validation, with current deployment behavior and reported accounting and cache concerns still requiring release-specific checks.

Start with representative tasks and a fixed-model control. Compare answer quality, provider failures, latency, and reconciled costs, then exercise the request formats your clients actually send. That evaluation supplies the adoption evidence missing from a successful source test command.

Alternatives

ProjectWhat it isPick it when
LiteLLM gh↗A Python SDK and deployable AI gateway with an OpenAI-format interface across providers.Choose it when you want direct Python integration or a centralized gateway with documented virtual keys, spend tracking, load balancing, and an admin dashboard.
Portkey AI GatewayAn AI gateway whose README documents retries, fallbacks, load balancing, conditional routing, and guardrails.Choose it when explicit routing rules and failure handling are the main requirements. Check its feature table because some capabilities are limited to hosted or enterprise versions.

What people are saying

  1. [github-trending] router-for-me/CLIProxyAPI
  2. [github-trending] weave-os/router
  3. [github-trending] theagentrouter/agent-router
  4. [theverge] TP-Link’s first Wi-Fi 8 router is almost here
  5. [github-trending] workweave/router
  6. [velocity-scout] remix-run/react-router

Sources

  1. Weave Router README
  2. Router configuration reference
  3. Elastic License 2.0 text in Router
  4. Measured Router commit 76a9bbb
  5. Issue 867: 1-hour cache-write accounting
  6. Issue 789: preferred-model semantic-cache isolation
  7. Issue 1360: self-hosted provider environment
  8. Router npm installer guide

More ai tools reviews

kornia · skills · anarlog · pr-agent · agent-sprite-forge · KiroCrew · the whole board →