{"data":{"slug":"adaline-gateway","name":"gateway","tagline":"Super SDK for calling over 300 LLMs with a unified interface","github_url":"https://github.com/adaline/gateway","owner":"adaline","repo":"gateway","owner_avatar_url":"https://avatars.githubusercontent.com/u/382430?v=4","primary_language":"TypeScript","stars":607,"forks":26,"topics":["ai","ai-agents","anthropic","language-model","llm","llmops","openai","prompt-engineering","togetherai","typescript"],"archived":false,"github_pushed_at":"2026-07-29T19:11:29+00:00","maintenance_label":"Steady","stars_delta_30d":2,"url":"https://www.graphcanon.com/tools/adaline-gateway","markdown_url":"https://www.graphcanon.com/tools/adaline-gateway.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/adaline-gateway","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=adaline-gateway","description":"The only fully local production-grade Super SDK that provides a simple, unified, and powerful interface for calling more than 200+ LLMs.","homepage_url":"https://www.adaline.ai/docs","license":"MIT","open_issues":2,"watchers":4,"ai_summary":"Adaline Gateway is a production-grade, fully local Super SDK that provides a unified interface for calling more than 300 LLMs. It supports batching, retries, caching, callbacks, and OpenTelemetry integration, and is extensible with custom plugins.","readme_excerpt":"# Adaline Gateway\n\n\n\n\n\n\nThe only fully local, production-grade Super SDK that provides a simple, unified, and powerful interface for calling more than 300+ LLMs.\n\n- Production-ready and trusted by enterprises\n- Fully local and _NOT_ a proxy - deploy it anywhere\n- Built-in batching, retries, caching, callbacks, and OpenTelemetry support\n- Extensible with custom plugins for caching, logging, HTTP clients, and more - use it like building blocks to integrate with your infrastructure\n- Supports plug-and-play providers - run fully custom providers while leveraging all the benefits of Adaline Gateway\n\n### Features\n\n- 🔧 Strongly typed in TypeScript\n- 📦 Isomorphic - works everywhere\n- 🔒 100% local, private, and _NOT_ a proxy\n- 🛠️ Tool calling support across all compatible LLMs\n- 📊 Batching for all requests with custom queue support\n- 🔄 Automatic retries with exponential backoff\n- ⏳ Caching with custom cache plug-in support\n- 📞 Callbacks for comprehensive instrumentation and hooks\n- 🔍 OpenTelemetry integration for existing infrastructure\n- 🔌 Plug-and-play custom providers for local and custom models\n\n### Providers\n\n| Provider              | Chat Models     | Embedding Models  |\n| --------------------- | --------------- | ------------------|\n| OpenAI                | ✅              | ✅                |\n| Anthropic             | ✅              | ❌                |\n| Google AI Studio      | ✅              | ❌                |\n| Google Vertex         | ✅              | ✅                |\n| xAi                   | ✅              | ✅                |\n| AWS Bedrock           | ✅              | ❌                |\n| Azure OpenAI          | ✅              | ✅                |\n| Groq                  | ✅              | ❌                |\n| Together AI           | ✅              | ❌                |\n| Open Router           | ✅              | ❌                |\n| Custom (OpenAI-like)  | ✅              | ❌                |\n| Voyage                | ❌              | ✅                |\n\n\n## Installation\n\n### Core packages\n\n```bash\nnpm install @adaline/gateway @adaline/types\n```\n\n### Provider packages\n\nDependencies for providers are optional. You can install them as needed. For example:\n\n```bash\nnpm install @adaline/openai @adaline/anthropic @adaline/google @adaline/open-router @adaline/bedrock\n```\n\n## Quickstart\n\n### Chat\n\nThis example demonstrates how to invoke an LLM with a simple text prompt in both non-streaming and streaming modes.\n\n```typescript\nimport { Gateway } from \"@adaline/gateway\";\nimport { OpenAI } from \"@adaline/openai\";\nimport { Config, ConfigType, MessageType } from \"@adaline/types\";\n\nconst OPENAI_API_KEY = \"your-api-key\"; // Replace with your OpenAI API key\n\nconst gateway = new Gateway();\nconst openai = new OpenAI();\n\nconst gpt4o = openai.chatModel({\n  modelName: \"gpt-4o\",\n  apiKey: OPENAI_API_KEY,\n});\n\nconst config: ConfigType = Config().parse({\n  temperature: 0.7,\n  maxTokens: 300,\n});\n\nconst messages: MessageType[] = [\n  {\n    role: \"system\",\n    content: [{\n      modality: \"text\",\n      value: \"You are a helpful assistant. You are extremely concise.\",\n    }],\n  },\n  {\n    role: \"user\",\n    content: [{\n      modality: \"text\",\n      value: `What is ${Math.floor(Math.random() * 100) + 1} + ${Math.floor(Math.random() * 100) + 1}?`,\n    }],\n  },\n];\n\n// * Complete chat\nasync function runCompleteChat() {\n  const completeChat = await gateway.completeChat({\n    model: gpt4o,\n    config,\n    messages,\n    tools: [],\n  });\n  console.log(completeChat.provider.request); // HTTP Request sent to Provider\n  console.log(completeChat.provider.response); // HTTP Response from Provider\n  console.log(completeChat.cached); // Whether the response was cached\n  console.log(completeChat.latencyInMs); // Latency in milliseconds\n  console.log(completeChat.request); // Request in Gateway types\n  console.log(completeChat.response); // Response in Gateway types, E.g.:\n  // {\n  //   \"messages\": [\n  //     {\n  //       \"role\": \"assistant\",\n  //       \"c","github_created_at":"2024-10-15T02:20:50+00:00","created_at":"2026-07-07T17:43:23.760945+00:00","updated_at":"2026-09-30T21:36:28.174252+00:00","categories":[{"slug":"inference-serving","name":"Inference & Serving","url":"https://www.graphcanon.com/categories/inference-serving","markdown_url":"https://www.graphcanon.com/categories/inference-serving.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/inference-serving"},{"slug":"llm-frameworks","name":"LLM Frameworks","url":"https://www.graphcanon.com/categories/llm-frameworks","markdown_url":"https://www.graphcanon.com/categories/llm-frameworks.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/llm-frameworks"}],"tags":[{"slug":"ai","name":"ai"},{"slug":"ai-agents","name":"ai-agents"},{"slug":"anthropic","name":"anthropic"},{"slug":"language-model","name":"language-model"},{"slug":"llm","name":"llm"},{"slug":"llmops","name":"llmops"},{"slug":"openai","name":"openai"},{"slug":"prompt-engineering","name":"prompt-engineering"}],"trust":{"provenance":{"is_fork":false,"github_id":872748942,"owner_type":"Organization","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-09-20T05:58:26.939Z","maintenance":{"label":"Steady","score":60,"methodology":"github_public_v1","releases_90d":2,"days_since_push":52,"last_release_at":"2026-07-29T19:11:30Z","stars_delta_30d":2,"open_issues_delta_30d":0},"security_summary":{"status":"no_lockfile","scanner":null,"low_count":0,"high_count":0,"last_scan_at":"2026-07-11T11:23:34.395Z","medium_count":0,"scan_profile":"none","critical_count":0}},"capability_facts":{"mcp":{"source":"repo_scan","observed_at":"2026-09-20T05:58:27.974Z","server_manifest":false},"scan":{"source":"repo_scan","observed_at":"2026-09-20T05:58:27.974Z"},"languages":{"value":["typescript","javascript"],"source":"github.language+package.json","observed_at":"2026-09-20T05:58:27.974Z"},"license_spdx":{"value":"MIT","source":"github.license","observed_at":"2026-09-20T05:58:27.974Z"}},"decision_facts":{"hosting":null,"pricing":null,"requirements":null,"constraints":null,"when_to_use":["When you need a fully local SDK that supports more than 300 LLMs with a unified interface.","If you require built-in support for batching, retries, caching, and OpenTelemetry integration.","When extensibility with custom plugins for caching, logging, and HTTP clients is necessary.","For enterprises that need a production-ready solution with strong TypeScript support."],"when_not_to_use":["If you are looking for a cloud-based service, as Adaline Gateway is fully local and not a proxy.","When you need support for a specific LLM that is not among the 300+ supported by Adaline Gateway.","If you do not require or want the complexity of a fully featured SDK with extensive customization options.","When you prefer a simpler, less extensible solution for calling LLMs."],"source":"enrich:decision_facts","observed_at":"2026-09-30T21:36:25.530Z"},"constraint_facets":null,"decision_summary":[{"label":"Adopt for","value":"Adaline Gateway is a production-grade, fully local Super SDK that supports over 300 LLMs with a unified interface, including features like batching, retries, caching, and OpenTelemetry integration."}]}}