# AGENTS.md сообщает OpenCode ваши правила. Maguyva показывает ему код.

Canonical source: https://maguyva.ai/ru/for-opencode

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

OpenCode берёт из AGENTS.md то, как работать, а за всем остальным обращается к MCP-серверам. Maguyva — удалённый MCP-сервер, который даёт OpenCode карту вашего репозитория с возможностью запросов, с путями к файлам и номерами строк.

> Одна удалённая запись в mcp. Локально ничего не запускается.

## Что нужно знать об OpenCode

Четыре факта именно об OpenCode.

### opencode.json

Добавьте сервер в `mcp` в `opencode.json` проекта или в `~/.config/opencode/opencode.json` для всех проектов.

### type: remote

OpenCode подключается к точке доступа Maguyva по HTTP. Локально ничего не запускается, Node.js не нужен.

### Ссылка на переменную окружения

OpenCode подставляет переменные окружения в свою конфигурацию, поэтому заголовок выглядит как `Bearer {env:MAGUYVA_API_KEY}`, а ключ не попадает в файл, который вы коммитите.

### Ограничьте по агентам

Каждый MCP-сервер добавляет в контекст описания инструментов. В OpenCode можно глобально выключить инструменты сервера glob-шаблоном вроде `"maguyva*": false` и включить их обратно только для тех агентов, которым они нужны.

## AGENTS.md — это рабочее соглашение. Используйте его.

```text
> /init
# сканирует репозиторий и пишет AGENTS.md
```

OpenCode читает `AGENTS.md` в корне проекта и `~/.config/opencode/AGENTS.md` с личными правилами. Если `AGENTS.md` нет, он берёт `CLAUDE.md`. Держите в нём:

- Команды сборки, тестов и lint.
- Соглашения и границы, которые агент должен соблюдать.
- Ссылки на действительно важную документацию.

Скан в момент `/init` — это сводка, а не индекс. Он не скажет OpenCode, кто вызывает функцию, добавленную вчера.

## Где AGENTS.md уже не хватает

Три пробела, которые OpenCode закрывает с помощью grep и терпения.

### // сводка — это не индекс

AGENTS.md может назвать важные пакеты. Перечислить все символы и места вызова он не может, да и не должен пытаться.

### // grep находит строки, а не вызывающих

Текстовое совпадение не отличает настоящий вызов от комментария, мока или одноимённого метода другого класса.

### // файл отстаёт

AGENTS.md верен в день, когда его написали. Код продолжает меняться, а файл обновляется, когда кто-то об этом вспомнит.

## Maguyva как удалённый MCP-сервер в OpenCode

Одна запись в mcp даёт OpenCode:

- **11 инструментов для вашего проиндексированного репозитория**: семантический, структурный (AST), графовый и текстовый поиск, а также поиск символов, зависимые и получение файлов.
- **Ответы с путями к файлам и номерами строк**: по более чем 285 языкам.
- **Одни и те же ответы для любой модели**: OpenCode работает со многими провайдерами моделей. Maguyva возвращает одну и ту же карту, какая бы модель ни спрашивала.

> AGENTS.md говорит OpenCode, *как работать*.
> Maguyva даёт OpenCode *то, на что опереться*.

## Два рабочих процесса

Спрашивайте карту в том же терминале.

### 01. Переименовать общий тип в нескольких пакетах

```text
opencode> переименуй OrderStatus в FulfillmentStatus

dependency_search("OrderStatus", dependents)
  23 ссылки в 8 пакетах
structural_search(switch_statement, "OrderStatus")
  4 исчерпывающих switch

→ OpenCode правит весь список, включая switch.
[exit 0]
```

Исчерпывающие switch — как раз те места, которые текстовый поиск пропускает, а компилятор ловит поздно.

### 02. Отличить код от документации

```text
opencode> где читается FEATURE_BULK_EXPORT?

text_pattern_search("FEATURE_BULK_EXPORT")
  src/config/flags.ts:17
  src/export/bulk.ts:5
  docs/flags.md:40   ← только документация

→ Два пути в коде, один устаревший документ.
[exit 0]
```

Точные совпадения приходят с путями, поэтому OpenCode отличает код от документации, прежде чем править что-то одно.

## Настройка в OpenCode

Три шага. Тариф Free: 3 репозитория, До 50 тыс. проиндексированных строк, без банковской карты.

### 01. Проиндексируйте репозиторий на maguyva.ai

Выберите тот, который вы уже знаете, чтобы оценить ответы.

### 02. Добавьте Maguyva в mcp в opencode.json

`opencode.json`

```json
{
  "mcp": {
    "maguyva": {
      "type": "remote",
      "url": "https://maguyva.tools/mcp",
      "enabled": true,
      "headers": {
        "Authorization": "Bearer {env:MAGUYVA_API_KEY}"
      }
    }
  }
}
```

### 03. Экспортируйте ключ и проверьте подключение

Задайте `MAGUYVA_API_KEY` в оболочке, из которой запускается OpenCode. `opencode mcp list` показывает все настроенные серверы; затем задайте вопрос, ответ на который вы уже знаете.

В [документации OpenCode по MCP](https://opencode.ai/docs/mcp-servers/) описаны тайм-ауты, OAuth и доступ к инструментам по агентам.

## Проиндексируйте один репозиторий, который вы уже знаете.

Подключите OpenCode через MCP и задайте вопрос, который можно проверить.
