opencode или Claude Code: два консольных агента — в чём разница
Оба читают проект, правят файлы и запускают команды в терминале. Сравниваем, как они подключаются к моделям, где хранят настройки, как устроены агенты и MCP и что с расходом.
5 мин · · агенты · сравнение
Если вы выбираете между opencode и Claude Code, оба варианта на первый взгляд делают одно и то же: читают проект, правят файлы, запускают команды, и всё это в терминале. Различия начинаются в деталях: какие модели можно подставить, где лежат настройки, как устроены агенты и подключение MCP, и сколько тратится токенов. Ниже сравнение opencode vs Claude Code по этим пунктам, с конфигурациями для работы через шлюз Zukko. Сведения об инструментах взяты из их официальной документации; она меняется, так что перед настройкой сверяйтесь с актуальной версией.
Коротко о каждом
Claude Code — терминальный агент от Anthropic. Он рассчитан на модели Claude и работает по Anthropic-формату. В документации Anthropic прямо сказано, что направлять Claude Code на модели других семейств через шлюзы она не поддерживает, поэтому внутри него берите модели Claude.
opencode — терминальный агент с открытым кодом, построенный на AI SDK: по документации, он поддерживает более 75 провайдеров, включая любой OpenAI-совместимый API. Модель и провайдера можно менять в рамках одной программы.
Таблица различий
| Claude Code | opencode | |
|---|---|---|
| Модели | Claude | Любые через провайдеров, в том числе OpenAI-совместимые |
| Подключение к шлюзу | переменные окружения | файл opencode.json и команда /connect |
| Файл с инструкциями проекта | CLAUDE.md | AGENTS.md (если его нет, читает и CLAUDE.md) |
| Создание файла инструкций | вручную или командой /init | команда /init |
| Агенты | субагенты в .claude/agents/ | первичные агенты Build и Plan (переключение клавишей Tab) и субагенты |
| MCP | claude mcp add или .mcp.json | раздел mcp в opencode.json, локальные и удалённые серверы |
| Хуки | есть (PreToolUse и другие события) | другой механизм: плагины |
Подключение к шлюзу
Claude Code
Claude Code читает адрес и ключ из переменных окружения:
export ANTHROPIC_BASE_URL=https://api.zukko.pro
export ANTHROPIC_AUTH_TOKEN=fetch_ваш_ключ
export ANTHROPIC_MODEL=claude-sonnet-5-5
claudeАдрес здесь без /v1: Claude Code добавляет путь сам. Переменная именно ANTHROPIC_AUTH_TOKEN. Полная инструкция — в документации по Claude Code.
opencode
В opencode настройка через opencode.json в корне проекта (или глобальный ~/.config/opencode/opencode.json). Для моделей Claude можно переопределить адрес встроенного провайдера anthropic, а ключ взять из переменной окружения:
{
"$schema": "https://opencode.ai/config.json",
"model": "anthropic/claude-sonnet-5-5",
"provider": {
"anthropic": {
"options": {
"baseURL": "https://api.zukko.pro/v1",
"apiKey": "{env:ZUKKO_API_KEY}"
},
"models": {
"claude-sonnet-5-5": {}
}
}
}
}Здесь адрес с /v1: провайдер anthropic в opencode работает через AI SDK, и без /v1 запросы уходят на неверный путь и возвращают 404. Для GPT, DeepSeek или GLM заводится отдельный провайдер на @ai-sdk/openai-compatible с baseURL https://api.zukko.pro/v1 и списком моделей, пример формата есть в документации opencode, раздел Custom provider. Подробности — в инструкции для opencode и в статье про подключение opencode.
Инструкции проекту и агенты
В обоих случаях для проекта есть файл с правилами, который попадает в контекст: у Claude Code это CLAUDE.md, у opencode AGENTS.md. Если в проекте только CLAUDE.md, opencode по документации прочитает и его, так что переход между инструментами не требует переписывать правила. Пишите его коротко: команды сборки и тестов, структура, договорённости команды.
С агентами устройство разное. В opencode есть два встроенных основных агента: Build с полным набором инструментов и Plan, у которого правки файлов и команды по умолчанию требуют подтверждения; между ними переключаются клавишей Tab. Отдельно заводятся субагенты, которых можно вызвать через @, и свои агенты в opencode.json или markdown-файлах. В Claude Code субагенты описываются файлами в .claude/agents/ и вызываются самой моделью по описанию. Практический вывод: если вам нужны разные модели для разных ролей (дешёвая для обзора, сильная для правок), в opencode это задаётся в конфиге агента через поле model.
MCP
MCP-серверы подключаются в обоих, но по-разному. В Claude Code это команда вида claude mcp add --transport http <имя> <url> для удалённого сервера или запись в .mcp.json. В opencode сервер описывается в секции mcp с "type": "local" и командой запуска либо "type": "remote" и адресом. Учтите, что каждый подключённый сервер добавляет описания инструментов в контекст, поэтому включайте только нужные.
Что с расходом через шлюз
Оплата за токены не зависит от инструмента, зато зависит от кэша. Для Claude скидку за кэш даёт Anthropic-формат (/v1/messages): шлюз видит, сколько входа пришло из кэша. В Claude Code это работает по умолчанию. В opencode при провайдере anthropic запросы тоже идут в Anthropic-формате; а если вызвать Claude через OpenAI-совместимый провайдер, весь вход пойдёт по цене входа. Проверьте после первой сессии в разделе «Использование» кабинета, попали ли токены в чтение кэша.
Иллюстрация с условными цифрами (не замер): сессия на claude-sonnet-5-5 с 0,5 млн свежего входа, 5 млн чтения кэша, 0,4 млн записи в кэш и 0,2 млн выхода. Цены claude-sonnet-5-5 на 18 октября 2026, $ за 1M токенов: вход 0.4, чтение кэша 0.05, запись в кэш 0.5, выход 2.
- С учётом кэша: 0.5 × 0.4 + 5 × 0.05 + 0.4 × 0.5 + 0.2 × 2 = 0.20 + 0.25 + 0.20 + 0.40 = $1.05
- Если весь вход считается по цене входа: (0.5 + 5 + 0.4) × 0.4 + 0.2 × 2 = 2.36 + 0.40 = $2.76
Реальные цифры зависят от размера проекта и числа шагов. Как оценивать сессию по шагам — в расчёте стоимости агентной сессии.
Что выбрать
- Только Claude и минимум настройки — Claude Code: три переменные окружения, и работает.
- Разные модели под разные роли, включая GPT, DeepSeek, GLM, — opencode.
- Команда уже пишет
CLAUDE.md— подойдёт оба: opencode читает его, если нетAGENTS.md. - Нужны хуки на события инструментов — смотрите в сторону Claude Code, но проверьте плагины opencode.
Лучший способ решить — день работы с каждым на реальной задаче. Создать ключ можно в кабинете: один ключ работает в обоих инструментах.
Частые вопросы
Можно ли использовать один ключ Zukko в обоих инструментах?
Да. Меняется только способ настройки: переменные окружения для Claude Code и opencode.json для opencode. Баланс общий.
Читает ли opencode файлы Claude Code?
По документации opencode, если в проекте нет AGENTS.md, он использует CLAUDE.md, а также поддерживает каталог .claude для навыков. Отключается переменной окружения; детали сверяйте с документацией opencode.
Какой из двух дешевле?
Сам инструмент бесплатен для вас, тратятся токены. Расход определяется моделью, размером контекста и тем, попадает ли вход в кэш. Сравнивайте по разделу «Использование» на одной и той же задаче.
Почему opencode даёт 404?
Чаще всего из-за адреса. Для провайдера anthropic в opencode нужен https://api.zukko.pro/v1, а для Claude Code https://api.zukko.pro без /v1.
zukko
Платите в 25×
меньше
за Claude Code & ChatGPT
Один ключ fetch_* и base URL api.zukko.pro — в Cursor, Claude Code, Codex и любом SDK.
Похожие статьи
- RAG или MCP: в чём разница и что выбрать для доступа модели к даннымRAG кладёт найденные куски в промпт, MCP даёт модели инструменты, которые она вызывает сама. Разбираем, чем они отличаются, сколько стоит каждый и как их сочетать.
- Claude Desktop или Claude Code: в чём разница и что выбратьДесктопное приложение и консольный агент делят один движок, но входят в систему по-разному. Сравниваем сценарии, доступ к моделям и стоимость.
- opencode или Codex CLI: какой консольный агент выбратьОба агента открыты, оба читают AGENTS.md и работают со своим API. Различия в провайдерах, режимах и в том, как считается кэш. Сравниваем и считаем сессию.
- Function calling или MCP: в чём разница и что выбрать для агентаЭто не два конкурирующих способа, а два уровня одной задачи. Разбираем, кто описывает инструмент, кто его запускает и когда нужен MCP.