# Open Interpreter через RouterAI: терминальный coding-агент с любым OpenAI-совместимым провайдером

Open Interpreter ([openinterpreter/openinterpreter](https://github.com/openinterpreter/openinterpreter)) — терминальный coding-агент: читает проект, запускает команды, правит файлы и гоняет тесты. Он работает не только со своими моделями, но и с любым провайдером, который описан в `config.toml`. Через RouterAI агенту доступны Claude, GPT, DeepSeek, GLM и Kimi с одним ключом, работой из России без VPN и оплатой в рублях. Дешёвые агентные модели подходят для рутины, флагманы остаются на сложные задачи.

В статье проверена версия `0.0.59`, бинарник называется `interpreter`.

## Требования

- Linux, macOS или Windows (PowerShell).
- Ключ RouterAI из [личного кабинета](https://routerai.ru/settings/keys).
- Для запуска тестов на примере из статьи нужен Node.js.

## Установка

macOS и Linux:

```bash
curl -fsSL https://www.openinterpreter.com/install | sh
```

Windows (PowerShell) — скрипт `install.ps1` с того же сайта, команда есть на [странице установки](https://www.openinterpreter.com/docs/terminal/install).

Проверьте, что бинарник виден в `PATH`:

```bash
interpreter --version
```

Если команда не найдена, добавьте в `PATH` каталог `~/.local/bin` и откройте новый терминал.

## Подключение к RouterAI

Open Interpreter описывает провайдеров в секциях `[model_providers.<имя>]` файла `~/.openinterpreter/config.toml`. Подключение делится на три шага.

1. Экспортируйте ключ в переменную окружения. Имя переменной вы выбираете сами и указываете его в `env_key`:

   ```bash
   export ROUTERAI_API_KEY=sk-xxxxxxxxxxxxxxxx
   ```

   Чтобы переменная переживала перезапуск терминала, добавьте строку в `~/.bashrc` или `~/.zshrc`.

2. Создайте `~/.openinterpreter/config.toml`:

   ```toml
   model_provider = "routerai"
   model = "deepseek/deepseek-v4.1-flash"
   harness = "minimal"

   [model_providers.routerai]
   name = "RouterAI"
   base_url = "https://routerai.ru/api/v1"
   env_key = "ROUTERAI_API_KEY"
   wire_api = "chat"
   ```

   | Поле | Что делает |
   | --- | --- |
   | `model_provider` | Какую секцию `model_providers` использовать |
   | `model` | Id модели из [каталога RouterAI](https://routerai.ru/models) |
   | `harness` | Набор инструкций и инструментов агента, см. ниже |
   | `base_url` | Адрес API без `/chat/completions` на конце |
   | `env_key` | Имя переменной окружения с ключом |
   | `wire_api` | Протокол: `chat`, `responses` или `messages` |

   ![Конфиг config.toml с провайдером routerai и версия interpreter](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/dc63d48d38006fe3221661b4ab6be1e6.png)

3. Запустите агент в каталоге проекта:

   ```bash
   cd invoices
   interpreter
   ```

   В шапке сессии видна связка «провайдер модель»: `routerai deepseek/deepseek-v4.1-flash`.

### Провайдер, модель и harness

Это три независимые настройки, и путаница между ними — частый источник ошибок.

- **Провайдер** отвечает за адрес API, ключ и протокол (`wire_api`).
- **Модель** — id из каталога RouterAI, например `deepseek/deepseek-v4.1-flash`.
- **Harness** — «обвязка» агента: системные инструкции и набор инструментов. Подробнее о понятии — в [глоссарии](/pages/agent-harness). Open Interpreter по умолчанию подбирает harness под семейство модели, а переопределить его можно командой `/harness` или полем `harness` в конфиге.

Команда `/model` внутри сессии открывает выбор провайдера (Select Provider). RouterAI в списке отмечен как `current`, рядом указана переменная `ROUTERAI_API_KEY`.

![Меню /model: выбор провайдера, RouterAI отмечен как текущий](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/e25a17d3abb00285ea9a747c4f87f5d8.png)

Список моделей в этом меню встроенный. Модель из каталога RouterAI задаётся полем `model` в конфиге или флагом `-m` при запуске:

```bash
interpreter -m z-ai/glm-5.3
```

### Три протокола: `chat`, `responses`, `messages`

| `wire_api` | `base_url` | Когда использовать |
| --- | --- | --- |
| `chat` | `https://routerai.ru/api/v1` | OpenAI-совместимый Chat Completions. Подходит для всех моделей каталога |
| `responses` | `https://routerai.ru/api/v1` | Responses API, если модель и сценарий его требуют |
| `messages` | `https://routerai.ru/api` | Anthropic Messages API, только для моделей Claude |

Для Claude можно добавить второго провайдера рядом с первым:

```toml
[model_providers.routerai-claude]
name = "RouterAI (Anthropic)"
base_url = "https://routerai.ru/api"
env_key = "ROUTERAI_API_KEY"
wire_api = "messages"
```

Выбрать его для одного запуска: `interpreter -c 'model_provider="routerai-claude"' -m anthropic/claude-sonnet-5.5`.

## Выбор модели

Id берите только из [каталога RouterAI](https://routerai.ru/models): список меняется, а цены зависят от модели и объёма контекста.

| Модель | Для чего |
| --- | --- |
| `deepseek/deepseek-v4.1-flash` | Дешёвая агентная модель для рутины: запуск тестов, мелкие правки |
| `z-ai/glm-5.3` | Универсальный вариант для задач на несколько файлов |
| `moonshotai/kimi-k3` | Длинные сессии с чтением кода |
| `anthropic/claude-sonnet-5.5` | Сложный рефакторинг, через `wire_api = "messages"` или `chat` |
| `openai/gpt-6.1-terra` | Флагман OpenAI, подробности в [обзоре](/pages/gpt-6-1-terra-sol-routerai) |

Начните с дешёвой модели и переходите на флагман, когда она не справляется. Менять модель можно без правки файла: `interpreter -m <id>`.

## Проверка подключения

Одноразовый запуск без интерактивного режима делает `interpreter exec`. На демо-проекте Invoices:

```bash
cd invoices
interpreter exec "Run npm test and tell me in one sentence whether tests pass"
```

Агент запускает `npm test`, читает вывод и отвечает одной фразой. В шапке вывода видны `model: deepseek/deepseek-v4.1-flash` и `provider: routerai`.

![interpreter exec на демо-проекте Invoices: провайдер routerai, модель deepseek/deepseek-v4.1-flash](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/bd64ae3ada0723bc8d95d23ff85a964b.png)

Флаг `--chat-completions` включает транспорт Chat Completions для разового запуска. Для провайдера с `wire_api = "chat"` он не нужен.

Режим песочницы задаёт флаг `-s` (например, `-s workspace-write`), остальные флаги покажет `interpreter exec --help`.

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

**Ошибка сразу при первом запросе, хотя ключ верный.** Open Interpreter сам подбирает harness по id модели. Для ряда моделей через `wire_api = "chat"` выбранный автоматически harness не работает, а `harness = "minimal"` работает. Задайте его в конфиге или переключите командой `/harness`. Флаг `--chat-completions` в этом случае не помогает.

**401 Unauthorized.** Ключ не попал в окружение процесса. Переменную из `export` видит только та оболочка, в которой она выставлена, поэтому после правки `~/.bashrc` откройте новый терминал. Проверьте, что `env_key` в конфиге совпадает с именем переменной, и что ключ скопирован целиком.

**404 или «not found».** В `base_url` лишний путь. Правильно `https://routerai.ru/api/v1`, без `/chat/completions` на конце. Для `wire_api = "messages"` адрес другой: `https://routerai.ru/api`.

**Неверный `wire_api`.** Chat Completions-запрос уходит на адрес Messages API или наоборот. Правило: `chat` и `responses` идут на `/api/v1`, `messages` на `/api`.

**Модель не найдена.** Id указан не так, как в каталоге. Берите строку целиком, вместе с префиксом провайдера: `z-ai/glm-5.3`, а не `glm-5.3`.

## Что дальше

- Сравните с другими терминальными агентами: [Pi](/pages/vibe-coding-pi), [Codex](/pages/vibe-coding-codex) и [Goose](/pages/goose-routerai).
- Выберите модель в [каталоге RouterAI](https://routerai.ru/models).
- Опишите правила проекта в [AGENTS.md](/pages/agents-md), чтобы агент не повторял вопросы.
- Документация инструмента: [провайдеры](https://www.openinterpreter.com/docs/terminal/providers) и [справочник конфигурации](https://www.openinterpreter.com/docs/terminal/config-reference).
