https://speshu.ai/api/v1 как базовый адрес и ваш API-ключ. Эндпоинт /api/v1/chat/completions совместим с OpenAI Chat Completions, поэтому Roo Code обращается к нему обычным OpenAI-запросом — менять настройки расширения сверх адреса и ключа не нужно. Ключ создаётся на speshu.ai/profile, подробности — в разделе Аутентификация.Установка
Установите расширение
Ctrl+Shift+X на Windows и Linux, Cmd+Shift+X на macOS), найдите Roo Code и нажмите Install. Расширение ставится в VS Code, Cursor и VSCodium одинаково — это один и тот же пакет.Откройте панель Roo Code
Ключ и идентификатор модели
Ключ не зашивайте ни в настройки расширения, ни в репозиторий: Roo Code хранит конфигурацию в состоянии редактора, и файл с ключом нередко попадает в бэкапы и на общие машины. Получите ключ и сохраните его в менеджере секретов или переменной окружения.{} — корректный ответ: ключ рабочий, записей в кошельке пока нет. Ответ 401 invalid_api_key означает, что ключ недействителен, отозван или истёк.
Идентификатор текстовой модели возьмите из каталога и положите в переменную окружения:
context_length и cost_completion: Roo Code отправляет выбранные файлы целиком, и длинный контекст на дорогой модели съедает баланс быстрее, чем сама задача. Провайдер модели виден в поле owned_by.
Настройка подключения
В Roo Code настройка провайдера живёт в панели расширения, за иконкой шестерёнки. Дальше ориентируйтесь на эти шаги — точные подписи полей немного расходятся между версиями расширения.Откройте список провайдеров
Задайте базовый адрес
https://speshu.ai/api/v1 — без завершающего слэша.Вставьте ключ
sk-.... Roo Code отправляет его заголовком Authorization: Bearer — это то, что ожидает /api/v1/chat/completions.Укажите модель
$TEXT_MODEL из шага выше. Roo Code сам запрашивает список моделей у OpenAI-совместимого провайдера, поэтому поле заполнится автоматически; если не заполнилось, впишите идентификатор вручную — тем же значением, что вернул GET /api/v1/models.Зафиксируйте режим конфигурации
Конфигурация файлом
Если настройку нужно раздать на несколько машин или положить в IaC, Roo Code умеет экспортировать её в JSON: в настройках нажмите Export Settings — расширение спросит имя файла и запишет всю конфигурацию, включая ключ. Форма файла зависит от версии расширения: Roo Code развивается, и имена полей внутри менялись. Надёжный способ узнать имена — сделать Export Settings у себя и посмотреть блок API-конфигурации. По смыслу он выглядит так:globalStorage расширения в каталоге пользовательских данных редактора: ~/.config/Code/User/globalStorage/ на Linux, ~/Library/Application Support/Code/User/globalStorage/ на macOS, %APPDATA%\Code\User\globalStorage\ на Windows. У Cursor каталог называется иначе, но уровень вложенности тот же.
Первый запрос и проверка
Прежде чем запускать агента, убедитесь, что адрес, ключ и модель работают вместе — обычным запросом к API вне редактора:usage.cost.total_cost — сумма, списанная с кошелька в рублях; её имеет смысл записать до начала работы агента, чтобы потом сверить расход. Подробности — в разделе Тарификация и оплата.
Проверьте в Roo Code
Проверьте инструмент, а не только текст
Сделайте первый платный шаг осознанно
Что работает
Потоковую передачу включать не нужно. Roo Code всегда запрашивает ответ потоком и показывает токены по мере поступления — менять настройки для этого не требуется. Разбор формата кадров, маркера[DONE] и кадра со списанием — на странице Потоковая передача.
Инструменты агента. Roo Code сам собирает свой набор инструментов и отправляет его в поле tools запроса, а вызовы читает в choices[0].message.tool_calls — тот же протокол, что и в обычном чате. Схема и разбор аргументов — в гайде Вызов функций. Требование к модели одно: она должна уметь вызывать инструменты. Модель без такой способности ответит текстом, и задача встанет.
MCP-серверы. Инструменты из подключённых MCP-серверов попадают в тот же набор, что и встроенные. Настройка серверов — в гайде MCP.
Изображения. Если в контекст задачи попала картинка, Roo Code передаёт её как блок image_url. Модель без зрения отвергнет такой запрос целиком с 400 invalid_request — картинка не будет молча проигнорирована. Требования к ссылке, base64 и загрузке через хранилище разобраны в гайде Медиаввод.
nano-banana-2; их каталог открыт без ключа. Формат запроса — в разделе Создать задачу.Про контекст
Roo Code сам собирает контекст из открытых файлов и истории диалога, и размер запроса часто оказывается главным ограничением, а не качество модели. Каталог сообщает окно каждой модели в полеcontext_length:
422 content_too_large с числами в тексте ошибки. Лечится это не повтором: сокращайте задачу, сужайте набор файлов или берите модель с окном побольше.
Типичные проблемы
404 на первом же запросе, хотя ключ и модель верны
404 на первом же запросе, хотя ключ и модель верны
https://speshu.ai/api/v1 — без завершающего слэша и без потерянного /v1. Обе частые ошибки дают 404 при полностью рабочем ключе.401 invalid_api_key
401 invalid_api_key
404 model_not_found
404 model_not_found
GET /api/v1/models и подставьте как есть — без префикса и без обрезки.Модель отвечает текстом, но не вызывает инструменты и задача не двигается
Модель отвечает текстом, но не вызывает инструменты и задача не двигается
Агент зависает на большой задаче и получает 504 gateway_timeout
Агент зависает на большой задаче и получает 504 gateway_timeout
402 insufficient_quota
402 insufficient_quota
