cd /news/ai-tools/skyl-one-go-interface-for-400-ai-mod… · home › topics › ai-tools › article
[ARTICLE · art-157287] src=skyl-docs.vercel.app ↗ pub= topic=ai-tools verified=true sentiment=↑ positive

Skyl – One Go interface for 400 AI models

Skyl v1.0.0, an Apache 2.0-licensed Go library released under Go 1.22+, provides a single stable interface for calling Claude, GPT, Gemini, Ollama and more than 400 other AI models, letting developers switch providers by changing one model-ID string. The library ships three native adapters (provider/anthropic as a separate module built on the official Anthropic SDK, provider/openai in the core module, and provider/gemini) plus provider/openaicompat, a generic adapter reaching roughly 18 hosts including xAI, DeepSeek, Groq, OpenRouter, Ollama, vLLM and LM Studio, with 18 verified compatible endpoints. The core module has zero external dependencies, and the project states the exported API is frozen at v1.0.0 while embeddings, prompt-caching control, batch APIs, token counting and failover are deliberately deferred.

by read3 min views2 publishedOct 25, 2026
Skyl – One Go interface for 400 AI models
Image: source

v1.0.0 · Apache 2.0 · Go 1.22+

One Go interface for every AI model.

Talk to Claude, GPT, Gemini, Ollama and 400+ other models through a single, stable interface — then switch between them by changing one string.

client := skyl.New(anthropic.New(os.Getenv("ANTHROPIC_API_KEY")))
resp, err := client.Complete(ctx, &skyl.Request{    Model: "claude-opus-5",    Messages: []skyl.Message{skyl.UserText("Hello")},})
fmt.Println(resp.Text())

The highlighted line is the only one that changes.

Why skyl #

Integrating an AI model into a Go service means writing the same 400 lines every time: request mapping, SSE parsing, retry with jitter, rate-limit backoff, token accounting, error classification. skyl does that once, properly, with tests.

Provider-agnostic

One Request and Response shape across every vendor. Your application code never learns a vendor’s JSON.

Zero-day model support

Model IDs are pass-through strings. A model released this morning works this morning, with no skyl release.

No lock-in

Every response carries Raw — the untouched provider JSON — so skyl’s abstraction is never the reason you cannot ship.

Streaming that works

A pull iterator with proper context cancellation, verified by a goroutine-leak test rather than by convention.

Honest errors

Typed and classified, so you branch with errors.Is instead of matching on message text that vendors reword.

Small surface

The core module has zero external dependencies. No router, no logger, no framework imposed on you.

Every model, one interface #

Three native adapters for full vendor fidelity, and one generic adapter that reaches the long tail of hosts speaking OpenAI’s wire format.

provider/anthropic own module Claude, native. A separate module, because it is built on the official Anthropic SDK and that brings a dozen transitive dependencies nobody else should pay for.

Claude Opus 5, Fable 5, Sonnet 5, Haiku 4.5, and the 4.x family

provider/openai GPT, native. Ships inside the core module, so it costs you no dependencies.

GPT-5.6 (Sol, Terra, Luna), GPT-5.5, GPT-5.4 nano, the o-series, and gpt-oss

provider/gemini Gemini, native. Handles Gemini’s structural differences — contents/parts, the "model" role in place of "assistant", and systemInstruction — so your Request does not have to.

Gemini 3.6 Flash, 3.5/3.1 Flash-Lite, and 3 Pro

provider/openaicompat One adapter, configured per host, reaching the long tail of vendors that speak OpenAI's wire format — including local runtimes that need no credential at all.

~18 hosts including xAI, DeepSeek, Groq, OpenRouter, Ollama, vLLM and LM Studio

18 verified compatible endpoints — including Ollama, vLLM and LM Studio, which need no credential at all.

Try it without an API key #

skyl ships a sandbox that speaks all four providers’ wire protocols locally. Every example in this documentation runs against it — no signup, no credential, no cost.

go run ./cmd/skyl-sandbox

Status: v1.0.0 — the API is stable, the feature surface is not complete #

Every adapter has been exercised against its live provider API, so the wire mapping is confirmed rather than merely self-consistent. Since v1.0.0 the exported API is frozen: no breaking change without a major version. What is not promised is complete provider coverage. Each adapter still silently ignores some provider features, and embeddings, prompt-caching control, batch APIs, token counting and failover are deliberately deferred. Both lists are published rather than implied.

── more in #ai-tools 4 stories · sorted by recency
── more on @skyl 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/skyl-one-go-interfac…] indexed:0 read:3min 2026-10-25 · —