The self-hosted product

The gateway,
with the edges showing.

Stoke is a Rust gateway between AI clients and the local, remote, or approved provider capacity you attach. This matrix keeps the complete shipped capability set visible while naming the boundaries that matter.

Complete shipped capability matrix

24 capabilities, not 24 vague promises.

Stoke's 24 shipped capabilities and their limits
#CapabilitySurface / activationEvidence-backed boundary
01Gateway daemonstoke, stoke serve; TOMLSelf-hosted Rust binary; no hosted gateway is implied.
02Fail-closed authSTOKE_API_KEYS; STOKE_DEV=1 local devEvery endpoint except /health is protected when keys are configured; upstream credentials stay separate.
03OpenAI Chat CompletionsPOST /v1/chat/completionsProvider/model must be configured or discovered; no provider catalogue ships.
04Pre-provider enforcementBudget, rate, exact/semantic loop, holds and fan-outAdmission is before dispatch; semantic mode needs an operator-supplied embedding model.
05Durable SQLite ledgerSTOKE_LEDGER_PATH; stoke ledgerSpend and open holds survive restart; unresolved holds require reconciliation.
06Node-aware placement + failoverProvider tiers: local / remote / cloudRanks configured eligible capacity; failover is same-model connect-time/before-streaming, not mid-stream replay.
07One-hop federationProvider type stoke; authenticated /v1/nodesImports peer inventory and stops at exactly one hop; cycles are guarded.
08Auto-route v2model=auto, auto-cheap, auto-fastScores configured/discovered candidates with fit exclusions and receipts; live E2E selection is not claimed.
09SSE passthrough + meteringChat, Messages and Responses stream=trueUsage is charged at close; metered streams may use an estimate when upstream usage is absent.
10Stream race + hedged dispatchstream_race; global hedge=trueConnect-time race only; small prompts across two verified non-cloud nodes, duplicating local compute.
11Non-stream cascade + self-consistencyNamed route patternsSequential first-success or bounded same-provider sampling; non-stream only.
12Exact / semantic response cacheExact by default when eligible; semantic opt-inNamed non-stream single routes only; identity includes caller, route, model and effective request. Not a Responses-cache claim.
13Exact in-flight coalescingNamed route, positive TTL, coalesce=trueExplicit opt-in; followers wait bounded time and may dispatch independently.
14Built-in harness + PII/auditRoute opt-in built-insPII redaction and JSONL audit are opt-in; regex redaction is not a security boundary.
15Webhook plugin hooksOpt-in pre_request, prompt_filter, post_responseBounded HTTP hooks can mutate/block; they are not an OS sandbox.
16In-process JS/TS pluginsFeature-gated build: --features js-pluginsOptional V8/deno dependency; not in the default build and not sandboxed.
17Headroom output filterOptional, default-off, local/native ResponsesValidated lossless JSON-whitespace compaction only; bounded macOS arm64 / CPython 3.11 worker limits.
18Anthropic Messages passthroughPOST /v1/messagesRequires an exact configured Anthropic provider/destination; not unrestricted Anthropic support.
19Claude subscription OAuthstoke login-claude; subscription providerGateway-owned OAuth; rate/loop controls remain, but subscription traffic has no USD price to meter.
20Claude → local bridgeclaude-stoke-local--… aliasMessages translates to configured local/remote OpenAI-compatible providers; unsupported fields reject.
21Claude → Codex bridgeclaude-stoke-codex--… aliasUses native Responses for configured Codex providers; ambiguous aliases fail closed.
22Responses + Codex subscriptionPOST /v1/responses; stoke run codexNative JSON/SSE passthrough; subscription plan limits remain and USD spend is omitted.
23Opt-in Claude fallback[subscription_fallback]Off by default; only qualified subscription limit/rate errors trigger it, with local fallback explicitly enabled and priced.
24CLI setup + launchersstoke-cli setup; stoke run claude|codexOwner-only setup and credential-isolating launchers; external client executables remain prerequisites.

Release scope: main/nightly in this checkout; stable releases may not contain post-tag capabilities. Local means your machine, authenticated means gateway access, and subscription means quota-world rather than USD-world.

Read it in context

Start from the behavior you need.

The matrix is evidence-oriented by design. Use the guides for task-shaped setup, then verify the exact source and smoke harnesses in the repository.

Local capacity

Discover exact Ollama model IDs and health from your running provider. See the two-machine guide.

Client paths

Keep native Responses native, Ollama on Chat Completions, and configured Messages paths explicit. See Codex + Ollama.

Policy first

Per-route tiers can refuse cloud fallback before dispatch. Read the security page and public configuration docs.

Then, if useful

See what Cloud is not claiming.

Stoke Cloud is a separate private pilot, not a hosted gateway claim. Its current status and boundaries are on the public explainer.