Добавить в корзинуПозвонить
Найти в Дзене
LITVINOV-UPGRADE-LINUX

OpenCode, настройка и практика использования в Astra Linux

OpenCode - это открытая и не привязанная к конкретному вендору агентная ИИ-среда для разработки, которая работает в терминале через TUI (Text User Interface). Её ключевая особенность - поддержка более 75 моделей от различных провайдеров (OpenAI, Anthropic, Google и локальных моделей через Ollama), что позволяет свободно переключаться между ними без ограничений.
OpenCode обладает мощным набором инструментов (чтение, запись, поиск файлов, выполнение команд), встроенным Git для отката изменений и системой специализированных агентов (например, Build для активной разработки и Plan для анализа кода без права на запись) .
AstraLinux 18 или AstraLinux1.7.9:
sudo apt install nodejs npm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
Важно:
#необходимо закрыть и открыть терминал, чтобы продолжить установку nodejs
#команда для просмотра доступных версий, рекомендуется устанавливать последнюю LTS версию
nvm ls-remote nvm install v24.14.1
Оглавление

OpenCode - это открытая и не привязанная к конкретному вендору агентная ИИ-среда для разработки, которая работает в терминале через TUI (Text User Interface). Её ключевая особенность - поддержка более 75 моделей от различных провайдеров (OpenAI, Anthropic, Google и локальных моделей через Ollama), что позволяет свободно переключаться между ними без ограничений.

OpenCode обладает мощным набором инструментов (чтение, запись, поиск файлов, выполнение команд), встроенным Git для отката изменений и системой специализированных агентов (например, Build для активной разработки и Plan для анализа кода без права на запись) .

Установка nodejs

AstraLinux 18 или AstraLinux1.7.9:
sudo apt install nodejs npm

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
Важно:
#необходимо закрыть и открыть терминал, чтобы продолжить установку nodejs

#команда для просмотра доступных версий, рекомендуется устанавливать последнюю LTS версию
nvm ls-remote

nvm install v24.14.1
astra@astra:~$ node -v
v24.14.1
astra@astra:~$ npm -v
11.11.0

Установка opencode

curl -fsSL https://opencode.ai/install | bash

curl -fsSL https://opencode.ai/install | bash
curl -fsSL https://opencode.ai/install | bash

astra@astra:~$ opencode

-3

Настройка провайдеров в OpenCode

Надо запустить в папке с проектом, создадутся в ~/.config/opencode - настройки:

-4

В терминале создаю файл настроек:
mkdir -p ${HOME}/.config/opencode
touch ${HOME}/.config/opencode/opencode.json & kate ${HOME}/.config/opencode/opencode.json

{
"$schema": "https://opencode.ai/config.json",
"provider": {
"routerai": {
"npm": "@ai-sdk/openai-compatible",
"name": "RouterAI",
"options": {
"baseURL": "https://routerai.ru/api/v1"
},
"models": {
"qwen/qwen3.6-plus": { "name": "Qwen Qwen3.6 Plus" },
"moonshotai/kimi-k2.6": { "name": "MoonshotAI Kimi K2.6" },
"deepseek/deepseek-v4-pro": { "name": "DeepSeek: DeepSeek V4 Pro" },
"openai/gpt-5.5": {"name": "OpenAI: GPT-5.5"},
"z-ai/glm-5.1": { "name": "GLM 5.1" },
"minimax/minimax-m2.7": { "name": "MiniMax M2.7" }
}
},
"lmstudio": {
"npm": "@ai-sdk/openai-compatible",
"name": "LM Studio (local)",
"options": {
"baseURL": "http://192.168.1.70:1234/v1"
},
"models": {
"qwen/qwen3.6-35b-a3b": { "name": "Qwen 3.6-35b-a3b" },
"google/gemma-3n-e4b": { "name": "Gemma 3n-e4b (local)" }
}
}
}
}

Начало работы

Запускаем в нужном каталоге:

opencode

Подключаю провайдера:
/connect

-5


Далее вводиться API ключ, или может быть локальная модель

-6

Хорошо себя показывают:
* для задач С++ и Qt5 модели Kimi K2.6 и Qwen3.6
* с bash скриптами хорошо справляются все
* OpenAI кажется что справляется лучше с задачами, но стоит в 4 раза дороже.

Для специфических задач хорошо использовать локальные модели, через LMStudio. Например:
* Генерация PlantUML диаграммы для какого-то алгоритма используемого в коде

В процессе работы можно задавать разные модели,
[ctrl + p] позволяет выбрать модели доступные у провайдера прямо в процессе работы можно сменить модель.
Есть несколько бесплатных.

Но в документации сказано, что при использовании этих моделей данные будут использоваться для обучения этих моделей. Поэтому
бесплатные модели лучше не использовать.

-7

Настройка проекта

/init - создает AGENTS.md изучая все папки проекта

в этом файле прописываются правила проекта,
Можно попросить отвечать на русском языке


В
AGENTS.md прописывается:
* Как в OpenCode будет собирать проект.
* Где лежат файлы спецификаций
* На какой языке общаться с пользователем.
* Какими командами собирается PlantUML диаграмма (как проверяется ее корректность)

Можно создать
папку ./agents
В эту папку кладутся style guide по использованию и форматированию С++ кода, QMake, шаблоны разных операций (Шаблон генерации ТЗ на задачу).

При выполнении /init. OpenCode пропишет, что есть такие файлы, на которые надо посмотреть при кодировании и добавить в AGENTS.md пути где они лежат.
Qmake и Cmake файлов - эти стили учитываются при доработке кода

Работа с проектом.

В программе есть 2 режима Plan и Build
/agents - [build native/plan native] в режиме plan агент не может писать данные на диск
или переключаются режимы клавишей
[Tab]
Plan - ничего не редактирует
Build - имеет права на редактирование

Начинаем работать с новой сессией
/new
и в режиме Plan задаются вопросы и обсуждается, что происходит в коде и как программ предлагает решить задачу.

Чаще всего не нужно переходить в Build и просить что-то редактировать, отдельные части, можно скопировать руками и продолжить обсуждение.

Также хорошо работающие сценарии
* это написать тесты причем и unit так и функциональные
* написание документации и комментариев к функциям, также черновики readme, согласно заданному стилю
* попросить сделать ревью кода и попросить объяснить.

Для выхода из программы используется
/exit - выход из приложения

Функциональность работы с github

Пока не очевидны бонусы от такой работы. Лучше пользователь создаст отдельную ветку сам и в ней решит задачу.
OpenCode может увлекаться работой с ветками и в процессе она может начать откатывать коммиты, создавать ветки, решая задачу, которая поставила модель в тупик.
Поэтому на момент написания статьи, считаю, что работа с git и merge request, это задача человека.

-8

Подключение локальной Qwen3.6-35b-a3b

LM Studio - это программное приложение, позволяющее запускать большие языковые модели (LLM) полностью локально на персональном компьютере без необходимости подключения к интернету . Программа предоставляет интуитивно понятный интерфейс для поиска, загрузки и управления моделями из репозиториев Hugging Face, а также включает встроенный локальный сервер с API, совместимым с OpenAI, что позволяет другим приложениям, таким как OpenCode подключаться к моделям через обратный прокси для решения различных задач

-9

Настройки обратного прокси из Win10 к виртуалке с Linux
ipconfig покажет адрес 192.168.1.70 порт желательно оставить такой как и у сервера LMStudio

Эта команда запускает Caddy в режиме простого обратного прокси (reverse proxy) - Установка Caddy будет рассмотрена ниже.
caddy_windows_amd64.exe reverse-proxy --from http://192.168.56.1:1234 --to 192.168.1.70:1234

Настройка локальных моделей в OpenCode

${HOME}/.config/opencode/opencode.json

{
"$schema": "https://opencode.ai/config.json",
"provider": {
"routerai": {
"npm": "@ai-sdk/openai-compatible",
"name": "RouterAI",
"options": {
"baseURL": "https://routerai.ru/api/v1"
},
"models": {
"qwen/qwen3.6-plus": { "name": "Qwen Qwen3.6 Plus" },
"moonshotai/kimi-k2.6": { "name": "MoonshotAI Kimi K2.6" },
"deepseek/deepseek-v3.2": { "name": "DeepSeek DeepSeek V3.2" },
"z-ai/glm-5.1": { "name": "GLM 5.1" },
"minimax/minimax-m2.7": { "name": "MiniMax M2.7" }
}
},
"lmstudio": {
"npm": "@ai-sdk/openai-compatible",
"name": "LM Studio (local)",
"options": {
"baseURL": "http://192.168.1.70:1234/v1"
},
"models": {
"qwen/qwen3.6-35b-a3b": { "name": "Qwen 3.6-35b-a3b" },
"google/gemma-3n-e4b": { "name": "Gemma 3n-e4b (local)" }
}
}
}
}

Caddy

Caddy - это современный веб-сервер на Go, который позволяет создать reverse proxy одной простой директивой reverse_proxy в минималистичном Caddyfile, автоматически получая и продлевая TLS-сертификаты через Let's Encrypt, балансируя нагрузку, поддерживая активные проверки здоровья (active health checks), WebSockets и HTTP/3 без необходимости в дополнительных настройках или перезапусках.

-10

Ссылки

OpenCode | AI-агент с открытым кодом для программирования
Как установить Node.js на Astra?
Вайб-кодинг в OpenCode: Настройка окружения + RouterAI (Claude, GPT...
Download Caddy
LM Studio - Local AI on your computer