OpenCode: открытый ИИ-агент для терминала
Как установить OpenCode, подключить облачную или локальную модель, настроить AGENTS.md, права и MCP. Сравнение с Claude Code и работа из России.
OpenCode — открытый агент для разработки. Он работает в терминале, десктопном приложении и расширении для IDE, а главное — не привязан к одному провайдеру. Можно подключить облачную модель, локальную через Ollama или собственный OpenAI-совместимый сервер.
Для пользователей из России это часто решающий аргумент: сам агент открытый, а модель можно выбрать под доступность и бюджет.
Чем отличается от Claude Code
| Критерий | Claude Code | OpenCode |
|---|---|---|
| Модели | В основном Claude | Любой провайдер, локальные модели |
| Исходный код | Закрытый | Открытый |
| Оплата | Подписка или API Anthropic | Провайдер модели или локально бесплатно |
| Доступ из России | Официально нет | Зависит от выбранной модели |
| Интерфейс | Терминал, IDE, десктоп, веб | Терминал, десктоп, IDE |
| Настройка | CLAUDE.md, хуки, субагенты | AGENTS.md, агенты, команды, плагины |
OpenCode не обязательно дешевле: сильная облачная модель стоит денег. Но вы не привязаны к одному вендору и можете переключиться на локальную модель, когда нужна приватность.
Версии
Сейчас существуют OpenCode 1 и OpenCode 2. У них общая команда opencode, поэтому одновременно установить обе версии с одним именем не получится. Команды установки и часть настроек отличаются.
Проверьте, какая версия вам нужна, на официальном сайте. Ниже — общие принципы, которые работают в обеих ветках; точные флаги сверяйте с документацией вашей версии.
Установка
Скрипт (macOS, Linux, WSL):
curl -fsSL https://opencode.ai/install | bash
Node.js:
npm install -g opencode-ai
Homebrew:
brew install anomalyco/tap/opencode
Windows:
choco install opencode
или
scoop install opencode
Официальная документация рекомендует Windows-пользователям WSL: там меньше проблем с путями, терминалом и инструментами. Нативный Windows тоже поддерживается, но часть функций может работать иначе.
После установки:
opencode --version
Первый запуск
cd путь/к/проекту
opencode
Внутри интерфейса выполните /init. OpenCode проанализирует проект и создаст AGENTS.md — файл с описанием структуры, команд и правил. Его стоит закоммитить в git: тогда агент будет понимать проект в следующих сессиях.
Дальше:
/connect— подключить провайдера и API-ключ;/models— выбрать модель;/help— список команд;@— поиск файла по имени;Tab— переключение между режимами Plan и Build;/undoи/redo— отменить или повторить изменения.
Режимы Plan и Build
В режиме Plan агент исследует проект и предлагает решение, но не меняет файлы. В Build — выполняет.
Рабочий порядок:
- Включите Plan.
- Опишите задачу и критерии.
- Прочитайте план.
- Переключитесь в Build.
- Проверьте diff и запустите тесты.
Разбей задачу на шаги: найди, где обрабатывается авторизация, предложи изменения и тесты. Не меняй код до подтверждения.
Подключение модели
Облачный провайдер
Через /connect выберите провайдера: Anthropic, OpenAI, OpenRouter, DeepSeek, Groq, GitHub Copilot и другие. Ключ сохранится локально. Затем /models покажет доступные модели.
OpenCode также предлагает собственные шлюзы — Zen и Go. Это не обязательно, но удобно, если не хочется заводить несколько аккаунтов.
Ollama
Запустите Ollama и скачайте модель:
ollama pull qwen3:8b
В проекте создайте opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"ollama": {
"npm": "@ai-sdk/openai-compatible",
"name": "Ollama (local)",
"options": {
"baseURL": "http://localhost:11434/v1"
},
"models": {
"qwen3:8b": {
"name": "Qwen3 8B (local)"
}
}
}
},
"model": "ollama/qwen3:8b"
}
LM Studio
Включите локальный сервер в LM Studio и укажите:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"lmstudio": {
"npm": "@ai-sdk/openai-compatible",
"name": "LM Studio (local)",
"options": {
"baseURL": "http://127.0.0.1:1234/v1"
},
"models": {
"qwen3-8b": {
"name": "Qwen3 8B (local)"
}
}
}
}
}
ID модели должен совпадать с тем, что отдаёт GET /v1/models. Если не совпадает, модель не появится в списке.
llama.cpp
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"llama.cpp": {
"npm": "@ai-sdk/openai-compatible",
"name": "llama-server (local)",
"options": {
"baseURL": "http://127.0.0.1:8080/v1"
},
"models": {
"local-model": {
"name": "Local model",
"limit": {
"context": 32768,
"output": 8192
}
}
}
}
}
}
Для локальных моделей важны две вещи: достаточный контекст и поддержка tool-calling. Без вызова инструментов агент не сможет читать файлы и запускать команды. Если инструменты не работают, увеличьте num_ctx до 16k–32k и выберите модель, обученную на вызовы функций.
Заметка
Агент с локальной моделью 8B будет ошибаться чаще, чем с топовой облачной. Для правок в реальном проекте лучше 30B+ с хорошим tool-calling или облачная модель. Локальный запуск хорош для приватных задач и экспериментов.
Настройка
Конфигурация может лежать глобально (~/.config/opencode/opencode.json) или в проекте (opencode.json). Проектная конфигурация имеет приоритет.
Основные поля:
model— модель по умолчанию;small_model— дешёвая модель для служебных задач;provider— провайдеры и модели;permission— права на инструменты;agent— свои агенты;command— повторяемые команды;mcp— MCP-серверы;instructions— файлы с правилами;formatter,lsp— форматирование и языковые серверы;snapshot— снимки для отмены изменений;share— доступ к сессии по ссылке.
Права
По умолчанию OpenCode разрешает большинство операций, но чтение .env и доступ к внешним папкам требуют подтверждения. Ужесточить можно так:
{
"permission": {
"edit": "ask",
"bash": "ask"
}
}
Для опасных команд добавьте запреты:
{
"permission": {
"bash": {
"*": "ask",
"rm -rf *": "deny",
"git push --force": "deny"
}
}
}
Синтаксис проверяйте по схеме https://opencode.ai/config.json: он меняется между версиями.
AGENTS.md
Файл AGENTS.md — главный способ объяснить проекту правила. Он работает и в других агентах, что удобно при смене инструмента.
# Правила проекта
- Python 3.13, стандартная библиотека.
- Сборка: `python build.py`.
- Проверка: `python tools/check.py`.
- Не редактировать `dist/`.
- Перед коммитом запускать проверку.
- Новые зависимости не добавлять.
Можно подключать дополнительные файлы через instructions, например CONTRIBUTING.md или правила из .cursor/rules.
Агенты и команды
В OpenCode можно описать специализированных агентов: ревьюер, тестировщик, документатор. У каждого — своя модель, промпт и набор инструментов.
{
"agent": {
"reviewer": {
"description": "Проверяет код на ошибки и безопасность",
"model": "anthropic/claude-sonnet-5-5",
"prompt": "Ты ревьюер. Ищи баги, проблемы безопасности и тесты.",
"tools": {
"write": false,
"edit": false
}
}
}
}
Команды — это сохранённые промпты:
{
"command": {
"test": {
"description": "Запустить тесты",
"template": "Запусти тесты, покажи ошибки и предложи исправления."
}
}
}
MCP, LSP и плагины
- MCP подключает внешние инструменты: трекеры, базы, документацию.
- LSP даёт агенту диагностику и переходы по коду.
- Плагины расширяют поведение: хуки, интеграции, дополнительные инструменты.
Каждое подключение — это доступ. Начните с минимума: файлы проекта, git, тесты. Внешние системы добавляйте по одной.
CLI и сервер
opencode run "объясни структуру проекта"
opencode serve
opencode upgrade
run полезен для скриптов и CI, serve — для интеграций через HTTP API. Для сервера настраивайте hostname и CORS осознанно: по умолчанию он не должен быть открыт в интернет.
Безопасность
- Работайте в git-ветке и делайте коммит до запуска агента.
- Проверяйте diff, а не только сообщение «готово».
- Запретите чтение
.env, ключей и клиентских данных. - Не давайте агенту доступ к продакшену.
- Ограничьте сеть и файловую систему, если запускаете автономно.
- Следите за расходом токенов.
- Помните про prompt injection: README, issue и веб-страница могут содержать инструкции.
OpenCode или Claude Code
Claude Code сильнее в экосистеме Anthropic: качественные модели, готовые хуки, субагенты, Desktop и Web. Но он привязан к Claude и официально недоступен в России.
OpenCode гибче: открытый код, любой провайдер, локальные модели, настройка под себя. Цена — больше ручной конфигурации и зависимость качества от выбранной модели.
Практичный вариант для России: OpenCode + локальная модель для приватных задач, облачная доступная модель — для сложных. Начните с одной задачи и не давайте агенту лишних прав.
Итог
OpenCode — это не «бесплатный Claude Code», а другой подход: агент как открытая оболочка, а модель — сменный компонент. Если разобраться с провайдером и правами, получается рабочий инструмент без привязки к одному вендору.
Дальше читайте про локальные модели — они хорошо сочетаются с OpenCode, когда важна приватность.
Редакция НейроСеть. Инструкции проверены на практике. Характеристики моделей и требования к железу меняются — сверяйтесь с документацией проекта и карточкой модели. Если заметили ошибку — напишите нам.