{"slug": "skyl-one-go-interface-for-400-ai-models", "title": "Skyl – One Go interface for 400 AI models", "summary": "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.", "body_md": "v1.0.0 · Apache 2.0 · Go 1.22+\n\n# skyl\n\nOne Go interface for every AI model.\n\nTalk to Claude, GPT, Gemini, Ollama and 400+ other models through a single, stable interface — then switch between them by changing one string.\n\n```\nclient := skyl.New(anthropic.New(os.Getenv(\"ANTHROPIC_API_KEY\")))\nresp, err := client.Complete(ctx, &skyl.Request{    Model: \"claude-opus-5\",    Messages: []skyl.Message{skyl.UserText(\"Hello\")},})\nfmt.Println(resp.Text())\n```\n\nThe highlighted line is the only one that changes.\n\n## Why skyl\n\nIntegrating 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.\n\n### Provider-agnostic\n\nOne Request and Response shape across every vendor. Your application code never learns a vendor’s JSON.\n\n### Zero-day model support\n\nModel IDs are pass-through strings. A model released this morning works this morning, with no skyl release.\n\n### No lock-in\n\nEvery response carries Raw — the untouched provider JSON — so skyl’s abstraction is never the reason you cannot ship.\n\n### Streaming that works\n\nA pull iterator with proper context cancellation, verified by a goroutine-leak test rather than by convention.\n\n### Honest errors\n\nTyped and classified, so you branch with errors.Is instead of matching on message text that vendors reword.\n\n### Small surface\n\nThe core module has zero external dependencies. No router, no logger, no framework imposed on you.\n\n## Every model, one interface\n\nThree native adapters for full vendor fidelity, and one generic adapter that reaches the long tail of hosts speaking OpenAI’s wire format.\n\n`provider/anthropic` own module\nClaude, 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.\n\nClaude Opus 5, Fable 5, Sonnet 5, Haiku 4.5, and the 4.x family\n\n`provider/openai`\nGPT, native. Ships inside the core module, so it costs you no dependencies.\n\nGPT-5.6 (Sol, Terra, Luna), GPT-5.5, GPT-5.4 nano, the o-series, and gpt-oss\n\n`provider/gemini`\nGemini, native. Handles Gemini’s structural differences — contents/parts, the \"model\" role in place of \"assistant\", and systemInstruction — so your Request does not have to.\n\nGemini 3.6 Flash, 3.5/3.1 Flash-Lite, and 3 Pro\n\n`provider/openaicompat`\nOne 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.\n\n~18 hosts including xAI, DeepSeek, Groq, OpenRouter, Ollama, vLLM and LM Studio\n\n[18 verified compatible endpoints](https://skyl-docs.vercel.app/reference/provider/compatible-endpoints/) — including Ollama, vLLM and LM Studio, which need no credential at all.\n\n## Try it without an API key\n\nskyl 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.\n\n```\ngo run ./cmd/skyl-sandbox\n```\n\n## Status: v1.0.0 — the API is stable, the feature surface is not complete\n\nEvery 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.", "url": "https://wpnews.pro/news/skyl-one-go-interface-for-400-ai-models", "canonical_source": "https://skyl-docs.vercel.app/", "published_at": "2026-10-25 14:28:48+00:00", "updated_at": "2026-10-25 14:44:24.016249+00:00", "lang": "en", "topics": ["ai-tools", "developer-tools", "large-language-models", "ai-products"], "entities": ["Skyl", "Go", "Anthropic", "Claude", "OpenAI", "GPT", "Gemini", "Ollama"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/skyl-one-go-interface-for-400-ai-models", "markdown": "https://wpnews.pro/news/skyl-one-go-interface-for-400-ai-models.md", "text": "https://wpnews.pro/news/skyl-one-go-interface-for-400-ai-models.txt", "jsonld": "https://wpnews.pro/news/skyl-one-go-interface-for-400-ai-models.jsonld"}}