Skip to content
Everruns Cloud is open in early access. Run agents without operating the platform.

Supported Providers

Everruns talks to model vendors through drivers. A driver owns one vendor’s wire protocol; a Provider pairs a driver with an endpoint and a credential. The set below is what ships today — the boundary is open, so a custom driver is a first-class peer of these, not a lesser one.

DriverCrateWire protocolServicesModel discovery
OpenAIeverruns-openaiOpenAI Responseschat, embeddings, realtimeyes
OpenAI (Chat Completions)everruns-openaiOpenAI Chat Completionschatyes
Azure OpenAIeverruns-openaiOpenAI Responseschatyes
Anthropiceverruns-anthropicAnthropic Messageschatyes
Google Geminieverruns-geminiGemini generateContentchatyes
AWS Bedrockeverruns-bedrockBedrock ConverseStream (SigV4)chatyes
OpenRoutereverruns-openrouterOpenAI Responses-compatiblechatyes
Microsoft MAIeverruns-maiOpenAI Chat Completions (Azure AI Foundry)chatyes
Fireworks AIeverruns-fireworksOpenAI Chat Completions-compatiblechatyes
Meta Model APIeverruns-metaOpenAI Responses-compatiblechatyes
LLM Simulatoreverruns-llmsimnone — in-process test doublechatno

Every chat driver produces an incremental stream — server-sent events for the HTTP protocols, ConverseStream for Bedrock — so token-by-token output works everywhere, not just on one vendor. Tool calling and multi-turn tool results work across all of them: each driver normalizes its vendor’s shape into the same typed events, which is why swapping a provider does not change application code.

The environment variables each driver reads are in Credentials.

everruns-llmsim is listed above because it registers as a driver, but it runs no inference and reaches no network. It replays canned responses so tests and examples can assert on agent behavior without an API key. It is not a local model and not a way to run Everruns without a vendor.

Most drivers implement chat only. Two capabilities go further, and both are OpenAI-only today:

Embeddings. The OpenAI driver powers embedding models for knowledge-base retrieval alongside its chat models.

Realtime voice (WebRTC + WebSocket). A realtime voice session is negotiated by the platform server, not the Framework. The browser posts its SDP offer to POST /v1/sessions/{session_id}/voice/calls and the server answers it; a separate route mints a short-lived client secret from the vendor. The organization’s own API key is used only server-side and never reaches the browser. The server then opens a WebSocket sideband (wss://…/realtime?call_id=…) to drive the call and collect transcripts, which land in the session as ordinary events — so a voice turn and a typed turn are the same session, readable through the same history and event streams. This needs the platform server; an embedded Framework process does not expose it.

OpenRouter declares an OAuth connect flow, so an operator can choose “Connect with OpenRouter” instead of pasting a key. Every other driver takes a credential directly, entered in Settings or supplied in code.

Any OpenAI-compatible gateway that speaks Responses or Chat Completions can usually be reached by pointing the matching driver’s base_url at it, rather than writing a driver. Write a custom driver when the vendor’s protocol genuinely differs, or when it needs authentication that a bearer token cannot express.