Continue.dev: подключение к шлюзу
Continue.dev настраивается файлом config.yaml, а не формой в интерфейсе — из-за этого легко оставить старый apiBase или лишний слеш. Разбираем рабочий конфиг.
4 мин · · Обновлено · IDE
Continue.dev — расширение для VS Code и JetBrains, которое настраивается файлом config.yaml, а не формой с полями. Это удобно для версионирования конфига, но и создаёт свой источник ошибок: строка apiBase может остаться от старого провайдера и тихо ломать все запросы.
Где лежит конфиг
Откройте Continue → значок шестерёнки → Open Assistant Configuration, или найдите файл напрямую: ~/.continue/config.yaml. Модели задаются списком в секции models.
Anthropic-провайдер
models:
- name: Claude Opus 5.5
provider: anthropic
model: claude-opus-5-5
apiKey: fetch_ваш_ключ
apiBase: https://api.zukko.pro/v1/Для Anthropic-провайдера apiBase — с /v1/ на конце (вместе с завершающим слешем): Continue дописывает к нему только messages и сам добавляет заголовок anthropic-version. Без /v1/ запросы уйдут мимо /v1/messages и вернут 404.
OpenAI-совместимый провайдер
models:
- name: GPT 5.6 Sol
provider: openai
model: gpt-5.6-sol
apiKey: fetch_ваш_ключ
apiBase: https://api.zukko.pro/v1
- name: GLM 5.3
provider: openai
model: glm-5.3
apiKey: fetch_ваш_ключ
apiBase: https://api.zukko.pro/v1Здесь apiBase тоже с /v1: провайдер openai в Continue ходит на /chat/completions относительно указанного base URL и сам ничего не дописывает и не убирает.
Можно держать оба блока в одном config.yaml и переключаться между моделями прямо в интерфейсе Continue, не трогая файл.
Проверка ключа отдельно от Continue
Если после сохранения конфига Continue не отвечает, проверьте ключ напрямую:
curl https://api.zukko.pro/v1/messages \
-H "Authorization: Bearer fetch_ваш_ключ" \
-H "Content-Type: application/json" \
-H "anthropic-version: 2023-06-01" \
-d '{"model":"claude-sonnet-5","max_tokens":64,"messages":[{"role":"user","content":"ping"}]}'Заголовок anthropic-version: 2023-06-01 обязателен для /v1/messages — без него запрос может отклоняться ещё до проверки ключа, и тогда причина 401 или 400 не в вашем fetch_..., а именно в отсутствующем заголовке.
YAML — источник тихих ошибок
Отступы в YAML значимы: если apiKey съехал на уровень выше или ниже, Continue либо не подхватит модель вообще, либо отправит запрос без ключа, и тогда вернётся 401 с сообщением про отсутствующий ключ, а не про неверный. Проверить синтаксис можно локально:
python3 -c "import yaml, sys; yaml.safe_load(open('config.yaml'))"Если команда падает с ошибкой — до Continue дело даже не доходит, чините отступы.
Расшифровка ошибок
401— ключ не принят или не передан:{"error":{"message":"Invalid API key. Use Authorization: Bearer fetch_*","type":"authentication_error"}}.402— баланс пуст:{"error":{"message":"Недостаточно средств на балансе","code":"insufficient_balance"}}. Списание проверяется до обращения к модели, так что неудачная попытка бесплатна.404— почти всегда лишний или недостающий/v1вapiBase, реже — опечатка вmodel.400 model_retired— модель снята с обслуживания, замена названа прямо в тексте ошибки.503 model_disabled— модель выключена в каталоге; замените её вconfig.yamlна одну из актуальных.429— от Zukko это только лимит конкретного ключа (key_daily_limit_reachedсо сбросом в 00:00 UTC /key_monthly_limit_reached), если он задан в кабинете на странице ключа; общего rate limit на шлюзе нет, прочие 429 приходят от провайдера модели.
Сейчас доступны claude-opus-5-5, claude-sonnet-5, gpt-5.6-sol, gpt-5.6-luna, glm-5.3 и glm-5.3-flash; актуальный список — GET https://api.zukko.pro/v1/models. Цены и лимиты без ключа:
curl https://api.zukko.pro/v1/models/infoЭтот эндпоинт, в отличие от /v1/models, отдаёт ещё лимиты и цены — удобно сверять перед тем, как прописывать модель в конфиге.
Что настроить дополнительно
Для длинных диалогов в Continue полезно включить кэш ответов — заголовок в Continue напрямую не выставить через config.yaml, но если модель вызывается с temperature: 0 (обычно так и есть при автодополнении кода; для моделей Claude это не подходит — они могут отклонить temperature, отличный от 1), полностью одинаковые запросы одного пользователя (совпадает всё тело) и так кэшируются на срок до 7 суток, повторный ответ приходит мгновенно и бесплатно.
На странице ключа в кабинете https://zukko.pro/app/api-keys можно задать дневной или месячный лимит расхода в долларах и ограничить список разрешённых моделей — стоит сделать сразу, если ключ лежит в конфиге, который синхронизируется между несколькими машинами.
Пополнение баланса — СБП, карта через PayPear, крипта, иностранная карта Mastercard EU через Fride (комиссия около 13%, суммы $2–$594); минимум — $1. Разовый бонус $0.50 начисляется за подписку на Telegram-канал @zukkopro — привяжите Telegram в кабинете, подпишитесь и нажмите «Проверить» (один раз на Telegram-аккаунт). При обычной регистрации стартового баланса нет.
По вопросам — https://t.me/zukkopro?direct.
Бесплатный подсчёт токенов для Anthropic-модели
Если в config.yaml настроена модель через провайдер anthropic, можно заранее узнать вес запроса в токенах, не тратя баланс — эндпоинт /v1/messages/count_tokens только считает, но не выполняет запрос:
curl https://api.zukko.pro/v1/messages/count_tokens \
-H "Authorization: Bearer fetch_ваш_ключ" \
-H "Content-Type: application/json" \
-H "anthropic-version: 2023-06-01" \
-d '{"model":"claude-sonnet-5","messages":[{"role":"user","content":"текст запроса"}]}'Полезно, когда Continue формирует контекст из нескольких открытых файлов сразу — так вы увидите итоговый размер до отправки, а не после ошибки о превышении контекста.
Веб-поиск для моделей без него
Если в конфиге стоит модель без встроенного поиска в интернете — например, GLM — а задаче в чате Continue нужны свежие данные, тем же ключом можно вызвать POST /v1/web-search отдельно и вставить результат в диалог вручную. Это отдельный эндпоинт, не связанный с основной моделью в config.yaml.
Если конфиг общий на несколько человек
config.yaml из Continue легко положить в общий репозиторий команды вместе с остальными настройками проекта — так делают, чтобы у всех был одинаковый список моделей. В этом случае обязательно заведите на ключ лимиты в кабинете и посмотрите GET /v1/usage — история списаний с курсорной пагинацией (общая на весь аккаунт, по всем ключам) покажет, сколько тратит команда суммарно, а не только вы лично.
zukko
Платите в 25×
меньше
за Claude Code & ChatGPT
Один ключ fetch_* и base URL api.zukko.pro — в Cursor, Claude Code, Codex и любом SDK.
Похожие статьи
- JetBrains AI Assistant не работает: причины и обходные путиAI Assistant не активируется, молчит или недоступен в отдельных файлах. Разбираем причины по документации JetBrains и подключаем свои модели через шлюз.
- DeepSeek в VS Code: подключение через Cline, Kilo Code и ContinueПодключаем DeepSeek к Cline, Kilo Code и Continue с одним ключом, выбираем между Flash и Pro и считаем, сколько стоит рабочий день с агентом в редакторе.
- Аналоги GitHub Copilot со своим API-ключом: что выбратьCline, Kilo Code, Continue и Cursor работают со своим ключом. Сравниваем, куда они встроены, как подключаются к шлюзу и как считать расход.
- Invalid API key в opencode: почему ключ не принимается и как проверитьОшибка Invalid API key в opencode почти всегда сводится к четырём причинам. Проверяем ключ отдельно от opencode и находим, где ломается цепочка.