> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ruapi.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# OpenCode в России: как подключить Claude, DeepSeek и GPT через RuAPI

> Пошаговая настройка OpenCode — открытого ИИ-агента для разработки в терминале — с RuAPI: Claude через провайдера Anthropic с кэшированием промптов, DeepSeek, GPT и другие модели через OpenAI-совместимый провайдер. Без VPN, оплата в USDT.

[OpenCode](https://opencode.ai) — ИИ-агент для разработки с открытым исходным кодом, который работает в терминале: читает и редактирует файлы проекта, выполняет команды и доводит задачу до конца. Он не привязан к одному поставщику моделей, поэтому подключается к RuAPI напрямую. RuAPI даёт доступ к Claude, GPT, Gemini, DeepSeek, GLM, Qwen и Kimi по одному ключу и работает из России без VPN. Баланс пополняется в USDT, карта иностранного банка не нужна.

## Как это устроено

В OpenCode модели подключаются через провайдеров, которые описываются в файле `opencode.json`. Для RuAPI нужны два:

| Провайдер в OpenCode | Адрес | Модели | Зачем |
| - | - | - | - |
| `anthropic` (встроенный) | `https://www.ruapi.ai/v1` | Claude: `claude-opus-5-5`, `claude-sonnet-5-5`, `claude-haiku-5-5` | Родной формат Claude: работает кэширование промптов, повторно отправляемый контекст обходится минимум в 10 раз дешевле |
| `ruapi` (свой, OpenAI-совместимый) | `https://www.ruapi.ai/v1` | DeepSeek, GPT, Gemini, GLM, Qwen, Kimi и другие | Один адрес для всех остальных моделей |

## Что понадобится

<Steps>
  <Step title="Ключ RuAPI">
    Зарегистрируйтесь на [www.ruapi.ai](https://www.ruapi.ai/?utm_source=docs\&utm_campaign=ru-opencode) и пополните баланс ([как пополнить](/ru/topup)). Затем откройте Консоль → **API-ключи** и нажмите **Создать ключ**. Ключ начинается с `sk-`.
  </Step>

  <Step title="Установленный OpenCode">
    На macOS и Linux:

    ```bash theme={null}
    curl -fsSL https://opencode.ai/install | bash
    ```

    Или через npm на любой системе, включая Windows:

    ```bash theme={null}
    npm install -g opencode-ai
    ```

    На Windows разработчики OpenCode рекомендуют работать в WSL.
  </Step>
</Steps>

<Tip>
  Банковская карта не нужна: баланс пополняется в USDT. Если USDT у вас ещё нет, купить его за рубли поможет [пошаговая инструкция](/ru/buy-usdt). Карты иностранных банков тоже принимаются.
</Tip>

## Шаг 1. Сохраните ключ в переменной окружения

Чтобы ключ не попал в файл настроек, OpenCode будет брать его из переменной окружения `RUAPI_API_KEY`.

<Tabs>
  <Tab title="macOS / Linux">
    Добавьте строку в `~/.zshrc` (или `~/.bashrc`, если у вас bash), подставив свой ключ:

    ```bash theme={null}
    echo 'export RUAPI_API_KEY="sk-ваш-ключ"' >> ~/.zshrc
    ```

    Затем откройте новое окно терминала, чтобы изменения вступили в силу.
  </Tab>

  <Tab title="Windows (PowerShell)">
    ```powershell theme={null}
    setx RUAPI_API_KEY "sk-ваш-ключ"
    ```

    Затем откройте новое окно PowerShell, чтобы изменения вступили в силу.
  </Tab>
</Tabs>

## Шаг 2. Опишите провайдеров в opencode.json

Откройте (или создайте) глобальный файл настроек `~/.config/opencode/opencode.json` и вставьте:

```json theme={null}
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "anthropic": {
      "options": {
        "baseURL": "https://www.ruapi.ai/v1",
        "apiKey": "{env:RUAPI_API_KEY}"
      }
    },
    "ruapi": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "RuAPI",
      "options": {
        "baseURL": "https://www.ruapi.ai/v1",
        "apiKey": "{env:RUAPI_API_KEY}"
      },
      "models": {
        "deepseek-flash": { "name": "DeepSeek Flash" },
        "deepseek-v4-pro": { "name": "DeepSeek V4 Pro" },
        "gpt-5.4": { "name": "GPT-5.4" },
        "glm-5.3": { "name": "GLM-5.3" }
      }
    }
  },
  "model": "anthropic/claude-sonnet-5-5"
}
```

Что здесь происходит:

* **`anthropic`** — встроенный провайдер OpenCode для Claude. В конфигурации ему только меняется адрес на RuAPI и подставляется ваш ключ, поэтому запросы идут в родном формате Claude, с кэшированием.
* **`ruapi`** — свой провайдер для всех остальных моделей. Чтобы добавить модель, допишите строку в блок `models`, например, `"kimi/kimi-k3": { "name": "Kimi K3" }`. Точные имена моделей приведены на [странице цен](https://www.ruapi.ai/pricing?utm_source=docs\&utm_campaign=ru-opencode).
* **`model`** — модель по умолчанию в формате `провайдер/модель`.

<Note>
  Если файл `opencode.json` лежит и в папке проекта, OpenCode объединяет оба файла, причём настройки проекта имеют приоритет над глобальными. Не храните ключ прямо в файле проекта — используйте `{env:RUAPI_API_KEY}`, как в примере.
</Note>

## Шаг 3. Запустите OpenCode и выберите модель

Перейдите в папку проекта и запустите агента:

```bash theme={null}
cd путь/к/проекту
```

```bash theme={null}
opencode
```

В OpenCode введите `/models` и выберите модель, например, `anthropic/claude-sonnet-5-5` или `ruapi/deepseek-flash`. Затем поставьте задачу:

```
Добавь обработку ошибок в функцию parseConfig в файле config.ts
```

Чтобы убедиться, что запросы идут через RuAPI, откройте Консоль → **Журнал запросов**: там появятся записи с моделью и стоимостью каждого запроса. Для Claude начиная со второго-третьего шага в подробностях записи видно, сколько токенов прочитано из кэша.

## Какую модель выбрать

| Задача | Модель |
| - | - |
| Сложные задачи, проектирование | `anthropic/claude-opus-5-5` |
| Повседневная работа с кодом | `anthropic/claude-sonnet-5-5` |
| Много рутинных правок при небольшом бюджете | `ruapi/deepseek-flash` (у DeepSeek кэширование включается автоматически) |

## Решение проблем

<AccordionGroup>
  <Accordion title="401 / неверный ключ">
    * Проверьте, что переменная `RUAPI_API_KEY` доступна в терминале, где запущен OpenCode: после её создания нужно открыть новое окно.
    * В обоих провайдерах `baseURL` должен быть `https://www.ruapi.ai/v1`.
  </Accordion>

  <Accordion title="Модели Claude нет в списке /models">
    Список моделей встроенного провайдера `anthropic` OpenCode берёт из своего каталога. Обновите OpenCode; если модели всё равно нет, добавьте в блок `anthropic` раздел `models` с нужным именем, например, `"claude-opus-5-5": { "name": "Claude Opus 5.5" }`.
  </Accordion>

  <Accordion title="Модель не найдена (404 или 503)">
    Имя модели должно в точности совпадать с именем на RuAPI — скопируйте его со [страницы цен](https://www.ruapi.ai/pricing?utm_source=docs\&utm_campaign=ru-opencode). Модели Claude выбирайте у провайдера `anthropic`, остальные — у `ruapi`.
  </Accordion>

  <Accordion title="Ошибка в файле настроек">
    Проверьте, что JSON корректен: все кавычки двойные, после последнего элемента в блоке нет лишней запятой.
  </Accordion>

  <Accordion title="400: The reasoning_content in the thinking mode must be passed back">
    Такое случается у DeepSeek в режиме рассуждений, если сменить модель посреди задачи. В большинстве случаев RuAPI сам повторяет запрос в исправленном виде. Если ошибка не исчезла, начните новую сессию.
  </Accordion>
</AccordionGroup>

## Что дальше

* [Claude Code](/ru/integrations/claude-code) и [Codex](/ru/integrations/codex) — другие агенты для терминала.
* [Переход с Cursor](/ru/integrations/cursor-alternatives) — сравнение агентов и пошаговая инструкция.
* [Модели и цены](/ru/models) — список доступных моделей.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.