# Вайб-кодинг в Forge: настройка терминального агента через RouterAI (Claude, GPT-6, DeepSeek)

## Forge

Forge (проект [tailcallhq/forgecode](https://github.com/tailcallhq/forgecode), сайт [forgecode.dev](https://forgecode.dev/)) — терминальный coding-агент с открытым кодом. Он читает и правит файлы, запускает команды и работает в трёх режимах: интерактивный TUI, одноразовые запросы `forge -p "..."` и ZSH-плагин, где любой запрос начинается с `:` прямо в командной строке. В комплекте есть агенты для реализации, исследования кода и планирования, skills, семантический поиск по проекту и поддержка MCP-серверов.

Forge умеет работать с любым OpenAI-совместимым и Anthropic-совместимым API, поэтому RouterAI подключается как обычный провайдер. Вы получаете в одном агенте Claude, GPT, DeepSeek и GLM из [каталога моделей](/models), работу из России без VPN и оплату в рублях.

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

* macOS, Linux или Windows; для ZSH-плагина нужен zsh
* Node.js — только если ставите через npm
* API-ключ из [личного кабинета](/settings/keys)
* Положительный баланс в [Биллинге](/settings/billing)

## Установка

Через npm (пакет `forgecode`):

```bash
npm install -g forgecode
```

Через Homebrew (формула `forgecode` есть в homebrew/core):

```bash
brew install forgecode
```

В README проекта также указана установка скриптом `curl -fsSL https://forgecode.dev/cli | sh`, но на момент написания статьи этот адрес отвечал 404 — используйте npm или Homebrew. Готовые бинарники для Linux, macOS и Windows лежат на странице [Releases](https://github.com/tailcallhq/forgecode/releases). На системах со старой glibc берите сборку `musl` (`forge-x86_64-unknown-linux-musl`): `gnu`-бинарник требует glibc 2.39.

Проверьте установку:

```bash
forge --version
```

![1.00](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/665112913ebd9d724324edec5c584e56.png)

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

В Forge RouterAI добавляется как провайдер «OpenAICompatible». Base URL — `https://routerai.ru/api/v1`, ключ — из личного кабинета.

### Интерактивный вход

1. Запустите мастер входа: `forge provider login`.
2. В списке провайдеров начните вводить `compat` и выберите **OpenAICompatible**.
3. На запрос **Enter OPENAI\_URL** введите `https://routerai.ru/api/v1`.
4. На запрос **Enter your OpenAICompatible API key** вставьте ключ вида `sk-xxxxxxxxxxxxxxxx`.

```bash
forge provider login
```

![1.00](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/b8d36fb5e51658132b7fd876cfde70f0.png)

![1.00](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/00e0a149120d3747565595449aa77dc2.png)

![1.00](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/df2f6b2df57f40d580d91c977bcd996c.png)

После успешного входа Forge сообщает «OpenAICompatible configured successfully». Учётные данные хранятся в `~/.forge/.credentials.json`. Список провайдеров и статус входа показывает `forge provider list`, выйти — `forge provider logout`.

### Выбор модели по умолчанию

Провайдер и модель задаются одной командой. Идентификатор модели — тот же, что в [каталоге](/models):

```bash
forge config set model openai_compatible anthropic/claude-sonnet-5.5
```

Команда записывает выбор в глобальный конфиг `~/.forge/.forge.toml` (путь выводит `forge config path`):

```toml
[session]
provider_id = "openai_compatible"
model_id = "anthropic/claude-sonnet-5.5"
```

Список моделей, которые Forge получает у RouterAI, показывает `forge list model`. Внутри сессии модель меняется командой `:model`.

### Старый способ: переменные окружения

В документации Forge настройка через `.env` помечена как устаревшая, но при первом запуске Forge подхватывает переменные и переносит их в `.credentials.json`:

```bash
export OPENAI_API_KEY="sk-xxxxxxxxxxxxxxxx"
export OPENAI_URL="https://routerai.ru/api/v1"
forge
```

После миграции Forge предупреждает, что больше не читает ключи из окружения, — дальше используется сохранённый файл. Если ключ в файле нужно заменить, повторите `forge provider login`.

### Anthropic-совместимый API

Для моделей `anthropic/*` в списке есть провайдер **AnthropicCompatible**. Вход такой же, как для OpenAICompatible, но Forge запрашивает `ANTHROPIC_URL` и достраивает к нему путь `/messages`, поэтому в поле указывайте `https://routerai.ru/api/v1` (на момент написания эта связка работала с `anthropic/claude-haiku-5.5`). Затем выберите модель командой `forge config set model anthropic_compatible anthropic/claude-sonnet-5.5`. Если нативный Messages API вам не нужен, оставайтесь на OpenAI-совместимом провайдере: он работает со всеми моделями каталога.

> Не коммитьте `.credentials.json` и файлы с ключом в git. Не запускайте агент в папке с чужим непроверенным конфигом.

## Три режима работы

### Интерактивный TUI

Команда `forge` без аргументов открывает сессию в текущей папке. Печатаете задачу, Forge читает файлы, показывает diff правок, запускает команды и помнит контекст.

```bash
cd /path/to/your/project
forge
```

Полезные варианты запуска: `forge -C /path/to/project` (другая папка), `forge --agent <id>` (конкретный агент), `forge --sandbox experiment` (изолированный git worktree и ветка для рискованных экспериментов), `forge --conversation-id <id>` (вернуться к сохранённой беседе).

![1.00](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/241a874ba1f6f9d53eb462f5132bfd76.png)

### Одноразовый запрос

Флаг `-p` выполняет один запрос и возвращает управление оболочке — удобно для скриптов и быстрых вопросов:

```bash
forge -p "Объясни одной фразой, что делает invoices.js"
echo "Что делает этот проект?" | forge
forge commit              # сообщение коммита от ИИ по вашему diff
forge commit --preview    # только показать сообщение
forge suggest "найти большие лог-файлы"   # описание на русском → shell-команда
```

### ZSH-плагин с префиксом `:`

Установите плагин один раз:

```bash
forge setup
```

Команда добавляет плагин и тему в `.zshrc`. После этого строки, начинающиеся с `:`, перехватываются Forge, а остальные команды работают как обычно:

```zsh
: перепиши модуль авторизации на новый middleware   # запрос активному агенту
:ask как устроен слой кэширования?                  # агент sage: только чтение
:plan составь план миграции                         # агент muse: план в папку plans/
:commit                                             # коммит с сообщением от ИИ
:suggest найти файлы больше 100 МБ                  # команда появится в строке ввода
```

Три встроенных агента: `forge` (реализация, меняет файлы), `sage` (исследование, алиас `:ask`), `muse` (планирование, алиас `:plan`). Файлы прикрепляются так: введите `@` и нажмите Tab — выбранный путь вставится как `@[src/auth.js]`.

Беседы сохраняются и переключаются как каталоги: `:new` начинает новую, `:conversation` открывает выбор с превью, `:conversation -` возвращает к предыдущей, `:clone` ответвляет текущую, `:retry` повторяет последний запрос, `:compact` сжимает контекст. Если что-то не работает, `forge doctor` проверит окружение.

## Skills и настройка агентов

Skills — переиспользуемые сценарии, которые агент вызывает как инструменты. Встроены `create-skill`, `execute-plan` и `github-pr-description`; список показывает `:skill`. Свой skill — это файл `SKILL.md` с YAML front-matter:

| Где лежит                       | Область                               |
| ------------------------------- | ------------------------------------- |
| `.forge/skills/<имя>/SKILL.md`  | Только этот проект (высший приоритет) |
| `~/forge/skills/<имя>/SKILL.md` | Все проекты                           |

Постоянные инструкции для агентов — файл `AGENTS.md` в корне проекта (или `~/forge/AGENTS.md` глобально): стиль кода, правила коммитов, чего не делать. Дополнительные агенты описываются файлами `.md` с YAML front-matter в `.forge/agents/`, а собственные команды — YAML-файлами в `.forge/commands/`; они вызываются как `:имя`. Пути приведены по [README проекта](https://github.com/tailcallhq/forgecode); на вашей версии Forge глобальный каталог может называться `~/.forge`.

## Семантический поиск и MCP

Команда `:sync` (в CLI — `forge workspace sync`) индексирует проект, после чего агент ищет код по смыслу, а не только по тексту. Статус показывает `:workspace-status`.

> Индексация отправляет содержимое файлов на сервер рабочих пространств, по умолчанию `https://api.forgecode.dev`. Запросы к моделям при этом идут через RouterAI, а индекс — нет. Не включайте индексацию для закрытых проектов, если это не допускается вашими правилами; адрес сервера можно заменить переменной `FORGE_WORKSPACE_SERVER_URL`.

MCP-серверы управляются командами `forge mcp list`, `forge mcp import`, `forge mcp show`, `forge mcp remove` и `forge mcp reload`. Вручную сервер описывается в файле `.mcp.json` в папке проекта (приоритет выше) или в `~/forge/.mcp.json`:

```json
{
  "mcpServers": {
    "filesystem": {
      "command": "node",
      "args": ["/path/to/mcp-server.js"],
      "env": { "ENV_VAR": "value" }
    },
    "remote": {
      "url": "http://localhost:3000/events"
    }
  }
}
```

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

Идентификаторы проверены по [каталогу RouterAI](/models) на момент написания; цены и актуальный список смотрите в каталоге. Для агента важна поддержка вызова инструментов — выбирайте модели с пометкой `tools` в каталоге.

| Модель                              | Для чего                                                              |
| ----------------------------------- | --------------------------------------------------------------------- |
| `anthropic/claude-sonnet-5.5`       | Основная модель для кода: фичи, отладка, рефакторинг среднего размера |
| `anthropic/claude-haiku-5.5`        | Быстрые мелкие запросы, `:commit` и `:suggest`                        |
| `openai/gpt-5.6-terra`              | Альтернатива Claude от OpenAI: баланс качества и стоимости            |
| `deepseek/deepseek-v4.1-flash-1017` | Дешёвые массовые правки и переименования                              |
| `z-ai/glm-5.3`                      | Недорогая альтернатива для рутинных задач и длинного контекста        |

Отдельные модели для коммитов и подсказок задаются командами `forge config set commit <провайдер> <модель>` и `forge config set suggest <провайдер> <модель>` — например, дешёвую для `:commit` и сильную для основной работы.

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

Самая быстрая проверка — одноразовый запрос из папки проекта:

```bash
forge -p "Ответь одной фразой: что делает файл invoices.js?"
```

Forge прочитает файл и вернёт ответ модели. Текущие провайдер и модель показывает `forge info`, а `forge config get model` выводит активную модель. Для интерактивной проверки запустите `forge` и дайте агенту небольшую задачу.

![1.00](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/d75344411748b5e8010ed785a4551035.png)

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

### 401 Unauthorized

Ключ неверный или скопирован не полностью. Повторите `forge provider login` и вставьте ключ из [личного кабинета](/settings/keys). Если вы пользуетесь переменной `OPENAI_API_KEY`, помните: после первой миграции Forge берёт ключ из `~/.forge/.credentials.json`, а не из окружения.

### 404 Not Found

Почти всегда виноват адрес в поле `OPENAI_URL`. Для OpenAI-совместимого провайдера нужен `https://routerai.ru/api/v1` — с `/v1` и без завершающего `/chat/completions`: Forge добавляет путь сам.

### Модель не найдена

Проверьте, что id есть в [каталоге](/models) и написан точно: `anthropic/claude-sonnet-5.5`, а не `claude-sonnet-5.5`. Выбор модели при этом идёт в паре с провайдером: `forge config set model openai_compatible <id>`.

### 402 Payment Required

Недостаточно средств на балансе — пополните его в разделе [Биллинг](/settings/billing).

### На Linux бинарник не запускается: `GLIBC_2.39 not found`

Сборка `gnu` требует свежей glibc. Скачайте `musl`-вариант с [страницы релизов](https://github.com/tailcallhq/forgecode/releases) или поставьте Forge через npm.

### Агент не может запустить тесты

Forge выполняет команды в окружении, где вы его запустили. Если в нём нет Node.js, Python или другого рантайма, агент напишет код, но проверить его не сможет — установите нужные инструменты в тот же терминал.

## Что дальше

* [Каталог моделей](/models) — подберите модель под задачу
* [Аутентификация](/docs/guides/overview/authentication) — управление API-ключами
* [Вайб-кодинг в Crush](/pages/vibe-coding-crush), [Вайб-кодинг в Pi](/pages/vibe-coding-pi) и [Вайб-кодинг в Codex](/pages/vibe-coding-codex) — другие CLI-агенты через RouterAI
* [README Forge](https://github.com/tailcallhq/forgecode) — полный список команд и настроек
