Skip to content
skyl

Providers

Three native adapters, one generic adapter, and the gaps between them.

skyl ships four adapters. Three are native — written against a specific vendor's API at full fidelity. One is generic, and reaches the long tail of hosts that speak OpenAI's wire format.

The four#

AdapterModuleGoReaches
provider/anthropicits own1.24Claude Opus 5, Fable 5, Sonnet 5, Haiku 4.5, and the 4.x family
provider/openaicore1.22GPT-5.6 (Sol, Terra, Luna), GPT-5.5, GPT-5.4 nano, the o-series, and gpt-oss
provider/geminicore1.22Gemini 3.6 Flash, 3.5/3.1 Flash-Lite, and 3 Pro
provider/openaicompatcore1.22~18 hosts including xAI, DeepSeek, Groq, OpenRouter, Ollama, vLLM and LM Studio

Choosing between them#

Use a native adapter when you want a vendor's deep features and its exact error semantics. Concretely: Anthropic is the only adapter that emits EventThinkingDelta, reports CacheWriteTokens, or delivers ToolResult.IsError faithfully. Gemini is the only one where Request.Thinking maps completely.

Use openaicompat for reach — roughly eighteen hosts, including local runtimes that need no credential at all. OpenRouter alone brokers 300+ models, so this single adapter puts the realistic reachable total in the hundreds.

Where they differ#

The feature matrix documents every field, per adapter, in four states: mapped, rejected, silently ignored, and not applicable. The third is the one worth reading — it is where skyl accepts something and quietly does not do it.

There are fourteen such cases, and they are published in one list rather than discovered in production.

Writing your own#

Provider is four methods, and nothing in skyl privileges the in-tree adapters. An adapter in your own repository inherits retry, hooks, validation and the gateway with no changes to skyl. See Writing an Adapter.

Edit this page on GitHub