🏠 Главная › user guide › autonomous ai agents opencode
{/ Эта страница автоматически передается из навыков SKILL.md с помощью сайта/scripts/generate-skill-docs.py. Редактируйте исходный SKILL.md, а не эту страницу. /}
Ниже приведено полное определение навыков, которые Hermes загружает при активации этого навыка. Это то, что агент видит в качестве инструкций, когда навыки активны.
Интерфейс командной строки OpenCode
Используйте OpenCode в качестве автономного рабочего процесса по кодированию, управляемого инструментами терминала/процессов Hermes. OpenCode — это не зависимость от провайдера кодирования AI-агента с открытым исходным кодом, имеющим TUI и CLI.
Когда использовать
Пользователь явно требует использовать OpenCode
Вы хотите, чтобы внешний агент кодингазовал/рефакторил/проверил код.
Вам нужны длительные сессии кодирования с проверкой прогресса.
Вы хотите параллельное выполнение задач в изолированных рабочих каталогах/рабочих деревьях.
Предварительные требования
OpenCode установлен: npm i -g opencode-ai@latest или brew install anomalyco/tap/opencode
Настроена аутентификация: opencode auth login или установить переменные окружения провайдера (OPENROUTER_API_KEY и т.д.)
Проверка: `список аутентификации открытого кода' должен отображаться хотя бы одного провайдера
Git-репозиторий для задач с кодом (рекомендуется)
pty=true для интерактивных TUI-сессий
разрешение бинарного файла (важно)
Окружающие условия могут разрешать разные двоичные файлы 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="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")
Интерактивные сессии opencode (TUI) требуют pty=true. Команда opencode run НЕ требует pty.
/exit НЕ допускается командой — она открывает селектора агента. Используйте Ctrl+C для выхода из TUI.
Несоответствие PATH может выбрать неправильный бинарный файл/конфигурацию модели OpenCode.
Если OpenCode кажется зависшим, проверьте логи перед убийством:
process(action="log", session_id="<id>")
Избегайте совместного использования одного рабочего каталога для параллельных сессий OpenCode.
Возможно, потребуется нажать кнопку Введите дважды для отправки в TUI (один раз для завершения текста, один раз для отправки).
Проверка
Дымовой тест:
terminal(command="opencode run 'Respond with exactly: OPENCODE_SMOKE_OK'")
Критерии успеха:
- Вывод включает OPENCODE_SMOKE_OK
- Команда завершается без ошибок провайдера/модели.
- Для задач с кодом: ожидаемые изменения файлов и передача тестов.
Правила
Предпочитайте opencode run для одноразовой автоматизации — это проще и не требует pty.
Используйте интерактивный фоновый режим только тогда, когда требуется итерация.
Всегда ограничивайте сессию OpenCode одним репозиторием/workdir.
Для длительных задач обеспечьте обновление прогресса журналов процесса.
Сообщайте о различных уровнях (измененные деньги, тесты, риски).
Выходите из интерактивных сессий с помощью Ctrl+C или kill, никогда не /exit.