SDK и клиенты
Выберите совместимый протокол и не смешивайте Anthropic-scoped и OpenAI-scoped ключи в одном provider-конфиге.
SDK
from openai import OpenAI
client = OpenAI(
api_key="gyw-sk-YOUR_KEY",
base_url="https://api.gateyourway.com/v1",
)import anthropic
client = anthropic.Anthropic(
api_key="gyw-sk-YOUR_KEY",
base_url="https://api.gateyourway.com",
)OpenAI Base URL: https://api.gateyourway.com/v1/cursor
API key: gyw-sk-YOUR_KEY
Custom model: gyw-opus-5# ~/.codex/config.toml
[model_providers.gateyourway]
name = "GateYourWay"
base_url = "https://api.gateyourway.com/v1"
# env_key is the environment variable name, not the API key itself.
env_key = "GATEYOURWAY_API_KEY"
wire_api = "responses"
# ~/.codex/gateyourway.config.toml
model_provider = "gateyourway"
model = "gpt-5.6-luna"Правила совместимости
| Клиент | Protocol / base URL | Примечание |
|---|---|---|
| Claude Code | https://api.gateyourway.com | ANTHROPIC_API_KEY + ANTHROPIC_BASE_URL |
| OpenCode / Claude | https://api.gateyourway.com/v1 | @ai-sdk/anthropic |
| OpenCode / GPT, Grok | https://api.gateyourway.com/v1 | @ai-sdk/openai-compatible |
| Cursor / Opus 5 | https://api.gateyourway.com/v1/cursor | gyw-opus-5 |
| Codex CLI | https://api.gateyourway.com/v1 | wire_api = "responses" |
| CC Switch | Custom OpenAI или Anthropic | Выберите протокол по семейству ключа. |
| Pi | ~/.pi/agent/models.json | openai-responses, openai-completions или anthropic-messages |
| oh-my-pi | ~/.omp/agent/models.yml | Отдельная YAML-схема; не используйте конфиг Pi. |
| Roo Code | OpenAI Compatible или Anthropic | Укажите custom base URL и точный model ID. |
| Cline | OpenAI Compatible или Anthropic | Проверьте соединение до запуска agent task. |
Cursor + Claude Opus 5
Cursor Agent/Chat использует отдельный OpenAI-compatible bridge. Для него нельзя использовать обычный Anthropic model ID.
| Параметр | Значение |
|---|---|
| Режим | Custom OpenAI API |
| OpenAI Base URL | https://api.gateyourway.com/v1/cursor |
| Модель | gyw-opus-5 |
| Группа ключа | Claude Arctic |
| Context profile | 1,000,000 |
| Default maximum output | 128,000 |
| Reasoning | adaptive, default max |
Проверка bridge
curl https://api.gateyourway.com/v1/cursor/models \
-H "Authorization: Bearer gyw-sk-YOUR_CLAUDE_ARCTIC_KEY"Ответ должен содержать только gyw-opus-5. После этого проверьте реальный Agent/Chat turn, tool call и продолжение после tool result.
OpenCode + Claude Opus 5
OpenCode использует нативный Anthropic Messages transport через @ai-sdk/anthropic. Для Opus 5 нужен ключ группы Claude Arctic.
{
"$schema": "https://opencode.ai/config.json",
"model": "gateyourway/claude-opus-5",
"small_model": "gateyourway/claude-opus-5",
"attachment": {
"image": {
"auto_resize": true,
"max_width": 2000,
"max_height": 2000,
"max_base64_bytes": 5242880
}
},
"compaction": {
"auto": true,
"prune": true,
"reserved": 128000
},
"provider": {
"gateyourway": {
"npm": "@ai-sdk/anthropic",
"name": "GateYourWay",
"options": {
"baseURL": "https://api.gateyourway.com/v1",
"apiKey": "{env:GATEYOURWAY_API_KEY}",
"timeout": 1800000,
"chunkTimeout": 120000
},
"models": {
"claude-opus-5": {
"name": "Claude Opus 5 - 1M / 128K",
"attachment": true,
"modalities": {
"input": ["text", "image"],
"output": ["text"]
},
"limit": {
"context": 1000000,
"output": 128000
}
}
}
}
}
}baseURLуже содержит/v1; не добавляйте/messages.small_modelфиксируется на Opus 5, чтобы служебные операции не переключались на неподдерживаемую модель.modalities.inputобъявляет поддержку text + image; без этого OpenCode может удалить image part.timeout/chunkTimeoutоставляют время для длительного reasoning и tool loops.
Проверка API отдельно от клиента
curl https://api.gateyourway.com/v1/messages \
-H "x-api-key: $GATEYOURWAY_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-opus-5",
"max_tokens": 256,
"messages": [{"role":"user","content":"Reply with exactly: GateYourWay OpenCode OK"}]
}'После запуска OpenCode проверьте opencode debug config, два последовательных turn, tool-result continuation и vision через настоящее attachment, а не текстовый путь к файлу.
Актуальные форматы конфигурации
Эти пути и поля сверены с последними официальными руководствами клиентов. Форматы Pi и oh-my-pi несовместимы между собой.
| Клиент | Куда записывать | Критическое правило |
|---|---|---|
| Codex CLI | ~/.codex/config.toml + ~/.codex/gateyourway.config.toml | env_key содержит имя GATEYOURWAY_API_KEY, не секрет. Не используйте [profiles.gateyourway]. |
| Claude Code | Переменные окружения текущего shell | ANTHROPIC_API_KEY + ANTHROPIC_BASE_URL; base URL без /v1 |
| CC Switch | App-specific Custom provider | Для Claude Code используйте env JSON; для Codex сохраняйте отдельный profile-файл новой схемы. |
| Pi | ~/.pi/agent/models.json | JSON provider; Pi автоматически перечитывает файл. |
| oh-my-pi | ~/.omp/agent/models.yml | YAML provider с явным api. |
| Roo Code | Settings → API Provider | OpenAI Compatible для GPT/Grok; Anthropic для Claude. |
| Cline | API Provider settings | Укажите custom base URL, ключ и model ID, затем выполните Verify. |
Официальные источники: Codex CLI, Claude Code, CC Switch, Pi, oh-my-pi, Roo Code, Cline.
Troubleshooting
| Симптом | Проверка |
|---|---|
| Codex: Missing environment variable | В env_key должно быть GATEYOURWAY_API_KEY. Сам ключ экспортируется в переменную окружения. |
| Codex: legacy profile error | Удалите profile = "gateyourway" и [profiles.gateyourway]; используйте отдельный gateyourway.config.toml. |
| Cursor 404 / model missing | Проверьте /v1/cursor и model ID gyw-opus-5. |
| OpenCode 404 / provider error | Используйте /v1, claude-opus-5 и @ai-sdk/anthropic. |
| Изображение не дошло | Проверьте attachment: true, image modality и реальный attachment preview. |
| Первый turn работает, второй зависает | Сохраните время, версию клиента, request ID и последние 6 символов ключа; не передавайте полный ключ. |
Автоматическая настройка
Мастер генерирует отдельные актуальные конфиги Codex CLI, Claude Code, CC Switch, Pi, oh-my-pi, Roo Code и Cline. Cursor и OpenCode сохраняют свои существующие специализированные инструкции.
Соберите конфигурацию клиента
Ключ подставляется только в локальный результат браузера и не сохраняется в storage.