now onboarding early customers
AI infrastructure
with a zero in the margin.
ZeroFare is a self-hostable AI gateway and management plane. Run the edge on your own hardware, or point your app at our hosted gateway. Plans pay for the service — model spend always passes through at provider rates, with a receipt for every decision.
Apache-2.0 core · self-host in minutes · no vendor lock-in
# 1. install the edge (local inference gateway) $ git clone https://github.com/zerofare/free-llm && cd free-llm $ corepack pnpm install && pnpm build $ printf '%s\n' 'your-vault-passphrase' | pnpm zerofare init # 2. or use the hosted gateway — same API, zero setup $ curl https://150-136-150-135.sslip.io:8443/v1/messages \ -H "Authorization: Bearer zf_…" \ -d '{"model":"…","max_tokens":64, "messages":[{"role":"user","content":"hi"}]}'
The stack
Three parts. One contract.
Every layer speaks a frozen, versioned contract — zerofare.compat/v1 on
the wire, zerofare.management/v1 for control.
Edge self-hosted
A local inference gateway you own. OpenAI-, Anthropic-, and Responses-compatible
surfaces, secret vaulting, admission control, and decision receipts — all on
127.0.0.1 by default.
Hosted gateway early access
The same API without the ops. Bearer-key auth, fair admission, tenant isolation, and per-decision receipts. Point your SDK at it and ship.
Console & management live
A 20+-service management API behind a frozen contract, with a customer console for keys, policies, usage, and audits. Self-serve, not a support ticket.
Why ZeroFare
Margin-free by construction
- Spend passes through. Subscription plans entitle cloud services only. Provider spend is billed at provider rates — the type system literally forbids a plan granting spend credits.
- Receipts for every decision. Admission, routing, and finalization produce decision receipts you can fetch and audit.
- Frozen contracts. Wire shapes are versioned and snapshotted; breaking changes get a new version, not a surprise.
- Yours to run. Apache-2.0 core. The edge binds loopback by default and refuses non-local hosts — your keys stay on your box.
// TypeScript SDK — same client for edge or hosted
import { ZeroFareClient } from "@zerofare/sdk";
const zf = new ZeroFareClient({
baseUrl: "https://150-136-150-135.sslip.io:8443",
apiKey: process.env.ZERFARE_API_KEY!,
});
const reply = await zf.messages({
model: "your-model",
max_tokens: 256,
messages: [{ role: "user", content: "Explain receipts." }],
zerofare: { profile: "zerofare.compat/v1" },
});
// every call is auditable afterwards:
const proof = await zf.receipt(decisionId);
Phasing
Honest about what's live
We ship in phases and label everything. Here's the state of the stack today — nothing on this page is aspirational without a badge saying so.
Phase 1 shipped
Local edge, hosted gateway & management API behind frozen contracts, customer console with real authentication, single-VM production deployment with TLS.
Phase 2 in progress
Durable domain stores behind the console, metered usage & billing, org/team features (SSO), and provider origin dispatch for the hosted path.
Phase 3 planned
Learned routing, semantic cache, org/tool caches, and the paid hosted product described in our IaaS policy — multi-region, zero-egress options.
Start at zero.
The Free plan includes the console and edge distribution. No card, no markup on spend, ever.
Run the quickstart Compare plans