Developer tool
Smart Fallback Config Generator
Choose a primary model, backups and what should trigger a switch. Copy the result straight into your app.
Failure triggers
// Generated by Token Terminal — OpenRouter-compatible fallback chain
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://openrouter.ai/api/v1", apiKey: process.env.OPENROUTER_API_KEY });
const CHAIN = [
"openai/gpt-6.1-sol-pro",
"anthropic/claude-sonnet-5.5"
];
const TIMEOUT_MS = 15000;
const RETRIES_PER_MODEL = 1;
function shouldFallback(err: any): boolean {
const status = err?.status ?? err?.response?.status;
if (status === 429) return true; // rate limited
if (status >= 500 || err?.code === "ECONNRESET") return true; // provider outage
if (err?.name === "AbortError" || err?.name === "APIConnectionTimeoutError") return true; // latency timeout
return false;
}
export async function complete(messages: OpenAI.Chat.ChatCompletionMessageParam[]) {
let lastErr: unknown;
for (const model of CHAIN) {
for (let attempt = 0; attempt <= RETRIES_PER_MODEL; attempt++) {
try {
return await client.chat.completions.create({ model, messages }, { timeout: TIMEOUT_MS });
} catch (err) {
lastErr = err;
if (!shouldFallback(err)) throw err;
}
}
}
throw lastErr;
}