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;
}
Help