open gateway · no key required

Frontier models,
nothing to pay.

An OpenAI- and Anthropic-compatible API in front of a curated set of frontier models. Point Claude Code, OpenCode, or any SDK at it — no signup, no key.

Available models

Three providers, one API

Click an ID to copy. Recommended defaults are f/fugu, f/gpt-4o, and m/deepseek-v4-pro.

loading live catalog…

Connect your tools

Claude Code

Claude Code speaks the Anthropic API. Point it at this gateway with two environment variables, then pick any model above.

~/.bashrc · ~/.zshrc
// ~/.claude/settings.json — point Claude Code at taiwanAI
{
  "env": {
    "ANTHROPIC_API_KEY": "rich",
    "ANTHROPIC_BASE_URL": "https://taiwanAI-production.up.railway.app",
    "CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY": "1",
    "ENABLE_TOOL_SEARCH": "true",
    "ANTHROPIC_MODEL": "h/sakana-fugu-ultra",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "h/sakana-fugu-ultra",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "u/claude-sonnet-5",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "h/sakana-namazu",
    "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
  }
}
The key is rich. This gateway doesn't authenticate requests — the value isn't checked — but the tooling requires the variable to be set, so use rich.

OpenCode

Add taiwanAI as a provider in opencode.json. It uses the OpenAI-compatible endpoint at .

opencode.json
// opencode.jsonc — add under "provider"
"taiwanAI": {
  "npm": "@ai-sdk/openai-compatible",
  "name": "taiwanAI",
  "options": {
    "apiKey": "rich",
    "baseURL": "https://taiwanAI-production.up.railway.app/v1"
  },
          "models": {
            // Sakana (fugu-ultra, fugu, namazu)
            "h/sakana-fugu-ultra": { "name": "Sakana Fugu Ultra" },
            "h/sakana-fugu": { "name": "Sakana Fugu" },
            "h/sakana-namazu": { "name": "Sakana Namazu" },
            // Anthropic (use.ai)
            "u/claude-sonnet-5": { "name": "Claude Sonnet 5" },
            "u/claude-3-7-sonnet-v2": { "name": "Claude 3.7 Sonnet v2" },
            "u/claude-haiku-4-0": { "name": "Claude Haiku 4.0" },
            // OpenAI (use.ai)
            "u/gpt-5-5": { "name": "GPT-5.5" },
            "u/gpt-5-4": { "name": "GPT-5.4" },
            "u/gpt-4o": { "name": "GPT-4o" },
            // Google (use.ai)
            "u/gemini-3-1-pro": { "name": "Gemini 3.1 Pro" },
            // DeepSeek (use.ai)
            "u/deepseek-v4-pro": { "name": "DeepSeek v4 Pro" },
            "u/deepseek-v4-flash": { "name": "DeepSeek v4 Flash" },
            // Cloudflare Workers AI
            "c/glm-5.2": { "name": "GLM 5.2" },
            "c/glm-4.7-flash": { "name": "GLM 4.7 Flash" },
            "c/kimi-k2.7-code": { "name": "Kimi K2.7 Code" }
          }
}

Raw API

Or call it directly

Both dialects are live. Anthropic at /v1/messages, OpenAI at /v1/chat/completions.

curl · OpenAI
curl /v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{"model":"h/sakana-fugu-ultra","messages":[{"role":"user","content":"hi"}]}'
python · Anthropic SDK
from anthropic import Anthropic
client = Anthropic(base_url="", api_key="rich")
print(client.messages.create(
    model="h/sakana-fugu-ultra", max_tokens=1024,
    messages=[{"role": "user", "content": "hello"}],
).content[0].text)