Cline или OpenCode: что выбрать для проекта — ответ зависит от трёх проверяемых осей: где живёт работа, как устроен доступ к модели и как задан контроль доступа. Если работа идёт внутри редактора и нужны понятные категории подтверждений, берите Cline. Если основная среда — терминал и нужны тонкие правила по конкретным командам, берите OpenCode V2. Ниже сравнение по документации обоих вендоров, таблица выбора и учебный прогон на одном проекте в двух копиях.
Поверхность, доступ к модели и правила
Поверхности пересекаются частично. Cline даёт десктопное приложение, расширение для редактора, CLI, SDK и Kanban. OpenCode V2 даёт терминальный интерфейс, десктопное приложение и веб-приложение.
| Поверхность | Cline: установка или вход | OpenCode V2: установка или вход |
|---|---|---|
| Редактор | Найти Cline в Extensions; в JetBrains — Settings → Plugins → Marketplace | Отдельный IDE-плагин в этом разборе не рассматривается |
| CLI | Node.js 20+, затем npm install -g cline, cline auth, cline |
На macOS/Linux — npm install -g @opencode/cli, затем opencode; на Windows — отдельный бинарник, пакетные менеджеры не поддержаны |
| Десктоп | Установщик с cline.bot/desktop | Отдельная сборка OpenCode Desktop для своей ОС |
| Веб | Kanban запускается через npx kanban |
opencode pair выдаёт ссылку веб-подключения |
| SDK | npm install @cline/sdk |
Установка SDK выходит за границы этого сравнения |
Команды относятся к разным клиентам; выберите одну поверхность для учебного прогона.
| Путь доступа | Cline | OpenCode V2 |
|---|---|---|
| Встроенный биллинг | Cline Provider, оплата по факту | OpenCode Console |
| Подписка | ClinePass $9.99/мес | OpenCode Go $10/мес |
| Свои ключи | BYOK для облака и локальных сред | Провайдеры напрямую через /connect |
| Локальные среды | Поддержаны в BYOK | Кастомные провайдеры через конфиг |
Cline читает правила из нескольких источников. Собственные правила лежат в .clinerules/ или .cline/rules/. Дополнительно автоматически определяются .cursorrules и .windsurfrules. Формат AGENTS.md поддержан как стандарт для кросс-инструментальной совместимости, включая ~/.agents/AGENTS.md.
Для переноса общих требований скопируйте текст инструкций в AGENTS.md в корне проекта. OpenCode V2 автоматически обнаруживает этот формат, а дополнительные Markdown-файлы, glob-шаблоны и HTTP(S)-адреса подключает массивом instructions в opencode.jsonc. Например: {"instructions":["CONTRIBUTING.md","docs/guidelines/*.md"]}. Эти инструкции загружаются после обнаруженных AGENTS.md. Условные Cline paths не превращаются в условную активацию OpenCode: при переносе вынесите сами требования в общий текст и явно опишите их область. В Cline исходный paths можно сохранить в отдельном .clinerules/-файле.
Контроль доступа: Auto Approve и YOLO против permissions
Auto Approve у Cline оценивается на каждый вызов инструмента. Когда агент собирается читать файл, редактировать файл, запускать команду или использовать браузер, он проверяет настройки для этой категории. Категории включают чтение файлов проекта, чтение всех файлов, редактирование файлов проекта, редактирование всех файлов, выполнение безопасных команд, выполнение всех команд, использование браузера и использование MCP-серверов.
Опции «читать все файлы» и «редактировать все файлы» расширяют базовый переключатель и работают только при его включении. Команды терминала делятся на безопасные и требующие подтверждения. Cline не использует фиксированный список разрешённых команд: модель помечает каждую команду флагом requires_approval по самой команде и её аргументам. Примеры безопасных команд включают npm run build, npm test, git status, ls -la, cat package.json. Примеры команд, требующих подтверждения, включают npm install <pkg>, rm -rf <path>, mv SOURCE DESTINATION, sed -i .... Документация называет эти примеры примерами.
Режим YOLO у Cline включает автоодобрение всего: изменений файлов, команд терминала, действий браузера, инструментов MCP и переходов между режимами. Документация помечает режим как опасный и перечисляет риски: удаление важных файлов, изменение системных настроек, сетевые запросы, перезапись конфигурации, установка и удаление пакетов, коммиты и push в систему контроля версий.
OpenCode V2 описывает контроль через правила. Каждое правило требует три строковых поля: action (действие инструмента), resource (значение, с которым работают: путь, команда, URL, запрос, идентификатор навыка или агента) и effect (allow, deny или ask). Эффект allow продолжает без запроса, deny блокирует операцию, ask ждёт решения клиента. Если ни одно правило не совпало, OpenCode использует ask.
Правила применяются по порядку, побеждает последнее совпадение. Низкоприоритетная конфигурация загружается первой, глобальные правила добавляются следом, правила агента идут последними. Операция может проверять несколько ресурсов: любое deny запрещает операцию, иначе любое ask запрашивает решение, иначе операция разрешается.
| Что проверяется | Cline | OpenCode V2 |
|---|---|---|
| Единица контроля | Категория инструмента | Правило action/resource/effect |
| Значения эффекта | Включено или выключено | allow, deny, ask |
| Порядок применения | По категории вызова | Последнее совпадение побеждает |
| Значение по умолчанию | Зависит от категории | Базовое allow; для запроса shell задайте ask явно. |
| Полное автоодобрение | Режим YOLO | Набор правил с effect allow |
Базовые политики агентов OpenCode V2 заданы явно. Каждый агент, включая кастомные, начинает с упорядоченной базовой политики: разрешить всё, спрашивать при чтении *.env, спрашивать при чтении *.env.*, разрешить чтение *.env.example. Поставляемые агенты добавляют свои политики: build разрешает вопросы, plan разрешает вопросы и запрещает правки кроме файлов под ~/.opencode/plan, general запрещает вопросы и запуск субагентов, explore запрещает всё кроме shell, чтения, glob, grep, веб-запросов, веб-поиска и внешних директорий. Агенты title и summary запрещают все действия, compaction сохраняет базовую политику.
Важное уточнение по shell. Базовая политика V2 уже включает allow, а fallback ask при отсутствии совпадений не означает, что shell спрашивает по умолчанию. Чтобы shell-команды действительно запрашивали решение, настройте это явно: правило с action shell, resource * и effect ask, а следом узкие исключения. Пример из документации: git status * и git diff * разрешены, git push * запрещён. Порядок важен, потому что побеждает последнее совпадение.
Таблица выбора под сценарий проекта
| Сценарий проекта | Подходящий инструмент | Почему |
|---|---|---|
| Работа внутри редактора с подтверждением каждого действия | Cline | Расширение для редактора и категории Auto Approve |
| CI/CD и headless-автоматизация | Cline CLI | CLI с интерактивным и headless-режимом |
| Терминальный интерфейс как основная среда | OpenCode V2 | Терминальный интерфейс и /connect |
| Тонкие правила по конкретным командам | OpenCode V2 | Правила action/resource/effect с порядком |
| Быстрый старт с понятными категориями | Cline | Категории Auto Approve и один переключатель YOLO |
| Общий файл правил для нескольких инструментов | Оба | AGENTS.md поддержан обоими |
| Условные правила по путям | Cline | YAML-фронтматтер с paths |
| Инструкции из внешних URL | OpenCode V2 | Массив instructions с HTTP(S) |
Уже есть .cursorrules или .windsurfrules |
Cline | Автоматическое определение |
| Параллельные сессии и расписания | Cline Desktop | Параллельные сессии и запланированные задачи |
Учебный прогон на одном проекте в двух копиях
Проверить выбор можно на одном проекте в двух копиях репозитория. Это учебный пример. Цель — увидеть, как каждый инструмент ведёт себя на одинаковых входных данных.
Подготовка. Возьмите небольшой проект с тестами и файлом конфигурации. Сделайте две копии репозитория: project-cline и project-opencode. В каждой копии создайте файл правил с одинаковым содержанием. Для Cline положите правила в .clinerules/coding.md. Для OpenCode V2 создайте AGENTS.md в корне. Содержание одинаковое: команда проверки типов, запрет правки сгенерированных файлов, требование запускать тесты перед коммитом.
Входные действия. В обеих копиях дайте агенту одну задачу: добавить функцию валидации email в модуль утилит и покрыть её тестом. Задача формулируется одинаково, включая путь к файлу. Указание точного пути важно: у Cline условные правила активируются по путям в сообщении, открытым вкладкам и отредактированным файлам.
Наблюдение за контролем доступа. В Cline включите только Read project files и оставьте YOLO выключенным. При такой настройке терминальные команды, включая помеченные безопасными, требуют подтверждения. Для отдельной проверки включите Execute safe commands: безопасные команды смогут выполняться автоматически, а команды с requires_approval продолжат запрашивать решение при выключенном Execute all commands. В OpenCode V2 добавьте в opencode.jsonc массив permissions: сначала {"action":"shell","resource":"*","effect":"ask"}, затем разрешения allow для git status * и git diff *, затем запрет deny для git push *. Для каждого правила заполните те же три поля action, resource, effect и сохраните порядок.
Форма записи результатов. Заполняйте таблицу по каждому действию агента.
| Поле | Что записывать |
|---|---|
| Действие | Чтение, правка, команда, браузер, MCP |
| Инструмент | Cline или OpenCode V2 |
| Запрошено подтверждение | Да или нет |
| Сработавшее правило | Категория Cline или правило OpenCode |
| Итог | Выполнено, отклонено, ожидает |
| Правка правил | Что изменили после наблюдения |
После прогона сравните две таблицы. Смотрите на три вещи: сколько действий потребовали подтверждения, какие правила сработали и сколько правок в правила вы внесли. Если подтверждений слишком много, ослабьте контроль точечно. Если агент выполнил действие, которое вы хотели бы видеть под запросом, добавьте правило.
Проверка результата. Убедитесь, что функция и тест добавлены, тесты проходят, а сгенерированные файлы не изменены. В Cline проверьте включённость .clinerules/coding.md в панели Rules и соблюдение записанных требований. Этот файл в упражнении не содержит YAML paths, поэтому уведомление Conditional rules applied для него не ожидается. В OpenCode V2 проверьте расположение AGENTS.md в корне нужного проекта и соблюдение его требований. При исправлении вложенного AGENTS.md начните новую сессию, чтобы обновлённый текст применился сразу.
Ограничения сравнения
Примеры безопасных команд у Cline документация называет примерами. Cline не использует фиксированный список разрешённых команд: модель помечает каждую команду флагом requires_approval. Режим YOLO отключает проверки безопасности, и документация перечисляет риски явно.
У OpenCode V2 shell-команды выполняются с правами пользователя хоста по файловой системе, процессам и сети. Вывод директорий из текста команды — best effort, поэтому документация советует узкий список разрешённых shell-команд. AGENTS.md задаёт инструкции и не создаёт песочницу.
Частые вопросы
Подходит ли Cline для работы вне редактора?
Да. Документация Cline описывает десктопное приложение, CLI, SDK и Kanban. CLI работает в интерактивном режиме и в headless-автоматизации для CI/CD и скриптов. Десктопное приложение даёт параллельные сессии и запланированные задачи. Для CLI нужен Node.js 20 и выше.
Чем YOLO отличается от Auto Approve?
Auto Approve оценивается на каждый вызов инструмента и работает по категориям. YOLO включает автоодобрение всего: изменений файлов, команд терминала, действий браузера, инструментов MCP и переходов между режимами. Документация помечает YOLO как опасный режим и советует начинать с изолированных окружений.
Как перенести правила из другого инструмента?
Cline автоматически определяет .cursorrules и .windsurfrules, а также читает AGENTS.md как кросс-инструментальный формат. OpenCode V2 распознаёт только AGENTS.md. Общий файл AGENTS.md в корне проекта работает в обоих инструментах, поэтому его удобно взять за основу при переносе.
Что делать, если правило OpenCode не срабатывает?
Проверьте порядок правил: побеждает последнее совпадение. Низкоприоритетная конфигурация загружается первой, глобальные правила добавляются следом, правила агента идут последними. Убедитесь, что шаблон ресурса совпадает с нормализованным путём. Если ни одно правило не совпало, OpenCode использует ask.
Можно ли использовать один файл правил в обоих инструментах?
Да, AGENTS.md поддержан обоими. У Cline он читается как кросс-инструментальный формат вместе с .clinerules/. OpenCode V2 сначала загружает глобальный ~/.config/opencode/AGENTS.md, затем файлы от рабочей директории к домашней; для проекта вне домашней директории поиск останавливается на корне проекта. Вложенные AGENTS.md обнаруживаются при чтении соответствующей области. Условные правила по путям описаны только у Cline.
