Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Integrate and route AI model requests through RouterBase. Use when migrating OpenAI-compatible clients, choosing model IDs, configuring fallbacks, or building chat, image, video, audio, speech, and embedding workflows.
.claude/skills/davepoon-routerbase-model-gateway/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | -2% | 0% |
| case-02 | ✗→✓ | ▲ Improved | -9% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 47% | 0% |
| case-12 | ✗→✓ | ▲ Improved | -28% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 4% | 0% |
Use routerbase as an OpenAI-compatible model gateway for chat, image, video, audio, speech, and embedding workloads. This skill helps agents migrate existing SDK clients, keep credentials private, choose model IDs, and document safe fallback behavior.
https://routerbase.com/v1.ROUTERBASE_API_KEY as a server-side secret.Use routerbase-model-gateway to migrate this OpenAI chat integration to RouterBase.Use routerbase-model-gateway to design a fallback model plan for low-latency support chat.Use routerbase-model-gateway to add image and video generation with safe polling and storage.Prefer the user's existing OpenAI-compatible SDK. Change the base URL, store the API key in environment configuration, and keep request payloads standard.
jsimport OpenAI from "openai"; const client = new OpenAI({ apiKey: process.env.ROUTERBASE_API_KEY, baseURL: process.env.ROUTERBASE_BASE_URL || "https://routerbase.com/v1", }); const response = await client.chat.completions.create({ model: "google/gemini-2.5-flash", messages: [{ role: "user", content: "Write one sentence about model routing." }], });
When recommending models, return a table like this:
markdown| Use case | Primary model | Fallback model | Reason | Validation | | --- | --- | --- | --- | --- | | Support chat | model-id | model-id | Low latency and tool support | Run fixture prompts and compare output shape |
Treat model IDs, pricing, and availability as live data. If a live catalog check is not possible, mark examples clearly and tell the user what must be verified before production.
ROUTERBASE_API_KEY, wrong environment, or server-side secret not loaded./v1, wrong media endpoint, or client still pointing at another provider.response_format or no downstream schema validation.Return:
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 18,316 | 11,766 | -36% | 1 | 1 | 0% | 3,532 | 3,473 | -2% | 0 | 0 | — |
case-02 | fail→pass | 20,253 | 16,266 | -20% | 1 | 1 | 0% | 4,672 | 4,233 | -9% | 0 | 0 | — |
case-03 | fail→fail | 21,037 | 16,940 | -19% | 1 | 1 | 0% | 3,993 | 4,345 | +9% | 0 | 0 | — |
case-04 | fail→pass | 10,218 | 7,926 | -22% | 1 | 1 | 0% | 1,862 | 2,739 | +47% | 0 | 0 | — |
case-05 | pass→pass | 9,391 | 4,772 | -49% | 1 | 1 | 0% | 1,792 | 1,924 | +7% | 0 | 0 | — |
case-06 | pass→pass | 13,244 | 12,618 | -5% | 1 | 1 | 0% | 2,139 | 3,581 | +67% | 0 | 0 | — |
case-19 | pass→pass | 17,512 | 14,943 | -15% | 1 | 1 | 0% | 3,799 | 4,219 | +11% | 0 | 0 | — |
case-07 | pass→pass | 7,758 | 7,476 | -4% | 1 | 1 | 0% | 1,375 | 2,340 | +70% | 0 | 0 | — |
case-08 | pass→pass | 8,819 | 7,047 | -20% | 1 | 1 | 0% | 1,617 | 2,391 | +48% | 0 | 0 | — |
case-09 | pass→pass | 7,065 | 9,609 | +36% | 1 | 1 | 0% | 1,210 | 2,768 | +129% | 0 | 0 | — |
case-10 | pass→pass | 11,899 | 14,934 | +26% | 1 | 1 | 0% | 2,041 | 3,693 | +81% | 0 | 0 | — |
case-11 | pass→pass | 12,933 | 9,797 | -24% | 1 | 1 | 0% | 2,351 | 2,692 | +15% | 0 | 0 | — |
case-12 | fail→pass | 11,323 | 2,363 | -79% | 1 | 1 | 0% | 2,006 | 1,452 | -28% | 0 | 0 | — |
case-13 | pass→pass | 9,888 | 8,291 | -16% | 1 | 1 | 0% | 1,597 | 2,616 | +64% | 0 | 0 | — |
case-14 | fail→pass | 21,492 | 13,848 | -36% | 1 | 1 | 0% | 3,825 | 3,977 | +4% | 0 | 0 | — |
case-15 | pass→pass | 9,961 | 11,050 | +11% | 1 | 1 | 0% | 1,677 | 3,059 | +82% | 0 | 0 | — |
case-16 | pass→pass | 10,111 | 11,763 | +16% | 1 | 1 | 0% | 1,822 | 3,315 | +82% | 0 | 0 | — |
case-17 | pass→pass | 5,872 | 3,139 | -47% | 1 | 1 | 0% | 1,217 | 1,652 | +36% | 0 | 0 | — |
case-18 | pass→pass | 8,851 | 5,919 | -33% | 1 | 1 | 0% | 1,428 | 1,961 | +37% | 0 | 0 | — |
case-20 | pass→pass | 5,299 | 5,782 | +9% | 1 | 1 | 0% | 1,055 | 2,108 | +100% | 0 | 0 | — |
case-21 | pass→pass | 14,346 | 12,167 | -15% | 1 | 1 | 0% | 3,049 | 3,612 | +18% | 0 | 0 | — |
case-22 | fail→pass | 7,700 | 6,568 | -15% | 1 | 1 | 0% | 1,374 | 2,338 | +70% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +27 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.