Перейти к основному содержимому

Перейти на сайт

Работа с OpenCode

Как установить OpenCode, выбрать модель и подключить агента к GitHub Actions.

OpenCode это агент для разработки на основе языковых моделей, который работает в терминале. На нём построены курсы по разработке с ИИ: агент читает код проекта, правит файлы, запускает команды и умеет отвечать на задачи в GitHub.

Установка​

Скачайте OpenCode со страницы загрузки и выберите вариант для своей операционной системы. После установки проверьте версию:

opencode --version

В выводе должна быть вторая версия, например opencode v2.0.13. Инструкции ниже написаны для неё. Если стоит версия 1.x, удалите её и поставьте OpenCode заново со страницы загрузки. На старой версии часть команд называется иначе, а в списке интеграций нет нужных пунктов.

Запустите агента командой opencode в каталоге проекта.

Выбор модели​

Модель выбирается внутри OpenCode командой /models. Модели тратят токены по-разному, поэтому под простую задачу стоит брать недорогую модель.

Бесплатные модели​

OpenCode даёт набор бесплатных моделей. Для них не нужны ни вход в аккаунт, ни ключ, ни карта: после установки они сразу видны в /models. В названии такой модели обычно стоит free.

Состав бесплатных моделей OpenCode меняет, поэтому модель из урока через месяц может пропасть из списка. Актуальный список лежит в документации OpenCode. Если модели из урока нет, возьмите любую другую бесплатную.

У бесплатных моделей есть дневной лимит запросов. Кроме того, запросы к части из них OpenCode и авторы моделей используют для обучения, поэтому личные данные, пароли и чужой закрытый код туда не отправляйте.

Платные модели​

Для платных моделей нужен аккаунт OpenCode. Выполните в терминале:

opencode auth login opencode

OpenCode спросит способ входа:

┌ Connect an integration
│
◆ Select login method
│ ● OpenCode Console account
│ ○ API key (service account)
└

Выберите OpenCode Console account, это вход через браузер. Второй пункт нужен для ключа сервисного аккаунта, в терминале он не используется. OpenCode напечатает код и адрес:

┌ Connect an integration
│
◇ Select login method
│ OpenCode Console account
│
◇ Authorization started
│
● Enter code: CDDW-LVGK
│
● https://opencode.ai/console/device?user_code=CDDW-LVGK&client_id=opencode-cli
│
◐ Waiting for authorization.

Откройте адрес в браузере, проверьте код и войдите через Google или GitHub. После подтверждения команда завершится сама. Внутри OpenCode то же самое делает команда /connect.

Страница входа в OpenCode Console: кнопки Continue with Google, Continue with GitHub и Continue with email

Проверить подключение можно командой:

opencode auth list

В выводе стоит интеграция, имя пространства и статус stored:

OpenCode Console Default stored

Оплата и расход живут в кабинете opencode.ai/console. Ключ другого провайдера, например OpenAI или Anthropic, подключается той же командой /connect.

Доступ к моделям от Хекслета​

В части программ Хекслет даёт студентам доступ к платным моделям через пространство Hexlet Students в OpenCode. Устройство OpenCode и команды остаются теми же, что описаны выше. Меняется пространство, из которого идут запросы. Ключ для GitHub Actions выпускается по шагам ниже, только в поле Workspace выберите Hexlet Students.

Если куратор не сообщал вам о доступе к Hexlet Students, пользуйтесь бесплатными моделями из разделов выше.

Приглашение в пространство​

Приглашение приходит на почту, которую вы указали в анкете курса. Войти в OpenCode можно только через Google или GitHub, поэтому почта аккаунта, через который вы входите, должна совпадать с почтой из анкеты. Какая почта привязана к GitHub, видно в настройках GitHub.

Письмо от OpenCode с приглашением в пространство Hexlet Students и кнопкой Join workspace

Если приглашение пришло на student@gmail.com, а вы входите через GitHub с почтой student@yandex.ru, OpenCode создаст новый пустой аккаунт без доступа к моделям курса.

Если письма нет, проверьте папку «Спам» и зайдите на opencode.ai/console напрямую: доступ уже выдан на почту из анкеты, и письмо для входа не требуется.

Подключение​

  1. Откройте opencode.ai/console. По умолчанию там открывается ваше личное пространство. В переключателе пространств в левом верхнем углу выберите Hexlet Students.

    Переключатель пространств в левом верхнем углу кабинета с выбранным Hexlet Students и блок Connect OpenCode CLI с командами для V2 и V1

  2. В терминале выполните opencode auth login opencode и войдите через браузер с той же почтой.

  3. Проверьте подключение командой opencode auth list. В выводе должна быть строка с Hexlet Students:

    OpenCode Console Hexlet Students stored
  4. Запустите OpenCode и выберите модель командой /models.

Список моделей в OpenCode: у каждой модели подпись Hexlet Students / OpenCode

Для проверки напишите агенту ping, он должен ответить.

Ответ агента pong на сообщение ping в пространстве Hexlet Students

Если OpenCode просит оплату, активен аккаунт личного пространства. Переключитесь командой opencode auth switch и выберите Hexlet Students. Если пространства Hexlet Students нет в переключателе, почта входа не совпала с анкетой: напишите куратору, с какой почты вы вошли.

Кабинет OpenCode в личном пространстве Default: этот вариант неверный

Кабинет OpenCode в пространстве Hexlet Students: этот вариант верный

В OpenCode список подключений открывает команда /connect. У активного аккаунта курса рядом с OpenCode Console стоит Hexlet Students.

Окно Connect an integration в OpenCode: строка OpenCode Console с подписью Hexlet Students

Лимит​

У каждого студента в пространстве Hexlet Students есть личный бюджет $20 в месяц. Из него оплачивается и работа в терминале, и запросы агента в GitHub Actions. Бюджет обновляется первого числа каждого месяца. Остаток виден в кабинете на вкладке Overview в блоке Monthly budget, отдельные запросы с ценой лежат на вкладке Logs.

Агент в GitHub Actions запускается сам на каждый пулреквест, комментарий или по расписанию, поэтому расход копится незаметно. Одно ревью пулреквеста моделью kimi-k3 стоит от $0.20 до $0.45, и активный день проверок может съесть весь бюджет. Для автоматических проверок берите в воркфлоу модель opencode/deepseek-v4.1-flash, она справляется с ревью и стоит намного дешевле. Сильную модель оставьте для терминала, где вы видите каждый запрос.

Агент в GitHub Actions​

OpenCode можно запускать в своём репозитории на GitHub. Агент работает на серверах GitHub и отвечает на комментарий в задаче или пулреквесте, а воркфлоу можно настроить и на запуск по каждому пулреквесту или по расписанию. Чтобы подключить агента, установите OpenCode GitHub App в репозиторий и заведите файл .github/workflows/opencode.yml по разделу Manual Setup документации OpenCode. Здесь разбираются модель и секрет с ключом.

Модель задаётся в воркфлоу полем model, и от её провайдера зависит имя секрета с ключом:

Модель в воркфлоуИмя секрета
opencode/<модель>OPENCODE_API_KEY
openai/<модель>OPENAI_API_KEY
anthropic/<модель>ANTHROPIC_API_KEY

Секрет добавляется в репозитории на GitHub: Settings → Secrets and variables → Actions, кнопка New repository secret.

Ключ для GitHub Actions​

Ключ нужен для любой модели, в том числе бесплатной. Для моделей opencode/… вы выпускаете его сами в кабинете OpenCode, для остальных моделей в кабинете провайдера.

  1. Откройте opencode.ai/console и войдите в свой аккаунт.
  2. Нажмите на свою почту в правом верхнем углу и выберите Account.
  3. В блоке Personal API keys нажмите Add API key.
  4. В поле Workspace выберите пространство, которое будет платить за запросы агента. По умолчанию там стоит Personal, ваш личный аккаунт с бесплатными моделями. Если у вас есть доступ к Hexlet Students, выберите это пространство, и запросы пойдут из бюджета курса.
  5. В поле Key name напишите понятное имя, например github-actions.
  6. В поле Expiration выберите Custom и в поле Days until expiration укажите, сколько дней вам нужен ключ. Ключ без срока живёт вечно, и про него легко забыть.
  7. Нажмите Create и сразу скопируйте ключ в секрет OPENCODE_API_KEY, кабинет показывает его один раз. Пустой секрет роняет запуск на аутентификации.

Ключ может только получить список моделей и вызвать их от вашего имени. Храните его только в секретах репозитория и не вставляйте в код.

Если проверка в GitHub Actions упала, причину подсказывает ответ OpenCode в логе.

  • Ошибка лимита на бесплатной модели означает, что кончился дневной лимит запросов. Повторите запуск позже или переключитесь на платную модель.
  • 429 Policy budget exceeded в пространстве Hexlet Students означает, что закончился месячный бюджет. Новый ключ не поможет, потому что все ключи тратят один бюджет. Дождитесь первого числа или напишите куратору.
  • 401 означает, что ключ истёк или отозван. Выпустите новый ключ по шагам выше и замените значение секрета.

Если ключ попал к посторонним, удалите его в блоке Personal API keys и выпустите новый. Старый перестаёт работать сразу. Когда вы покидаете пространство Hexlet Students, ключи этого пространства отзываются автоматически.

Если остались вопросы​

Студентам с доступом к Hexlet Students отвечает куратор. Остальным поможет поддержка: support@hexlet.io.

Полезные ссылки​

Документация OpenCode

Агент OpenCode в GitHub