Claude code vs opencode: где тонут ваши токены

13.07.2026 · 5 мин

Знаете, что меня реально зацепило, когда я увидел эти цифры? Когда я попросил оба инструмента ответить одной строкой, Claude Code сожрал 33 000 токенов прежде чем увидел мой запрос. OpenCode — всего 7 000.

Тридцать три тысячи. До. Одного. Слова.

Это как если бы вы позвонили другу спросить «как дела?», а он сначала прочитал вам вслух три тома энциклопедии.

Что за токены такие

Токены (tokens) — это кусочки текста, которые LLM читает и генерирует. Примерно 1 токен = 0,75 слова на английском. Чем больше токенов, тем дороже и медленнее.

Системный промпт (system prompt) — это инструкция-каркас, которую LLM получает в начале каждого сеанса. Объясняет, кто он и как должен работать.

Схемы инструментов (tool schemas) — это описания того, какие действия может делать AI: какие кнопки ему доступны и что каждая делает.

Скаффолдинг (scaffolding) — это вспомогательный код, который оборачивает основной процесс и добавляет ему структуру. Как строительные леса вокруг здания.

Откуда берётся эта пропасть

Посмотрите на эту радость:

TOKEN OVERHEAD COMPARISON
═══════════════════════════════════════════════════════════════

Baseline (one-line request):
┌─────────────────────┬────────────┐
│ Claude Code         │ ██████████ │ 33,000 tokens
├─────────────────────┼────────────┤
│ OpenCode            │ ███        │ 7,000 tokens
└─────────────────────┴────────────┘

Cache inefficiency (cache writes):
┌─────────────────────┬────────────┐
│ Claude Code         │ ██████████ │ 54x more cache
├─────────────────────┼────────────┤
│ OpenCode            │ █          │ baseline
└─────────────────────┴────────────┘

Subagent fan-out (same task):
┌─────────────────────┬────────────┐
│ Direct              │ ████       │ 121,000 tokens
├─────────────────────┼────────────┤
│ 2 subagents         │ █████████████████████ | 513,000 tokens
└─────────────────────┴────────────┘
Claude Code потребляет в 4-5x больше токенов на старте и масштабируется хуже при параллельных задачах

Промпт-кэш (prompt-cache) — это способ запомнить часть текста, чтобы не отправлять его каждый раз заново. Как если бы вы не переписывали введение в каждом письме. OpenCode использует это эффективно: его запрос идентичен побайтово (byte-identical) в каждом запуске — заплатил один раз, читаешь потом за копейки.

Claude Code же перезаписывает десятки тысяч токенов в кэш каждый ран, каждый раз. На одной и той же задаче — до 54x больше записей в кэш, чем OpenCode.

А ведь записи в кэш (cache writes) тарифицируются по повышенной ставке. Отсюда и растёт счёт в дашборде.

Конфигурация добавляет веса

В production-репозитории файл инструкций на 72 КБ (AGENTS.md или CLAUDE.md — это конфигурационные файлы с правилами для AI-ассистента) добавляет ещё ~20 000 токенов к каждому запросу. Пять скромных MCP-серверов (MCP, Model Context Protocol — это протокол, позволяющий AI подключаться к внешним инструментам, как USB для AI) добавляют ещё 5 000–7 000.

К моменту отправки первого реального запроса вы уже на 75 000–85 000 токенов в глубину. До того, как напечатали хоть слово.

Сабагенты — это больно

Сабагенты (subagents) — это вложенные AI-ассистенты, работающие над частью задачи, как помощники, каждый со своими инструкциями. Фан-аут (fan-out) — это когда одна задача разделяется на несколько параллельных, как один начальник раздаёт задания нескольким исполнителям.

Проблема: каждый сабагент — это свой собственный агент. Он перечитывает свой системный промпт и инструменты на каждом шаге. Поэтому фан-аут умножает количество полных базовых контекстов (baseline — минимальный набор информации, который AI получает с каждым запросом) в воздухе.

Задача, которая стоила 121 000 токенов напрямую, обошлась в 513 000 токенов при двух сабагентах. Почти в пять раз дороже.

Где Claude code выигрывает

Нашёл одно преимущество. На многошаговой задаче (multistep task) Claude Code показал меньший общий расход, потому что группирует вызовы инструментов (tool calls — это когда AI запрашивает выполнение действия: поиск, чтение файла, запуск кода) в меньшее количество запросов. OpenCode же платит свой меньший базовый контекст снова и снова.

Но вот забавное: это преимущество держалось только на первой модели. На более свежей тот же сценарий потребовал вдвое больше запросов — примерно 298 000 токенов против 133 000 у OpenCode.

Мы перепроверили все результаты на второй модели — паттерн подтвердился.

Bottom line: Claude Code тратит в 4-5x больше токенов на старте, масштабируется хуже с сабагентами, и выигрывает только на многошаговых задачах с более старыми моделями. Для проектов, где важна стоимость, OpenCode — разумный выбор по умолчанию.

ИТОГОВАЯ ДИНАМИКА ЗАТРАТ
═══════════════════════════════════════════════════════════════

Сценарий:
┌───────────────────────────────┬──────────────┐
│ Стартовый запрос              │ Claude хуже  │
├───────────────────────────────┼──────────────┤
│ Сабагенты                     │ Claude хуже  │
├───────────────────────────────┼──────────────┤
│ Многошаговые задачи           │ Claude иногда выигрывает
└───────────────────────────────┴──────────────┘
Главный вывод: базовая стоимость и масштабирование у OpenCode выглядят заметно лучше

Выводы

Claude Code дорог уже на старте: он тащит за собой больше контекста, хуже масштабируется с сабагентами и только в отдельных сценариях может отыграться.

OpenCode выигрывает там, где важны предсказуемая стоимость и экономия токенов.

Ссылки

Дмитрий Полухин — продуктовый дизайнер. Пишу про разработку, AI и дизайн интерфейсов. Обо мне, контакты и профили.