Start with the wind-down
TensorZero's GitHub repository was archived by its owner on June 12, 2026 and is read-only. The homepage now carries a single notice: still available on GitHub, no longer maintained. Co-founder and CEO Gabriel Bianconi wrote on Hacker News that the team wound the project down and is returning remaining capital to investors, after raising a $7.3M seed in 2024 and spending less than half of it. The final release, 2026.6.0, shipped on June 4, 2026 — eight days before the archive. The docs site is gone; its URLs now redirect to raw files inside the archived repository.
That changes what this page compares: a maintained managed gateway on one side, and an Apache-2.0 codebase that still runs but that nobody maintains on the other.
What TensorZero got right
TensorZero shipped a full self-hosted LLMOps stack: a Rust gateway with a unified API across roughly 19 documented provider integrations, observability that stored inferences and feedback in your own ClickHouse or Postgres, built-in evaluations, optimization recipes — supervised fine-tuning, DPO, GEPA prompt optimization, dynamic in-context learning, best-of-N and mixture-of-N — and gateway-run experimentation with adaptive A/B tests that hold variant assignment consistent within a multi-step episode.
The engineering was serious. The team published a benchmark showing 0.94 ms p99 gateway overhead at 10,000 QPS on a single c7i.xlarge; the caveats (self-run, mock provider, observability disabled) are in their own notes. Adoption was real: 11,723 GitHub stars (checked August 2026), and a self-reported README claim of fueling about 1% of global LLM API spend. The structured data model was the genuine differentiator among open-source gateways: inferences plus downstream feedback in your database made dataset curation, fine-tuning, prompt optimization, and gateway-run A/B testing one continuous loop. No plain proxy — TrustedRouter included — replaces that loop.
The cost of running archived software
Apache-2.0 survives the archive: forking and self-hosting remain fully permitted. What you take on is everything upstream used to do — security patches, dependency CVEs, and provider-API drift, with the provider catalog frozen at June 2026. New providers and model APIs go through the generic OpenAI-compatible integration or your own fork. Two specifics deserve attention. Pseudonymous usage analytics is on by default (disable_pseudonymous_usage_analytics defaults to false) and still tries to send usage data to the wound-down company's endpoint, so set it to true. And Autopilot, the planned managed layer, never left private beta.
Where TrustedRouter differs
Someone operates it. TrustedRouter is a hosted gateway: one base URL, OpenAI Chat Completions and Responses plus Anthropic-style Messages, and a maintained catalog of 550+ model routes across roughly 49 providers as of August 16, 2026 (live list). Provider onboarding, failover, and API drift are our problem, not a fork you carry.
The trust model is proof, not possession. TensorZero's privacy answer is possession: prompts stay on your machines, in your database, and observability can be switched off entirely. That is a strong answer, and self-hosting is the right call when policy requires it. TrustedRouter is hosted, so we owe evidence instead: the gateway runs inside TEEs on GCP Confidential Space, AWS Nitro Enclaves, and Azure Confidential Containers, with live attestation endpoints and a verifier script published at trust.trustedrouter.com that check the running build against published source digests. Realtime inference keeps no durable prompt or output logs; we retain operational metadata (request ids, model, token counts, latency, cost, region, API-key hash). The gateway and control plane are source-available under BUSL-1.1, converting to Apache-2.0 four years after each release. That is not OSI open source, and we do not call it that; it does mean every line that touches your prompt is public and inspectable.
Privacy is routable. TensorZero routed for reliability and experiments. TrustedRouter also routes on privacy posture: trustedrouter/zdr restricts to providers with contractual or policy zero-data-retention commitments, trustedrouter/e2e to confidential-compute providers with provider-side end-to-end encryption (currently Tinfoil and Phala), trustedrouter/eu to an EU-focused provider order, and provider.min_privacy composes with any model id.
Pricing, with bases stated
The bases differ, so no single number settles it. TensorZero has no fees at all: Apache-2.0 software, your infrastructure (gateway, ClickHouse or Postgres, UI, optionally Valkey), and direct provider billing on your own keys. TrustedRouter prepaid inference bills the provider's token price plus 5.5%, with a $0.01 per million token floor; video is the provider quote plus 20%; there are no seat or subscription fees (pricing). BYOK is supported, and the pricing page does not publish a separate BYOK fee. If your ops time is free and your team is willing to maintain a fork, TensorZero is cheaper. If it is not, the 5.5% buys the operations, the catalog, and the attestation above.
What we do not claim
Our attestation covers the gateway, not the model providers behind it. Downstream handling is policy and contract, tracked per provider in our catalog tiers — except e2e routes, where the provider's own confidential-compute and encryption mechanisms apply, and those are the provider's claims, not our attestation. Our repositories are young: public since late April 2026, with benchmark history from June 2026. We publish a DPA, BAA, and subprocessor list, but no SOC 2 or HIPAA certification today (security). And nothing here replaces TensorZero's optimization loop: we have no fine-tuning recipes, no feedback API, no gateway-run A/B tests. We support small evals; that is a fraction of the flywheel.
Migration in practice
If your application used TensorZero's OpenAI-compatible endpoint, migration is a base-URL and key swap, plus deleting tensorzero:: extra-body parameters and mapping function names to concrete model ids. If it used the native /inference API, prompt templates and schemas move out of gateway TOML into your application code, and calls are rewritten as chat completions. Historical data is the easy part — it already sits in your ClickHouse or Postgres in documented schemas. The hard part is honest: episodes, feedback, and the optimization recipes have no TrustedRouter equivalent, so teams that depend on them either keep the archived stack running for that workflow or rebuild it on other tooling.