Поручите задачи по программированию инструменту OpenAI Codex CLI
Поручайте задачи по программированию, такие как создание функций, рефакторинг, проверка пулл-реквестов и массовое исправление ошибок, инструменту OpenAI Codex CLI через терминал Hermes.
Что понадобится
- Требуется наличие CLI-инструмента Codex и git-репозитория.
- Codex установлен:
npm install -g @openai/codex - Необходимо настроить аутентификацию OpenAI — либо через inline_2, либо с помощью учетных данных OAuth для Codex.
- В качестве альтернативы учетные данные OAuth для Codex можно получить в процессе входа в CLI-инструмент Codex.
- Необходимо запускать Codex внутри git-репозитория — он отказывается работать вне него.
- Для самого Hermes inline_4 использует управляемые Hermes учетные данные OAuth для Codex из inline_5 после inline_6. Для автономного CLI-инструмента Codex действующая сессия OAuth может находиться под inline_7; отсутствие inline_2 само по себе не является доказательством отсутствия аутентификации Codex.
Как применить
Используйте inline_3 при вызовах в терминале — Codex представляет собой интерактивное терминальное приложение.
Codex установлен: npm install -g @openai/codex
Используйте inline_3 при вызовах в терминале — Codex — это интерактивное терминальное приложение, которое зависает без PTY.
Для самого Hermes inline_4 использует управляемые Hermes учетные данные OAuth для Codex из inline_5 после inline_6; для автономного CLI-инструмента Codex действующая сессия OAuth может находиться под inline_7, поэтому отсутствие inline_2 само по себе не доказывает отсутствие аутентификации Codex.
Выполняйте разовые задачи по программированию с помощью команды Codex exec в рабочем каталоге проекта с использованием PTY.
terminal(command="codex exec 'Add dark mode toggle to settings'", workdir="~/project", pty=true)
Для временной работы создайте временную директорию, инициализируйте в ней git-репозиторий и выполните там разовую задачу Codex (Codex требует наличия git-репозитория).
terminal(command="cd $(mktemp -d) && git init && codex exec 'Build a snake game in Python'", pty=true)
Запускайте длительные задачи в фоновом режиме: запустите Codex в фоне с использованием PTY, опрашивайте и читайте логи для отслеживания прогресса, вводите данные, если Codex задает вопрос, и при необходимости завершайте сессию.
# Start in background with PTY
terminal(command="codex exec --sandbox workspace-write 'Refactor the auth module'", workdir="~/project", background=true, pty=true)
# Returns session_id
# Monitor progress
process(action="poll", session_id="<id>")
process(action="log", session_id="<id>")
# Send input if Codex asks a question
process(action="submit", session_id="<id>", data="yes")
# Kill if needed
process(action="kill", session_id="<id>")
Эффекты флагов: inline_8 выполняет задачу один раз и завершается после окончания; inline_9 (inline_10) работает в песочнице, но автоматически подтверждает изменения файлов в рабочей области (рекомендуемый режим автоматической сборки); inline_11 отключает песочницу и подтверждения (самый быстрый и опасный вариант; inline_12 продолжает работать как скрытое псевдоним); inline_13 отключает песочницу Codex, что полезно, когда контекст хост-сервиса нарушает работу bubblewrap.
Устарело: inline_14 все еще работает, но актуальный CLI предупреждает о необходимости использовать inline_9 вместо него.
Особенность шлюза Hermes: при вызове Codex из контекста шлюза/сервиса Hermes песочница Codex inline_15 может не сработать, даже если та же команда корректно выполняется в интерактивной оболочке пользователя.
Типичные симптомы — ошибки bubblewrap или пространства имен пользователя, такие как inline_16 или inline_17.
В таком случае предпочтительнее:
codex exec --sandbox danger-full-access "<task>"
Используйте границы процессов в качестве слоя защиты: явно указывайте inline_18, перед запуском проверяйте состояние git, формулируйте точные задания, проводите ревизию inline_19, выполняйте целевые тесты и получайте подтверждение от человека/агента перед внесением масштабных изменений.
Проводите проверку пулл-реквестов.
Клонируйте репозиторий во временную директорию для безопасного анализа, переключитесь на ветку пулл-реквеста и запустите проверку Codex относительно базовой ветки.
terminal(command="REVIEW=$(mktemp -d) && git clone https://github.com/user/repo.git $REVIEW && cd $REVIEW && gh pr checkout 42 && codex review --base origin/main", pty=true)
Решайте параллельные задачи с помощью git worktrees: создайте отдельную рабочую область для каждой задачи, запустите в ней Codex в фоновом режиме с использованием PTY, отслеживайте процесс, затем сделайте коммит и создайте пулл-реквесты после завершения, после чего удалите рабочие области.
# Create worktrees
terminal(command="git worktree add -b fix/issue-78 /tmp/issue-78 main", workdir="~/project")
terminal(command="git worktree add -b fix/issue-99 /tmp/issue-99 main", workdir="~/project")
# Launch Codex in each
terminal(command="codex --sandbox workspace-write exec 'Fix issue #78: <description>. Commit when done.'", workdir="/tmp/issue-78", background=true, pty=true)
terminal(command="codex --sandbox workspace-write exec 'Fix issue #99: <description>. Commit when done.'", workdir="/tmp/issue-99", background=true, pty=true)
# Monitor
process(action="list")
# After completion, push and create PRs
terminal(command="cd /tmp/issue-78 && git push -u origin fix/issue-78")
terminal(command="gh pr create --repo user/repo --head fix/issue-78 --title 'fix: ...' --body '...'")
# Cleanup
terminal(command="git worktree remove /tmp/issue-78", workdir="~/project")
Массовая проверка пулл-реквестов: получите ссылки на пулл-реквесты, запустите параллельные сессии проверки Codex в фоновом режиме с использованием PTY, затем опубликуйте результаты в виде комментариев к пулл-реквестам.
# Fetch all PR refs
terminal(command="git fetch origin '+refs/pull/*/head:refs/remotes/origin/pr/*'", workdir="~/project")
# Review multiple PRs in parallel
terminal(command="codex exec 'Review PR #86. git diff origin/main...origin/pr/86'", workdir="~/project", background=true, pty=true)
terminal(command="codex exec 'Review PR #87. git diff origin/main...origin/pr/87'", workdir="~/project", background=true, pty=true)
# Post results
terminal(command="gh pr comment 86 --body '<review>'", workdir="~/project")
Всегда используйте inline_3 — Codex представляет собой интерактивное терминальное приложение, которое зависает без PTY.
Требуется git-репозиторий — Codex не будет работать вне каталога с репозиторием; для временной работы используйте inline_20.
Для разовых задач используйте inline_21 — inline_22 выполняется и корректно завершается.
Для сборки используйте inline_9 — он автоматически подтверждает изменения внутри песочницы (inline_14 для этой цели устарел).
Для длительных задач используйте фоновый режим: запускайте их с помощью inline_23 и отслеживайте с помощью инструмента inline_24.
Не вмешивайтесь — наблюдайте за процессом с помощью inline_25/inline_26 и проявляйте терпение по отношению к длительно выполняющимся задачам.
Параллельное выполнение — это нормально: запускайте несколько процессов Codex одновременно для пакетной обработки.
Источник: nousresearch/hermes-agent и участники проекта. Лицензия: MIT.
Copyright (c) 2025 Nous Research
Перевод и редакционная адаптация: ClawCases.
>Ресурсы
>Похожие юзкейсы
Арбитр разрешения конфликтов слияния агентов
Разрешает конфликт слияния Git между ветками двух агентов в качестве беспристрастной третьей стороны: нейтральный арбитр, который принимает обе версии изменений и указанные намерения, после чего формирует итоговый результат слияния, не перезаписывая ни одну из сторон.
Автоматизируйте интерфейс macOS с помощью CLI-инструмента Peekaboo
Используйте Peekaboo для анализа интерфейса macOS, взаимодействия с нужным элементом и проверки результата. Примеры используют синтаксис версии 4; ознакомьтесь с актуальной документацией и справкой установленной команды. Для старых версий следуйте инструкциям соответствующей версии.
Монитор новостей конкурентов
Настройте регулярный мониторинг новостей конкурентов, который отслеживает заявленный список компаний и сообщает только о значимых нововведениях с подтверждением из первоисточников.