{/ Эта страница автоматически передается из навыков SKILL.md с помощью сайта/scripts/generate-skill-docs.py. Редактируйте исходный SKILL.md, а не эту страницу. /}

Открытый код

Делегирование кода OpenCode CLI (функции, ревью PR).

Метаданные навыки

Источник Встроенный (установлен по умолчанию)
Путь навыки/автономные-ИИ-агенты/открытый код
Версия 1.2.0
Автор Агент Гермес
Лицензия Массачусетский технологический институт
Платформы Linux, MacOS, Windows
Теги Coding-Agent, OpenCode, Автономный, Рефакторинг, Code-Review
Связанные навыки claude-code, codex, hermes-agent

Справочник: полный SKILL.md:::информация

Ниже приведено полное определение навыков, которые Hermes загружает при активации этого навыка. Это то, что агент видит в качестве инструкций, когда навыки активны.

Интерфейс командной строки OpenCode

Используйте OpenCode в качестве автономного рабочего процесса по кодированию, управляемого инструментами терминала/процессов Hermes. OpenCode — это не зависимость от провайдера кодирования AI-агента с открытым исходным кодом, имеющим TUI и CLI.

Когда использовать

Предварительные требования

разрешение бинарного файла (важно)

Окружающие условия могут разрешать разные двоичные файлы OpenCode. Если поведение между вашим терминалом и Hermes различается, проверьте:

terminal(command="which -a opencode")
terminal(command="opencode --version")

При необходимости зафиксируйте явный путь к бинарному файлу:

terminal(command="$HOME/.opencode/bin/opencode run '...'", workdir="~/project", pty=true)

Одноразовые задачи

Используйте opencode run для ограниченных, неинтерактивных задач:

terminal(command="opencode run 'Add retry logic to API calls and update tests'", workdir="~/project")

Прикрепите файлы контекста с помощью -f:

terminal(command="opencode run 'Review this config for security issues' -f config.yaml -f.env.example", workdir="~/project")

Порекомендуйте модели с помощью --мышления:

terminal(command="opencode run 'Debug why tests fail in CI' --thinking", workdir="~/project")

Принудительно укажите конкретную модель:

terminal(command="opencode run 'Refactor auth module' --model openrouter/anthropic/claude-sonnet-4", workdir="~/project")

Интерактивные сессии (фон)

Для итеративной работы, требующей нескольких обменов, запустите TUI на фоне:

terminal(command="opencode", workdir="~/project", background=true, pty=true)
# Возвращает session_id

# Отправьте промпт
process(action="submit", session_id="<id>", data="Implement OAuth refresh flow and add tests")

# Мониторинг прогресса
process(action="poll", session_id="<id>")
process(action="log", session_id="<id>")

# Отправьте последующий ввод
process(action="submit", session_id="<id>", data="Now add error handling for token expiry")

# Чистый выход — Ctrl+C
process(action="write", session_id="<id>", data="\x03")
# Или просто убейте процесс
process(action="kill", session_id="<id>")

Важно: НЕ воспользуйтесь /exit — это недопустимая команда OpenCode, и она открывает диалог выбора агента. Используйте Ctrl+C (\x03) или process(action="kill") для вывода.

Привязки клавиш TUI

Клавиша Действие
Ввод Отправить сообщение (нажмите дважды, если нужно)
Вкладка Переключение между агентами (сборка/план)
Ctrl+P Открыть палитру команды
Ctrl+X L Переключить сессию
Ctrl+X M Переключить модель
Ctrl+X Н Новая сессия
Ctrl+X E Открыть редактор
Ctrl+C Выйти из OpenCode

Возобновление сессий

После вывода OpenCode печатает ID сессии. Возобновите с помощью:

terminal(command="opencode -c", workdir="~/project", background=true, pty=true)  # Продолжить последнюю сессию
terminal(command="opencode -s ses_abc123", workdir="~/project", background=true, pty=true)  # Конкретная сессия

Распространенные флаги

Флаг Использование
запустить 'подсказку' Одноразовое выполнение и выход
--продолжить / -c Продолжить последнюю сессию OpenCode
--session <id> / -s Продолжить конкретную сессию
--агент <имя> Выбрать агента OpenCode (сборка или план)
--модель поставщик/модель Принудительно указать модель
--формат json Машиночитаемый вывод/события
--file <путь> / -f Прикрепите файл(ы) к сообщению
--мышление Показать блоки размышлений модели
--variant <уровень> Усилие рассуждения (высокое, максимальное, минимальное)
--title <имя> Назвать сессию
--attach <url> Подключиться к запущенному серверу с открытым кодом

Процедура

  1. Проверка надежности инструмента:
  2. терминал(команда="opencode --version")
  3. terminal(command="список аутентификации открытого кода")
  4. Для ограниченных задач используйте opencode run '...' (pty не нужен).
  5. Для итеративных задач запустите opencode с background=true, pty=true.
  6. Мониторьте длительные задачи с помощью process(action(action="poll"|"log").
  7. Если OpenCode запрашивает ввод, ответьте через process(action="submit",...).
  8. Выходите с помощью process(action="write", data="\x03") или process(action="kill").
  9. Сообщите пользователю об изменениях в файлах, безопасности тестов и следующих шагах.

Обзор рабочего процесса PR

У OpenCode есть встроенная команда PR:

terminal(command="opencode pr 42", workdir="~/project", pty=true)

Или выполните проверку во временном клоне для запуска:

terminal(command="REVIEW=$(mktemp -d) && git clone https://github.com/user/repo.git $REVIEW && cd $REVIEW && opencode run 'Review this PR vs main. Report bugs, security risks, test gaps, and style issues.' -f $(git diff origin/main --name-only | head -20 | tr '\n' ' ')", pty=true)

Параллельный рабочий шаблон

Используйте специальные рабочие каталоги/рабочие деревья, чтобы избежать коллизий:

terminal(command="opencode run 'Fix issue #101 and commit'", workdir="/tmp/issue-101", background=true, pty=true)
terminal(command="opencode run 'Add parser regression tests and commit'", workdir="/tmp/issue-102", background=true, pty=true)
process(action="list")

Управление сессиями и стоимостью

Список прошлой сессии:

terminal(command="opencode session list")

Проверьте использование токенов и стоимость:

terminal(command="opencode stats")
terminal(command="opencode stats --days 7 --models anthropic/claude-sonnet-4")

Подводные камни

Проверка

Дымовой тест:

terminal(command="opencode run 'Respond with exactly: OPENCODE_SMOKE_OK'")

Критерии успеха: - Вывод включает OPENCODE_SMOKE_OK - Команда завершается без ошибок провайдера/модели. - Для задач с кодом: ожидаемые изменения файлов и передача тестов.

Правила

  1. Предпочитайте opencode run для одноразовой автоматизации — это проще и не требует pty.
  2. Используйте интерактивный фоновый режим только тогда, когда требуется итерация.
  3. Всегда ограничивайте сессию OpenCode одним репозиторием/workdir.
  4. Для длительных задач обеспечьте обновление прогресса журналов процесса.
  5. Сообщайте о различных уровнях (измененные деньги, тесты, риски).
  6. Выходите из интерактивных сессий с помощью Ctrl+C или kill, никогда не /exit.