EnglishРусский Map

OpenCode

title
OpenCode
type
toolbox
summary
Терминальный агент для написания кода с поддержкой любых OpenAI-совместимых и локальных эндпоинтов
tags
llm, coding-agent, cli, local-models
language
TypeScript
license
MIT
created
2026-05-13
updated
2026-05-13
lang
ru
translation_of
opencode
source_updated
2026-05-13
translated
2026-09-01
translator
lllm/antigravity/gemini-3.7-flash-medium

OpenCode - это автономный агентный harness для написания кода, агент для терминала и IDE, который использует вызовы инструментов (tool calls) для чтения, редактирования и запуска кода в проекте. Он позиционируется как более гибко настраиваемая альтернатива решениям с привязкой к конкретному вендору (Claude Code, Codex) и предлагает полноценную поддержку любых OpenAI-совместимых эндпоинтов, включая локально запущенные модели через llama.cpp.

Что он делает

Долгоживущий агентный цикл со стабильным набором инструментов (чтение/запись файлов, shell, поиск, редактирование), управляемый LLM через настраиваемый провайдер. Отличительные особенности:

  • Независимость от провайдера. Настраивается через JSON-файл с указанием URL провайдера, имени модели и специфичных параметров. Локальные серверы llama.cpp, OpenAI, Anthropic, Groq и встроенный набор моделей ZEN поддерживаются из коробки.
  • AGENTS.md как контракт проекта. OpenCode считывает файл AGENTS.md на уровне проекта (аналог Cursor Rules или CLAUDE.md) для получения контекста, соглашений и правил. В нём фиксируются нестандартные требования к префиксам файлов, ограничения типизации, стили комментариев и тому подобное.
  • Встроенный набор моделей ZEN. Проверенные хостинговые модели по подписке, включая бесплатные тарифы. Удобно тем, кто хочет использовать OpenCode как harness, не выбирая отдельно модель и провайдера.

В тестах агентов для кодинга на локальных 16-гигабайтных моделях, которые проводил Вячеслав, связка OpenCode + llama.cpp была основным сетапом. Он предпочёл её решениям Cline, Kilo Kode, Roo Code и Zed за "стабильность и простоту настройки".

Как работает с локальными моделями

Для работы связки требуются три вещи со стороны llama.cpp и одна со стороны OpenCode:

  • Флаг --jinja у llama-server - необходим, чтобы шаблон чата рендерил вызовы инструментов в формате, который ожидает OpenCode. Без него модель вообще не увидит список инструментов.
  • Квантование, которое подходит для конкретной архитектуры модели - см. llm-quantization.
  • Достаточный запас VRAM как для самой модели, так и для KV-кэша - см. kv-cache-sizing и moe-cpu-offload.

Со стороны OpenCode конфигурация провайдера указывает на http://localhost:8080/v1 (или куда привязана llama.cpp) и задаёт имя модели. Для моделей семейства Qwen 3 в конфигурации OpenCode также требуется прописать extra_body.chat_template_kwargs.enable_thinking: false, чтобы действительно отключить режим размышлений (thinking mode): флага --reasoning off на уровне сервера недостаточно (см. thinking-mode-rule-erosion).

Подводные камни из реальной практики

  • Индикатор статуса "Thinking..." в интерфейсе OpenCode - это просто индикатор выполнения запроса, а не доказательство того, что модель генерирует токены рассуждений. Не стоит воспринимать его как подтверждение включённого режима reasoning.
  • Навыки (skills), рассчитанные на большие облачные модели (Context 7, Superpowers и всё, что внедряет объёмный системный промпт), перегружают контекст маленьких локальных моделей. Для работы с локальными моделями Вячеслав рекомендует "caveman"-режим или полный отказ от skills.
  • Системный промпт, skills и контекст MCP расходуют окно контекста ещё до первого сообщения пользователя. Это усугубляет и без того скромный бюджет контекста у небольших моделей.

Почему он упоминается в вики

OpenCode служит средой, на которой проверяются различные выводы: эффект thinking-mode-rule-erosion был обнаружен при запусках через OpenCode с правилами из AGENTS.md; замеры offload'а MoE в moe-cpu-offload проводились с OpenCode в роли управляющего инференсом. Также это один из поддерживаемых harness'ов в системе дистрибуции навыков cli-anything.

См. также

  • llama.cpp - движок инференса, к которому OpenCode обращается за локальными моделями
  • lucumr-local-models - критика проблем UX локальных LLM от Ронахера; OpenCode претендует на закрытие части из них
  • cli-anything - кросс-harness упаковка навыков, поддерживающая в том числе OpenCode
  • peon-ping - содержит хуки для OpenCode среди прочих harness'ов

Репозиторий: https://github.com/sst/opencode · TypeScript · MIT