OpenCode: открытый ИИ-агент для терминала

Как установить OpenCode, подключить облачную или локальную модель, настроить AGENTS.md, права и MCP. Сравнение с Claude Code и работа из России.

OpenCode — открытый агент для разработки. Он работает в терминале, десктопном приложении и расширении для IDE, а главное — не привязан к одному провайдеру. Можно подключить облачную модель, локальную через Ollama или собственный OpenAI-совместимый сервер.

Для пользователей из России это часто решающий аргумент: сам агент открытый, а модель можно выбрать под доступность и бюджет.

Чем отличается от Claude Code

КритерийClaude CodeOpenCode
МоделиВ основном 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 — выполняет.

Рабочий порядок:

  1. Включите Plan.
  2. Опишите задачу и критерии.
  3. Прочитайте план.
  4. Переключитесь в Build.
  5. Проверьте 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, когда важна приватность.

Редакция НейроСеть. Инструкции проверены на практике. Характеристики моделей и требования к железу меняются — сверяйтесь с документацией проекта и карточкой модели. Если заметили ошибку — напишите нам.

Другие гайды раздела