# @memberjunction/ai-openrouter
MemberJunction AI provider for OpenRouter, a unified API gateway that provides access to 100+ AI models from multiple providers (OpenAI, Anthropic, Google, Meta, Mistral, and more) through a single endpoint.
## Architecture
```mermaid
graph TD
A["OpenRouterLLM
(Provider)"] -->|extends| B["OpenAILLM
(@memberjunction/ai-openai)"]
B -->|extends| C["BaseLLM
(@memberjunction/ai)"]
A -->|overrides base URL| D["OpenRouter API
(openrouter.ai/api/v1)"]
D -->|routes to| E["OpenAI"]
D -->|routes to| F["Anthropic"]
D -->|routes to| G["Google"]
D -->|routes to| H["Meta / Mistral / Others"]
C -->|registered via| I["@RegisterClass"]
style A fill:#7c5295,stroke:#563a6b,color:#fff
style B fill:#2d6a9f,stroke:#1a4971,color:#fff
style C fill:#2d6a9f,stroke:#1a4971,color:#fff
style D fill:#2d8659,stroke:#1a5c3a,color:#fff
style E fill:#b8762f,stroke:#8a5722,color:#fff
style F fill:#b8762f,stroke:#8a5722,color:#fff
style G fill:#b8762f,stroke:#8a5722,color:#fff
style H fill:#b8762f,stroke:#8a5722,color:#fff
style I fill:#b8762f,stroke:#8a5722,color:#fff
```
## Features
- **Multi-Model Access**: Access models from OpenAI, Anthropic, Google, Meta, Mistral, xAI, and many more
- **Automatic Routing**: OpenRouter handles provider selection and failover
- **OpenAI Compatible**: Inherits all features from the OpenAI provider
- **Streaming**: Full streaming support for real-time responses
- **Thinking/Reasoning**: Thinking block extraction for reasoning models
- **Response Formats**: JSON mode support for compatible models
## Installation
```bash
npm install @memberjunction/ai-openrouter
```
## Usage
```typescript
import { OpenRouterLLM } from '@memberjunction/ai-openrouter';
const llm = new OpenRouterLLM('your-openrouter-api-key');
const result = await llm.ChatCompletion({
model: 'anthropic/claude-sonnet-4-20250514',
messages: [
{ role: 'user', content: 'Explain quantum computing in simple terms.' }
]
});
console.log(result.data.choices[0].message.content);
```
## How It Works
`OpenRouterLLM` is a thin subclass of `OpenAILLM` that redirects all API calls to OpenRouter's endpoint at `https://openrouter.ai/api/v1`. Since OpenRouter implements an OpenAI-compatible API, all chat, streaming, and parameter handling logic is inherited from the OpenAI provider.
## Supported Models
OpenRouter provides access to models from many providers. Use the provider-prefixed model names:
- `openai/gpt-4`, `openai/gpt-4-turbo`
- `anthropic/claude-sonnet-4-20250514`, `anthropic/claude-3-opus`
- `google/gemini-pro`, `google/gemini-flash`
- `meta-llama/llama-3.1-70b`
- `mistralai/mistral-large`
- And 100+ more at [openrouter.ai/models](https://openrouter.ai/models)
## Class Registration
Registered as `OpenRouterLLM` via `@RegisterClass(BaseLLM, 'OpenRouterLLM')`.
## Dependencies
- `@memberjunction/ai` - Core AI abstractions
- `@memberjunction/ai-openai` - OpenAI provider (parent class)
- `@memberjunction/global` - Class registration