Codex и агенты ACP
Кроме Claude Code, Handler ведёт ещё два вида агентов: Codex от OpenAI и любых агентов, которые говорят Agent Client Protocol (ACP), — OpenCode, Gemini CLI и десятки других. Это не провайдеры моделей: у каждого свой процесс, свой вход и свои инструменты. Handler даёт им общий экран чата, карточки разрешений и вопросов, пуши, бот Telegram и экран агентов.
Оба вида — только хозяину: агент исполняет команды на машине от имени пользователя сервера, а области проектов и «только чтение» из ключей доступа ему не объяснить.
Codex
Карточка Codex — в «Настройки → Модели и провайдеры», под своими серверами и облаками: версия, вход и выход, подтверждение команд для новых чатов.
Вход — с кодом. На экране появляются ссылка и код, войти в ChatGPT можно с любого устройства, хоть с телефона: обратного вызова на localhost не нужно.
Новый чат — модели Codex стоят в общем списке формы нового чата группой «Codex · ChatGPT». Дальше это обычный чат: лента, модель и усилия на ходу, режим «План» с вопросами карточкой, /btw. Чат Codex лежит в своём проекте рядом с чатами Claude, отдельного списка нет. Ответ переживает перезапуск сервера Handler: codex app-server живёт своим процессом.
Инструкции как у Claude. Сам Codex читает только AGENTS.md; Handler отдаёт ему ещё и CLAUDE.md проекта и общий ~/.claude/CLAUDE.md.
Чего у Codex нет: картинок в сообщении, отката, ultracode и воркфлоу, работы на подключённом сервере. Такие кнопки в его чате просто не показываются.
Песочница Codex в докере не работает
На Linux Codex изолирует команды через bwrap, а тот не запускается под профилем seccomp докера по умолчанию. Поэтому в докере чат Codex идёт без песочницы, но с подтверждением команд: безопасные вроде ls Codex выполняет сам, остальное — карточкой «Разрешить / Отказать».
Агенты ACP
Карточка «Агенты ACP» — там же, под Codex. Встроены OpenCode и Gemini CLI: поставьте агента и войдите в него сами, Handler подхватит. Остальные — двумя путями:
- «Из реестра» — каталог агентов ACP с поиском: версия, описание, способ установки и лицензия. «Поставить» ставит закреплённую версию со сверкой SHA-256 (где реестр её даёт), рядом «Обновить до …» и «Удалить».
- «Своя команда» — id, имя, команда, аргументы и переменные окружения. Запускается без оболочки.
Новый чат — группа «Агенты ACP» в списке моделей формы. В самом чате модель, усилия и прочие настройки, которые объявляет агент, выбираются в «Режиме ответа»; режимов, которых у агента нет, там не будет.
Режим прав — по чату. Новый чат стартует с подтверждениями: запрос агента на команду или правку приходит той же карточкой, что у Claude, с оценкой риска. Опасное по-прежнему требует второго нажатия.
Инструменты Handler. Агенту ACP доступен тот же MCP handler, что и Claude: чаты и проекты, быстрые команды, HTML-страницы, секреты и память работы. CLAUDE.md проекта и общий уходят ему с первым сообщением, план агента виден списком.
Перезапуск сервера чат не обрывает. Агент живёт за своим процессом-посредником: висящая карточка разрешения или вопрос придут заново, а начатый ответ дойдёт до конца.
Старые сессии агента
Кнопка «Сессии агента» у каждого агента в карточке показывает сессии, которые он вёл мимо Handler — в терминале, в редакторе. «Забрать в Handler» поднимает сессию вместе с историей, дальше это обычный чат. Нужно, чтобы агент умел отдавать список и загружать сессию; не умеет — так и будет написано.
Агент заводит чат другого агента
Через MCP handler агент может завести чат Codex (codex/<модель>) или агента ACP (acp/<агент>) — например, поручить Gemini вторую половину работы. Права нового чата не слабее родительских: режим прав доходит и до Codex (политикой одобрений), и до агента ACP. Чего у этих движков нет (безопасного режима, песочницы, своих каталогов) — родителю отвечают отказом, а не теряют молча.