IDE-расширение Codex полезно там, где задача тесно связана с редактором: с текущим выделением, открытыми файлами, диагностикой и навигацией по символам. Оно использует локальный runtime Codex и общий config, но добавляет команды и настройки, специфичные для редактора. Смысл расширения - приблизить агента к контексту, в котором вы уже работаете, а не создать отдельную вселенную: ядро поведения общее с CLI, различаются лишь способы подать контекст и представить результат.
Ключевая тонкость - контекст в редактор не попадает сам собой. То, что открыто в редакторе, не обязано автоматически становиться контекстом модели. Чтобы добавить выделение или открытые файлы в следующий prompt, используют команду IDE или /ide. Это осознанное различение: редактор может показывать десятки файлов, но агент увидит только то, что вы явно передали. Ожидать, что "он и так видит мой экран", - частая ошибка, ведущая к запросам, где агенту не хватает контекста, который вы считали переданным.
Выделение как контекст - это мощный, но требующий дисциплины приём. Полезно один раз увидеть такой запрос. Ниже - формулировка, которая берёт текущее выделение как падающую функцию: сначала найти вызывающих и тесты в workspace, не менять соседние модули, пока не показан execution path. Выделение задаёт точную точку входа, а границы в запросе удерживают агента от расползания. Точный контекст плюс явная граница - это то, что делает работу в IDE прицельной, а не расплывчатой.
Общая политика в IDE - та же, что и в CLI, и это важно понимать. Пользовательский ~/.codex/config.toml, конфигурация доверенного проекта .codex/config.toml, AGENTS.md, skills и MCP доступны по тем же основным правилам, что и в терминале. Расширение не заводит отдельную модель доверия и не переопределяет sandbox по-своему: оно берёт границы из общих слоёв. Поэтому настроенная один раз политика работает и в редакторе, и в CLI одинаково - при условии, что вы держите её в общем config, а не в editor-specific настройках.
Граница расширения проходит по представлению и интеграции, а не по ядру. Editor-specific команды и настройки управляют тем, как контекст подаётся и как показывается результат: выделение, открытые файлы, inline-представление. Но модель, sandbox, approvals и MCP берутся из общих слоёв. Это разделение стоит держать в голове: если поведение агента не то, причину ищут в общем config, а не в настройках редактора, а если неудобно подавать контекст - наоборот, в editor-specific части.
У расширения есть явное ограничение по плагинам, о котором нужно знать заранее. IDE-расширение не поддерживает каталог плагинов как самостоятельную поверхность. Возможности, поставляемые плагином, используют там, где поддержка плагинов документирована - в CLI или desktop, - а не ожидают тот же селектор в редакторе. Рассчитывать на plugin-функцию внутри IDE, потому что "она же установлена", - значит наткнуться на отсутствующую поверхность в неудобный момент.
Смысл IDE-расширения - короткий цикл обратной связи рядом с кодом, а не замена CLI. Оно выигрывает там, где важны выделение, диагностика и правки по месту, и проигрывает там, где нужны все флаги запуска и самая честная диагностика, - это территория терминала. Хороший рабочий процесс использует обе поверхности по назначению: IDE для прицельной работы с контекстом редактора, CLI для shell-heavy задач и точной настройки, а общую политику держит в config, чтобы переход между ними был свободным.
Типичные провалы вокруг IDE-расширения предсказуемы. Ждать, что открытые файлы сами станут контекстом, вместо явной передачи через /ide. Дать выделение без границы и позволить агенту расползтись по соседним модулям. Искать причину не того поведения в editor-настройках, хотя ядро - в общем config. И рассчитывать на плагины внутри IDE, где они не поддерживаются. Передавайте контекст явно, держите границу в запросе, ищите политику в общем config и используйте плагины там, где они документированы.
# Выделение как контекст (через IDE command или /ide)
Используй текущую selection как failing function.
Сначала найди callers и tests в workspace.
Не меняй соседние modules, пока не покажешь execution path.
# core (model, sandbox, approvals, MCP, AGENTS.md, skills) - из общего config, как в CLI