OpenCode V2
Установка, бесплатная модель, GPT 6 Luna, Claude Opus 5.5 и рабочие приёмы
Введение
OpenCode — бесплатный ИИ-агент для программирования с открытым
исходным кодом. Он живёт в терминале, настольном приложении и веб-приложении,
читает и правит ваши файлы, запускает команды оболочки, ищет в интернете и
проходит задачу шаг за шагом. Если он ещё не установлен, начните с материала
«OpenCode: скачать и установить», а потом возвращайтесь сюда за моделями и
ежедневной работой.
Везде речь идёт о OpenCode V2, если вам явно не нужна V1. В V2 новый
API плагинов, новый серверный API и клиенты, а вместо нескольких слоёв
tui.json один глобальный файл конфигурации терминала
cli.json. Обычная конфигурация сервера,
агенты, команды,
навыки и файлы .opencode/
остаются совместимыми — если поддерживаемое в V1 поведение ломается в V2,
считайте это багом.
Модель оплаты простая: сам OpenCode ничего не стоит. Вы платите только за
токены модели — или не платите ничего, если работаете на бесплатных или
локальных моделях. OpenCode разговаривает напрямую с 75+ провайдерами, а
также с локальными Ollama, LM Studio и vLLM, так
что вы не привязаны к одному вендору. Курируемый шлюз теперь называется
OpenCode Console (в старых текстах — Zen): проверенные модели для
программирования, кредиты по факту, месячные лимиты, автопополнение и
сменяющийся бесплатный тариф без платёжных данных.
Модели, которые важны
Три модели закрывают 95 процентов ежедневной работы. По умолчанию — бесплатная, до дешёвой платной повышайте при необходимости, трудные задачи доводите топовой:
| Модель | Id в Console | Цена / 1M вход+выход | Для чего |
|---|---|---|---|
| Бесплатная модель OpenCode | opencode/deepseek-v4.1-flash-free | Бесплатно | Ежедневная работа с публичным кодом: вопросы, черновики, массовые правки, изучение кодовой базы |
| GPT 6 Luna | opencode/gpt-6-luna | $0.10 / $0.50 | Дешёвый платный шаг, когда упёрлись в бесплатные лимиты: рефакторинг, ревью в CI, длинные сессии |
| Claude Opus 5.5 | opencode/claude-opus-5-5 | $4.00 / $20.00 | Лучшее качество: архитектура, сложные баги, проверка безопасности, финальный проход |
Приватность бесплатного тарифа: тариф для участников меняет цену на право использовать запросы и ответы для обучения будущих моделей. Никогда не отправляйте секреты, данные клиентов или закрытый код на бесплатную модель, чьи условия вы не прочитали. Большинство других бесплатных моделей обещают не хранить данные в бесплатный период, но некоторые всё же используют их для улучшения — сначала прочитайте заметки о приватности в Console, а для чувствительной работы переходите на платную или локальную модель.
Для чего нужен каждый тариф, как записываются id и варианты, как выдать каждому агенту свою модель и как держать счёт на виду — это материал «Модели в OpenCode». Сами модели — семейства, цены, контекст — разобраны в разделе «Модели ИИ».
Проверяйте цены до планирования бюджета. Цены живут в одном месте, доступность — в другом, вся проверка состоит из трёх шагов:
1. Цены за 1M токенов, тарифы кешированного чтения и записи и пороги по объёму токенов лежат на странице моделей в Console:
https://opencode.ai/docs/console/models
Читайте именно строку своей модели, включая строку выше порога (Luna дороже выше 272K, Sonnet выше 200K, Haiku выше 100K). Всё, что названо в статьях, — только ориентир.
2. Живая доступность — какие id существуют прямо сейчас, в том числе с суффиксом -free, — приходит из эндпоинта моделей. Он возвращает только id, без цен:
curl https://opencode.ai/inference/v1/models
Прежде чем закреплять id в opencode.jsonc, найдите его в JSON через grep. В TUI та же проверка — /models, из оболочки — opencode models.
3. Собственные расходы на текущий момент, по моделям и с деталями по токенам:
opencode stats --cost --models
Страница документации для тарифа, эндпоинт для id, статистика для счёта — все три должны сходиться до долгого платного прогона.
Скачивание и установка V2
Рекомендуемый путь — установочный скрипт V2 (Linux, macOS, WSL2)
curl -fsSL https://opencode.ai/v2/install | bash
Через npm (любая ОС с Node.js, имя пакета V2)
npm install -g @opencode/cli
Через Homebrew (macOS и Linux, формула V2)
brew install anomalyco/tap/opencode-v2
Подробности — Bun, pnpm, yarn, Arch AUR, Docker, настольное приложение, отдельные бинарники, заметки по Windows, проверка и обновление — читайте на отдельной странице «OpenCode: скачать и установить».
Подключение модели
Запустите OpenCode в любом каталоге и подключитесь один раз:
cd /path/to/project
opencode
Дальше в TUI наберите /connect, выберите провайдера, вставьте ключ. Для Console: войдите на веб-странице Console, пополните кредиты только для платных моделей, скопируйте ключ и вставьте его. Бесплатным моделям Console платёжные данные не нужны. Из оболочки то же самое:
opencode auth login opencode
opencode models
Список моделей и переключение в TUI — /models (или Ctrl+X, затем M). Id модели записывается как провайдер/модель с необязательным #вариант для глубины рассуждений, например anthropic/claude-opus-5-5 или openai/gpt-5.2#high. Модели Console используют opencode/<model-id>. Ваши собственные ключи провайдеров (Anthropic, OpenAI, Google) оплачивает этот провайдер. Один практичный способ держать 300+ моделей под одним ключом — OpenRouter через запись провайдера, совместимого с OpenAI.
Закрепите модель по умолчанию для проекта в opencode.jsonc в корне проекта:
vi opencode.jsonc
{ "$schema": "https://opencode.ai/config.json", "model": "opencode/deepseek-v4.1-flash-free" }
Дешёвая платная модель по умолчанию, когда бесплатная квота на исходе, — в том же файле:
{ "$schema": "https://opencode.ai/config.json", "model": "opencode/gpt-6-luna" }
Топовая модель на трудную неделю плюс переопределение для отдельного агента, чтобы на Opus шло только ревью, — в том же файле:
{ "$schema": "https://opencode.ai/config.json", "model": "opencode/gpt-6-luna", "agents": { "reviewer": { "description": "Final correctness and security pass", "mode": "subagent", "model": "opencode/claude-opus-5-5" } } }
Локальным моделям ключ не нужен. Если запущен ollama serve, OpenCode находит их сам по адресу по умолчанию, то же с LM Studio и vLLM. Достаточно выбрать ollama/qwen3:8b или похожую в /models. Смотрите Ollama: локальные модели простым способом и Qwen: скачать, установить, дообучить и применять.
Настройка
Две конфигурации, две разные задачи. opencode.jsonc — поведение сервера и проекта (модель, агенты, разрешения, MCP, навыки). cli.json — только терминал (тема, привязки клавиш, вкладки, диффы, уведомления). Никогда не кладите тему и привязки клавиш в opencode.jsonc.
- Глобальная: ~/.config/opencode/opencode.jsonc — действует во всех проектах.
- Проектная: opencode.jsonc или .opencode/opencode.jsonc — ищется от текущего каталога до корня файловой системы, ближний файл побеждает, любой файл .opencode перекрывает файлы напрямую.
- Машинная: /etc/opencode/opencode.jsonc плюс управляемые настройки — высший приоритет, для команд.
- Терминала: ~/.config/opencode/cli.json — только глобально, CLI-конфигурации на проект нет. Меняется из TUI через Ctrl+P, затем Open settings, или подмешивается через OPENCODE_CLI_CONFIG_CONTENT.
Дайте каждому проекту постоянные указания через AGENTS.md и закоммитьте его. Один раз запустите /init, чтобы его сгенерировать, затем держите там правила сборки, тестов и стиля. Глобальные значения по умолчанию живут в ~/.config/opencode/AGENTS.md, правила на весь репозиторий — в корневом файле, правила отдельного пакета — во вложенных файлах. V2 читает только AGENTS.md, запасного CLAUDE.md нет.
Безопасная база разрешений в проектном opencode.jsonc — спрашивать про оболочку, разрешать осмотр, никогда не пушить:
vi opencode.jsonc
{ "$schema": "https://opencode.ai/config.json", "model": "opencode/deepseek-v4.1-flash-free", "permissions": [ { "action": "shell", "resource": "*", "effect": "ask" }, { "action": "shell", "resource": "git status *", "effect": "allow" }, { "action": "shell", "resource": "git diff *", "effect": "allow" }, { "action": "shell", "resource": "npm test *", "effect": "allow" }, { "action": "shell", "resource": "git push *", "effect": "deny" }, { "action": "read", "resource": "*.env", "effect": "deny" } ] }
Жёсткие командные запреты, которые проекты не могут переопределить, идут в policies, а не в permissions. Пример: запретить провайдера или опасный инструмент глобально. Контроль контекста: formatter: true форматирует после write и edit, tool_output ограничивает строки и байты, compaction сохраняет свежие токены в долгих сессиях, warming держит простаивающие сессии тёплыми за небольшую плату в токенах. После правок перезагружайте без перезапуска:
opencode reload
Навыки и агенты: куда их класть
Навыки хранят чек-листы, агенты хранят роль. И то и другое — файлы в репозитории, и работают они одинаково на бесплатной модели OpenCode, GPT 6 Luna и Claude Opus 5.5 — различается только строгость, которую им можно доверить. Полные руководства с пятью готовыми навыками и четырьмя готовыми агентами: Как писать навыки для ИИ-ассистентов и Создание и развитие агентов.
Где лежит каждый файл, в виде вывода tree. Каждый элемент ссылается на главу, где он объяснён:
my-app/ ├── opencode.jsonc ├── AGENTS.md ├── .opencode/skills/ │ ├── commit-style.md │ ├── db-migrate/ │ │ ├── SKILL.md │ │ ├── scripts/rollback.sh │ │ └── references/policy.md │ ├── test-writer/ │ │ └── SKILL.md │ └── api-review/ │ └── SKILL.md ├── .opencode/agents/ │ ├── triage.md │ ├── builder.md │ ├── reviewer.md │ └── team/orchestrator.md └── .opencode/commands/ ├── review.md └── build-feature.md
Разделение моделей, которое работает на практике: triage на бесплатной модели объясняет и направляет, ничего не правя, builder на Luna реализует вместе с test-writer, reviewer на Opus 5.5 судит вместе с api-review. Один opencode.jsonc в корне проекта связывает всё вместе:
vi opencode.jsonc
{ "$schema": "https://opencode.ai/config.json", "model": "opencode/deepseek-v4.1-flash-free", "skills": ["./team-skills"], "permissions": [ { "action": "shell", "resource": "*", "effect": "ask" }, { "action": "shell", "resource": "npm test *", "effect": "allow" }, { "action": "shell", "resource": "git push *", "effect": "deny" } ], "agents": { "builder": { "model": "opencode/gpt-6-luna" }, "reviewer": { "model": "opencode/claude-opus-5-5" } } }
Ежедневные запросы, которые используют такую раскладку: With triage, explain src/auth.ts login flow, затем With builder and @test-writer, add validation and keep tests green, затем Use the reviewer subagent with @api-review on the staged diff. Личные эксперименты идут в ~/.config/opencode/skills/ и ~/.config/opencode/agents/, командные договорённости остаются в репозитории и коммитятся.
Три модели, один проект
Используйте все три модели на одном репозитории, у каждой фиксированная роль. Хитрость не в трёх копиях репозитория, а в одной раскладке плюс таблице маршрутизации, чтобы каждый агент знал, куда смотреть и что игнорировать:
| Роль | Файл агента | Модель | Какие навыки видит | Может править |
|---|---|---|---|---|
| Triage | triage.md | бесплатная модель OpenCode | никаких, только объясняет | нет |
| Build | builder.md | GPT 6 Luna | test-writer, db-migrate | да, без push |
| Review | reviewer.md | Claude Opus 5.5 | api-review и только он | нет, только отчёт |
1. Один AGENTS.md направляет все три роли. Держите корневой файл маленьким и пусть он указывает на роли, а не на названия моделей. Каждый агент читает его при запуске, поэтому это единственная карта, куда смотреть:
# Project instructions - Triage: explain only, never edit, never read .env files. - Build: implement in src/, tests in tests/, run npm test -- --run <file>. - Review: read staged diff only, rubric in .opencode/skills/api-review/SKILL.md. - DB rules: .opencode/skills/db-migrate/references/policy.md is normative.
Вложенные файлы для отдельных областей уточняют, но никогда не повторяют. Пример src/database/AGENTS.md с двумя строками про имена миграций читается, когда исследуется этот каталог — triage видит его при объяснении, builder при правке, reviewer при аудите.
2. Описания — это указатели. Модель выбирает навыки и субагентов только по тексту описания, поэтому пишите каждое описание как маршрут: глагол плюс путь плюс отрицание. Сравните:
description: Safe database migration with review and rollback plan description: Review API diffs for bugs, security, and missing tests
Описания агентов делают то же самое для родителя: Explains code and sorts tasks without editing против Final correctness and security pass over staged diffs. Оркестратору тогда не нужны названия моделей, только намерение: With team/orchestrator, plan cursor pagination for orders расходится по explore, builder и reviewer по совпадению описаний.
3. Ограничивайте навыки по агентам, чтобы каждая роль видела свою полку. Хранилище навыков одно, видимость разная. Triage не видит ничего для загрузки, builder видит два рабочих чек-листа, reviewer видит только строгую рубрику — всё в opencode.jsonc:
{ "$schema": "https://opencode.ai/config.json", "model": "opencode/deepseek-v4.1-flash-free", "permissions": [ { "action": "skill", "resource": "*", "effect": "allow" }, { "action": "shell", "resource": "git push *", "effect": "deny" }, { "action": "read", "resource": "*.env", "effect": "deny" } ], "agents": { "triage": { "model": "opencode/deepseek-v4.1-flash-free", "permissions": [ { "action": "edit", "resource": "*", "effect": "deny" }, { "action": "skill", "resource": "*", "effect": "deny" } ] }, "builder": { "model": "opencode/gpt-6-luna", "permissions": [ { "action": "skill", "resource": "*", "effect": "deny" }, { "action": "skill", "resource": "test-writer", "effect": "allow" }, { "action": "skill", "resource": "db-migrate", "effect": "allow" } ] }, "reviewer": { "model": "opencode/claude-opus-5-5", "permissions": [ { "action": "edit", "resource": "*", "effect": "deny" }, { "action": "shell", "resource": "*", "effect": "deny" }, { "action": "skill", "resource": "*", "effect": "deny" }, { "action": "skill", "resource": "api-review", "effect": "allow" } ] } } }
4. Передача работы в одной сессии, от дешёвого к дорогому. Оставайтесь в одной сессии, чтобы контекст накапливался, и повышайте модель только при смене роли:
With triage, explain src/auth.ts login flow and route the refresh bug as small fix or feature
With builder and @test-writer, implement the small fix with three tests, show git diff --stat and stop
Use the reviewer subagent with @api-review on git diff --cached, verdict ship or fix first
Что переходит между шагами: triage возвращает маршрут в две строки плюс список файлов, builder возвращает дифф плюс вывод тестов, reviewer возвращает находки с файлом и строкой плюс вердикт. Больше ничего не передаётся — ни копия всего репозитория, ни повторное чтение файлов политик, потому что все три разрешают одни и те же относительные пути от тех же базовых каталогов SKILL.md. Держите секреты подальше от первого шага: бесплатная модель может быть тарифом для участников, который учится на запросах, поэтому .env и код клиентов отправляйте сразу на Luna, Opus или локальную модель.
Трио Aredel на одном репозитории
Та же схема трио, применённая к самому репозиторию aredel: сайт на PHP, в докруте которого больше 7000 PHP-файлов. Корень репозитория и докрут:
/home/andrei/github/aredel
container/src/
Раскладка ниже — результат аудита от 22.10.2026: навыки в одном месте, которое читают и OpenCode, и Claude Code, одни и те же три роли в каждом инструменте и лаунчер, проверяющий закреплённые id моделей. Тексты навыков — в карте проекта Aredel:
aredel/ ├── AGENTS.md ├── opencode.jsonc ├── .claude/skills/ │ ├── aredel-map/ │ ├── aredel-page/ │ ├── aredel-blocks/ │ ├── aredel-css/ │ ├── aredel-tooling/ │ ├── aredel-verify/ │ └── ai-style/ ├── .claude/agents/ ├── .opencode/agents/ │ ├── triage.md │ ├── builder.md │ └── reviewer.md ├── .opencode/commands/review.md └── container/tools/ai/opencode.sh
Правила размещения:
- Одна общая полка: все навыки в .claude/skills/<name>/SKILL.md в корне репозитория. OpenCode читает этот каталог как совместимое расположение, Claude Code — как родное, так что оба инструмента загружают одни и те же процедуры.
- Никаких навыков внутри докрута: ai-style лежит вместе с остальными и ограничивает себя container/src/ai/ через своё описание. Копия в container/src/ai/.opencode/ уехала бы на сайт вместе с ним.
- Тяжёлый текст в references: длинные чек-листы живут в references/ рядом с SKILL.md, тексты навыков остаются короче 60 строк. Каждый навык объявляется; скрытый навык — тот, который нужная роль никогда не найдёт.
Связка ролей и навыков для aredel, от дешёвого к дорогому:
| Агент | Модель | Видит | Типичный запрос |
|---|---|---|---|
| triage | бесплатная модель OpenCode | только aredel-map | With triage, is src/ao/chessboard/game.php a page or a tool |
| builder | Luna | все навыки aredel | With builder, add the lesson plus tcont and sitemap run |
| reviewer | Opus 5.5 | все навыки aredel, git только на чтение | /review |
Корневой AGENTS.md — это таблица маршрутизации от задачи к навыкам плюс несколько правил, нужных каждой задаче; процедуры несут навыки. Его полный текст и причины каждого изменения — в материале «Аудит настройки агентов».
Старые и новые возможности
Классический ежедневный набор (всё ещё здесь). Полноэкранный TUI плюс mini для маленьких терминалов, настольное приложение с управлением браузером и веб-интерфейс через opencode pair и opencode serve. Наберите @, чтобы нечётким поиском найти файл и прикрепить его содержимое, например @src/auth.ts (контекст файла через @), ! для одноразовой команды оболочки, / для слэш-команд, Tab или Shift+Tab для переключения агентов Build и Plan. /new, /sessions, /undo и /redo со снимками файловой системы на основе Git, /share, /editor с EDITOR, /btw для побочных вопросов, которые не засоряют контекст. Рабочие лошадки CLI: run для одноразовых ответов и CI, session list/export/import, stats --cost --models, api GET /api/session, debug config/paths.
Агенты: 4 встроенных, которые важны. build (основной, программист по умолчанию), plan (основной, исследует, не правя файлы проекта), general (субагент для исследования и многошаговой работы), explore (субагент, поиск по коду и интернету только на чтение). Переопределяйте или добавляйте своих в .opencode/agents/reviewer.md или в разделе agents конфигурации, со своей моделью, системным промптом, лимитом шагов, цветом и разрешениями. Субагенты работают со свежим контекстом на переднем или заднем плане — родитель остаётся доступным.
Инструменты: небольшое фиксированное ядро плюс расширения. Файлы: read, glob, grep, edit, write (patch для правок в нескольких файлах на моделях GPT). Команды: shell с таймаутом на переднем плане и фоновым режимом для dev-серверов. Веб: webfetch, websearch с выбираемым провайдером. Взаимодействие: question приостанавливает работу и просит выбрать, skill загружает текст одного навыка по требованию, subagent запускает дочернего агента, execute выполняет параллельные вызовы инструментов в Code Mode, не заливая контекст. MCP-серверы добавляют инструменты с именем server_tool, пространство имён браузера управляет настольным браузером (вкладки, снимки, клики, скриншоты, Lighthouse). Каждый инструмент проверяет упорядоченные permissions: последнее совпадение побеждает, allow / ask / deny, с постоянными подтверждениями Allow always на проект.
Новое в V2, что стоит освоить. Варианты моделей #high, #low, #fast у каждой модели, свои варианты и псевдонимы в конфигурации, настройки на провайдера и на модель, заголовки и наложения на тело запроса, автоматические точки кеширования промптов (формат Anthropic, формат Alibaba). Обнаружение локальных моделей для Ollama, LM Studio и vLLM с обновлением в фоне. Сжатие: автоматические локальные пересказы плюс родные контрольные точки сжатия у провайдера с бюджетами keep.tokens и buffer. Прогрев с интервалом простоя. Именованные references на локальные каталоги или git-репозитории как вспомогательный контекст. Создание git worktree и перенос сессии для параллельных задач. Новая форма плагинов (хуки, преобразования, инструменты, расширения TUI и RPC) — плагины V1 не работают, переносите их. ACP-сервер через stdin и stdout для интеграций с редакторами, SDK и сгенерированный клиент TypeScript для HTTP API, OpenAPI по адресу /openapi.json.
Навыки, команды, MCP, политики. Навыки — это переиспользуемые пакеты инструкций: .opencode/skills/git-release/SKILL.md со скриптами и ссылками рядом, автоматически находятся в глобальном, проектном и явно указанном каталоге skills или в HTTP-каталогах, объявляются по описанию и загружаются через @skill-id. Команды — шаблоны промптов: .opencode/commands/review.md с $ARGUMENTS, $1, $2 и блоками оболочки !`git diff --cached`, необязательным агентом, моделью и фоновым subagent: true. MCP подключает локальные и удалённые инструменты: opencode mcp add playwright --global -- bunx @playwright/mcp, OAuth через /mcps, секреты через {env:KEY}, никогда открытым текстом. Политики жёстко запрещают провайдеров, инструменты, MCP, навыки и плагины после того, как отработали разрешения.
Рабочие приёмы
1. Ежедневный цикл сначала на бесплатном (бесплатная модель OpenCode). Поставьте бесплатную модель по умолчанию, делайте на ней всё, повышайте модель только при неудаче. F2 переключает недавние модели, Ctrl+X, затем M открывает список, не теряя контекст.
opencode
Explain lines 1-120 of @src/auth.ts, then list edge cases you are unsure about
Add validation to login, keep the public API, run npm test and show the diff
Если ответ слабый, оставайтесь в той же сессии и скажите Retry the fix with opencode/claude-opus-5-5, keep the passing tests green. Берегите Opus для финального прохода, а не для каждого нажатия клавиши — одно это снижает расходы на порядок.
2. Сначала Plan, потом Build (трудные задачи). Никогда не давайте сильной модели править по первому промпту. Нажмите Tab для режима Plan, опишите задачу как младшему разработчику, итерируйте, затем вернитесь по Tab в Build.
Plan: add cursor pagination to /api/orders. Show files to touch, schema change, and test plan. No edits yet.
Looks good, now implement step 1 and 2 only, then stop for review
Агент Plan по умолчанию не может править файлы проекта, поэтому он не сломает код, пока думает. Сохраняйте план в файл, если он растягивается на дни.
3. Параллельное исследование до того, как трогать код. Пусть субагенты размечают незнакомый код, пока вы продолжаете печатать. Один запрос — свежий контекст у каждого:
Ask the explore subagent to map the auth flow and return key files, then ask general to compare with docs in references/docs
То же самое в Code Mode: читайте package.json и README параллельно через execute, а возвращайте только детали настройки. Фоновые субагенты сообщают о завершении — запустите два и продолжайте работу в родителе.
4. Команда ревью для команды на Opus 5.5. Создайте один раз, используйте всегда. Файл .opencode/commands/review.md:
--- description: Review staged changes agent: general model: opencode/claude-opus-5-5 --- Review this diff for bugs, security and missing tests: !`git diff --cached`
Run /review, report findings in severity order with file and line
Дополните его агентом-ревьюером только на чтение, который запрещает edit и shell, чтобы ревью никогда не меняло код. Запускайте его в фоне через subagent: true, пока пишете следующую задачу.
5. Навыки плюс AGENTS.md для командных договорённостей. Кладите повторяемые командные знания в навык, а не в каждый промпт. Пример — .opencode/skills/db-migrate/SKILL.md с политикой миграций и скриптом отката рядом. Упомяните @db-migrate один раз, и агент загрузит весь чек-лист. Держите AGENTS.md крошечным: команды сборки, проверки типов и тестов, где живут запросы, что нельзя править никогда. Коммитьте оба, чтобы каждая сессия и каждый коллега получали одни и те же указания.
6. Ревью в CI, worktrees и длинные сессии. Одноразовое ревью в GitHub Actions на дешёвой модели, без TUI:
opencode run --standalone --model opencode/gpt-6-luna "Review this repository for correctness and summarize issues"
Параллельные задачи без боли с ветками: создайте worktree, перенесите в него сессию, основную ветку держите чистой. Для сессий дольше часа включайте автоматическое сжатие с щедрым бюджетом keep.tokens, а перед большими откатами коммитьте или делайте session export — снимки это удобство, а не резервная копия, и побочные эффекты оболочки никогда не откатываются.
Решение проблем
- Команда не найдена после установки: перезапустите терминал (обновится PATH), запустите установщик V2 заново, проверьте, что глобальный каталог bin npm есть в PATH. Проверка — opencode --version, лечение — opencode upgrade.
- Список моделей пуст: вы пропустили подключение — выполните /connect или opencode auth login opencode. Для Ollama проверьте ollama serve и ollama list. Помните, что каталог, учётные данные и конфигурация привязаны к расположению: модель, доступная в одном проекте, может отсутствовать в другом.
- Бесплатная модель пропала или упёрлась в лимиты: бесплатные id сменяются — возьмите следующий живой id из порядка замены, переключите модель по умолчанию на opencode/gpt-6-luna или вернитесь к локальной Ollama. Живой список приходит с https://opencode.ai/inference/v1/models.
- Неожиданные списания: задайте месячные лимиты рабочей области и участника в Console, включайте автопополнение осознанно, смотрите opencode stats --cost --models. Генерация заголовков сессий использует дешёвые модели и попадает в историю. Бесплатная модель — для черновиков, Luna — для рутинной платной работы, Opus 5.5 — только для трудного прохода.
- Слабые ответы: добавьте контекст файла через @, переключите агента через Shift+Tab, повысьте модель через F2. Держите AGENTS.md коротким и точным — длинные расплывчатые указания вредят больше, чем помогают.
- Сервис завис или ведёт себя странно: opencode service restart, затем opencode service status, сравните с opencode --standalone, посмотрите ~/.local/share/opencode/log/opencode.log с OPENCODE_LOG_LEVEL=DEBUG на одном воспроизведении. Не удаляйте базу данных и регистрацию сервиса во время диагностики.
- MCP требует входа: opencode mcp list показывает состояние — откройте /mcps, выберите сервер и войдите. Не вставляйте секреты OAuth в конфигурацию, используйте {env:KEY}.
- Путаница с конфигурацией V1: bash теперь shell, task теперь subagent, permission теперь упорядоченные permissions, snapshot — snapshots, настройки терминала переехали в cli.json. Попросите OpenCode перенести конфигурацию с сохранением поведения, затем проверьте модели, агентов, разрешения и MCP, прежде чем удалять резервную копию V1.
Официальные источники:
- opencode.ai/v2/docs
- opencode.ai/v2/llms.txt
- opencode.ai/docs/console/models (id, эндпоинты, цены, приватность)
- github.com/anomalyco/opencode
- openrouter.ai
Автор статьи: Клавдия Кондакова