---
title: Расширения VS Code
description: Cline, Roo Code и Continue — один и тот же OpenAI-совместимый провайдер: base URL, ключ, идентификатор модели. Где эти поля лежат у каждого.
keywords: vs code, cline, roo code, continue, openai compatible, apiBase, config.yaml
group: integrations
---

## Быстро {#quick keywords="openai compatible, base url, ключ, модель"}

Все три расширения подключаются одинаково: они умеют «OpenAI-совместимого» провайдера, а значит, им нужны три значения — адрес, ключ, модель.

```yaml title=Провайдер
# Cline Roo Code Continue → OpenAI-compatible provider
- name: Kumo
  provider: openai
  apiBase: https://api.kumorouter.com/v1
  apiKey: ${KUMO_API_KEY}
  model: <model>
```

Base URL заканчивается на `/v1` — это OpenAI-совместимый диалект. Идентификатор модели берите из [каталога](/ru/models): расширение подставит его в запрос как есть и своего списка моделей Kumo не знает.

## Cline и Roo Code {#cline keywords="cline, roo code, api provider, model id, панель настроек"}

Оба расширения хранят провайдера в собственной панели настроек внутри VS Code, а ключ — в защищённом хранилище редактора. Файла, который стоило бы править руками, здесь нет.

:::steps
- **Проверьте, что стоит** — `code --list-extensions` покажет, установлен ли Cline, Roo Code или оба.
- **Откройте настройки расширения** — Экран выбора провайдера в его панели.
- **API Provider** — Выберите «OpenAI Compatible».
- **Base URL** — `https://api.kumorouter.com/v1`.
- **API Key** — Ваш ключ Kumo.
- **Model ID** — Идентификатор из каталога.
:::

У расширений есть переключатели возможностей — изображения, работа с экраном, кеширование промпта. Держите выключенными те, которых выбранная модель не поддерживает: включённый переключатель добавляет в запрос поля, которых модель не ждёт. Что именно умеет модель, написано на её карточке в [каталоге](/ru/models).

Расположение полей меняется от выпуска к выпуску. Если на экране не то, что описано выше, ориентируйтесь на то, что видите: пара «провайдер» и «base URL» есть в любом выпуске.

## Continue {#continue keywords="continue, config.yaml, config.json, models, roles"}

Continue настраивается файлом, и файл существует в двух форматах. Правьте тот, который у вас **уже есть**, и не заводите второй.

- `~/.continue/config.yaml` — текущий формат.
- `~/.continue/config.json` — прежний формат.

Модель **добавляется** в список, а не заменяет его: рядом остаются те, что уже настроены.

:::code-group
```yaml title=config.yaml
models:
  - name: Kumo
    provider: openai
    model: <model>
    apiBase: https://api.kumorouter.com/v1
    apiKey: <ваш ключ>
    roles: [chat, edit, apply]
```
```json title=config.json
{
  "models": [
    {
      "title": "Kumo",
      "provider": "openai",
      "model": "<model>",
      "apiBase": "https://api.kumorouter.com/v1",
      "apiKey": "<ваш ключ>"
    }
  ]
}
```
:::

Добавьте вторую запись с другой моделью, если хотите переключаться прямо в Continue, не возвращаясь к файлу.

:::warning
Ключ в этом файле лежит открытым текстом. Проверьте, умеет ли ваш выпуск Continue читать ключ из переменной окружения, — если умеет, используйте её. Файл конфигурации в репозитории под контролем версий ключа содержать не должен.
:::

## Проверка {#verify keywords="проверка, curl, перезагрузка окна"}

Ключ в расширение вы вписываете целиком, а команда ниже читает его из переменной оболочки: экспортируйте ключ один раз в том терминале, из которого проверяете.

```bash title=Проверка
export KUMO_API_KEY="kumo_sk_..."

curl https://api.kumorouter.com/v1/chat/completions \
  -H "Authorization: Bearer $KUMO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "<model>",
    "max_tokens": 64,
    "messages": [{ "role": "user", "content": "reply with OK" }]
  }'
```

Если curl отвечает — перезагрузите окно редактора, выберите добавленную модель в чате расширения, отправьте одно сообщение и найдите вызов в журнале консоли.

## Если не работает {#troubleshooting keywords="401, 404, config, модель"}

- **401** — ключ не тот или не сохранён в панели расширения.
- **404** — в base URL нет `/v1`, либо расширение дописывает путь само; сверьте адрес запроса в выводе расширения.
- **Модель не найдена** — идентификатор не из каталога.
- **Continue не видит правок** — правится не тот файл: у вас два формата конфигурации, а читается один.
- **Ответ обрывается или отвергается** — включён переключатель возможности, которой у модели нет. Выключите и повторите.

> [Что умеет модель →](/ru/models) [Все статусы шлюза →](/ru/errors)

:::cards
- [Cursor](/ru/cursor) — редактор со своим экраном настроек.
- [Другие инструменты](/ru/other-tools) — Aider, Zed, OpenClaw.
- [Все рецепты](/ru/integrations) — обзор и промпт для агента.
:::
