Bridge AI is a unified, type-safe SDK for interacting with multiple AI providers (OpenAI, Gemini, Claude, Perplexity, and DeepSeek). Designed with the elegance and modularity of AWS SDK v3, it provides a seamless interface whether youβre building a simple bot or a complex multi-model application.
AsyncIterable stream support across all providers.npm install bridge-ai
OPENAI_API_KEY=sk-...
GEMINI_API_KEY=...
ANTHROPIC_API_KEY=...
import { BridgeAIClient } from 'bridge-ai';
const client = new BridgeAIClient({ provider: 'openai' });
const response = await client.chat({
prompt: 'What is the future of AI?'
});
console.log(response.text);
console.log(`Cost: $${response.cost}`); // $0.00004
Get real-time responses with a single unified interface.
const stream = client.chatStream({ prompt: 'Write a long story...' });
for await (const chunk of stream) {
process.stdout.write(chunk.text);
}
Force the model to return valid JSON.
const res = await client.chat({
prompt: 'List 3 fruits',
responseFormat: 'json'
});
console.log(res.json); // [{name: "Apple"}, ...]
Send images to any supported model consistently.
const res = await client.chat({
prompt: 'What is inside this image?',
images: [{
type: 'url',
data: 'https://example.com/photo.jpg'
}]
});
Ensure 100% uptime by defining fallbacks. Bridge AI also automatically retries on rate limits (429) or server errors.
const client = new BridgeAIClient({
provider: 'openai',
fallbackProviders: ['gemini', 'claude'],
retryOptions: { retries: 3 }
});
Bridge AI is the first SDK to natively support TOON (Token-Oriented Object Notation). Use it to send complex structured data (like large arrays or objects) while saving up to 40% on token costs compared to JSON.
const res = await client.chat({
prompt: { user: 'Alice', history: [...lots of data] },
useToon: true // Automatically serializes prompt to TOON
});
Every prompt is hashed (SHA-256). Use the onResponse hook to save to your database.
const client = new BridgeAIClient({
onResponse: ({ prompt, response, hash }) => {
db.save({ hash, text: response.text });
}
});
const response = await client.chat({
prompt: 'What is the weather?',
tools: [{
name: 'getWeather',
description: 'Get weather',
parameters: { ... }
}]
});
if (response.toolCalls) {
// Execute function calls
}
Test your app without spending a cent.
const client = new BridgeAIClient({ provider: 'mock' });
| Provider | Config Name | Default Model | Env Variable |
|---|---|---|---|
| OpenAI | openai |
gpt-4-turbo-preview |
OPENAI_API_KEY |
| Google Gemini | gemini |
gemini-1.5-flash |
GEMINI_API_KEY |
| Anthropic Claude | claude |
claude-3-5-sonnet-20240620 |
ANTHROPIC_API_KEY |
| Perplexity | perplexity |
llama-3-sonar-large-32k-online |
PERPLEXITY_API_KEY |
| DeepSeek | deepseek |
deepseek-chat |
DEEPSEEK_API_KEY |
Visit our GitHub Pages for full API reference.
MIT Β© Himanshu Mamgain