{"data":{"slug":"adaline-gateway","name":"gateway","tagline":"Unified SDK for calling over 200 LLMs","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":605,"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":"Active","stars_delta_30d":4,"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":"A production-grade Super SDK enabling simple and unified access to more than 200 language models using TypeScript.","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-08-21T00:01:27.969073+00:00","categories":[{"slug":"developer-tools","name":"Developer Tools","url":"https://www.graphcanon.com/categories/developer-tools","markdown_url":"https://www.graphcanon.com/categories/developer-tools.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/developer-tools"},{"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-agents","name":"ai-agents"},{"slug":"anthropic","name":"anthropic"},{"slug":"language-model","name":"language-model"},{"slug":"llm","name":"llm"},{"slug":"openai","name":"openai"},{"slug":"prompt-engineering","name":"prompt-engineering"},{"slug":"togetherai","name":"togetherai"},{"slug":"typescript","name":"typescript"}],"trust":{"provenance":{"is_fork":false,"github_id":872748942,"owner_type":"Organization","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-08-21T00:01:26.974Z","maintenance":{"label":"Active","score":82,"methodology":"github_public_v1","releases_90d":6,"days_since_push":22,"last_release_at":"2026-07-29T19:11:30Z","stars_delta_30d":4,"open_issues_delta_30d":2},"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-08-21T00:01:27.505Z","server_manifest":false},"scan":{"source":"repo_scan","observed_at":"2026-08-21T00:01:27.505Z"},"languages":{"value":["typescript","javascript"],"source":"github.language+package.json","observed_at":"2026-08-21T00:01:27.505Z"},"license_spdx":{"value":"MIT","source":"github.license","observed_at":"2026-08-21T00:01:27.505Z"}},"decision_facts":{"hosting":null,"pricing":null,"requirements":{"min_ram_gb":null,"requires_docker":false},"constraints":{"min_ram_gb":null,"requires_docker":false},"when_to_use":["When you require access to more than 200 different LLMs through a unified interface, ensuring seamless integration and management in your development projects.","If you are working with TypeScript and want to integrate sophisticated AI functionalities without the complexity of dealing with multiple API integrations separately."],"when_not_to_use":["When your project only involves a few specific LLMs that don't require a comprehensive, unified SDK; in this case using direct SDKs from those LLM providers could simplify your setup.","If you are working primarily in languages other than TypeScript and need an SDK that supports those environments natively for better performance or community support."],"source":"enrich:decision_facts","observed_at":"2026-07-14T20:22:31.257Z"},"constraint_facets":{"min_ram_gb":null,"requires_docker":false},"decision_summary":[{"label":"Adopt for","value":"Unified SDK for calling over 200 LLMs with production-grade capabilities in TypeScript."},{"label":"License detail","value":"MIT"}]}}