Слеш-команда Codex CLI /permissions применяется для настройки разрешений и требований к подтверждению действий агента: она помогает определить, что Codex может выполнять самостоятельно, какие операции должен предварительно согласовывать с пользователем и насколько строго нужно ограничить доступ к системе. Это особенно важно, когда агент работает не только с текстом, но и с файлами, командами терминала, зависимостями и внешними инструментами.
/permissions — это не просто переключатель «разрешить всё» или «запретить всё». Команда помогает выбрать баланс между удобством автоматизации и контролем над потенциально опасными действиями.
На практике разрешения становятся важны уже в первые минуты работы с проектом. Codex может предложить изменить файл, запустить тесты, установить пакет, выполнить миграцию или удалить временные данные. Если политика настроена слишком строго, работа превращается в бесконечную череду подтверждений. Если разрешения чрезмерно широкие, одна неточная команда может привести к нежелательным изменениям. Поэтому важно понимать, какие действия регулирует /permissions, а какие относятся к песочнице или просмотру текущей конфигурации.
- Как использовать /permissions
- Когда применять /permissions
- Примеры использования /permissions
- 1. Анализ проекта без изменения файлов
- 2. Исправление ошибки с обязательной проверкой
- 3. Запуск тестов и сборки
- 4. Установка зависимости
- 5. Работа с чувствительными данными и production-файлами
- Чем отличается от…
- /permissions и /setup-default-sandbox
- /permissions и /sandbox-add-read-dir
- /permissions и /status
Как использовать /permissions
Команда используется внутри интерактивного интерфейса Codex CLI. Сначала запустите Codex CLI в терминале, дождитесь появления приглашения для ввода сообщений, а затем введите /permissions. После этого откроется меню или набор пунктов, связанных с политикой подтверждений и уровнем доступа.
Перед изменением политики полезно ответить на простой вопрос: какие действия агент действительно должен выполнять без остановки, а какие обязан согласовывать?
Точный вид меню может зависеть от версии Codex CLI и используемой конфигурации. Поэтому не стоит воспринимать названия отдельных пунктов как неизменный стандарт: в одной версии настройка может быть представлена несколькими режимами, в другой — отдельными параметрами для подтверждений и песочницы.
| Действие | Что сделать | Ожидаемый результат |
|---|---|---|
| Открыть настройки разрешений | Ввести /permissions в интерактивном режиме |
Появится меню или список параметров политики |
| Выбрать пункт меню | Использовать клавиши навигации или указанный номер | Можно изменить режим подтверждения или доступа |
| Подтвердить изменение | Нажать клавишу, указанную интерфейсом | Новая политика начнёт применяться к текущей сессии или конфигурации |
| Отменить настройку | Выйти без сохранения или выбрать отмену | Предыдущие параметры останутся без изменений |
В зависимости от доступных режимов Codex может спрашивать подтверждение перед каждым чувствительным действием, разрешать безопасные операции автоматически или предоставлять более широкий уровень самостоятельности. Названия режимов могут отличаться, однако логика обычно остаётся одинаковой: чем больше свободы получает агент, тем больше ответственности ложится на пользователя.
| Уровень контроля | Поведение агента | Плюсы | Минусы |
|---|---|---|---|
| Строгий | Часто запрашивает подтверждение | Минимальный риск неожиданных изменений | Работа медленнее, много ручных подтверждений |
| Сбалансированный | Безопасные действия выполняются автоматически, чувствительные требуют согласия | Хорошее сочетание скорости и контроля | Нужно понимать, какие операции считаются чувствительными |
| Расширенный | Агент может самостоятельно выполнять больше команд | Удобно для автоматизации и повторяющихся задач | Ошибка в запросе может иметь более серьёзные последствия |
Обычно разумно начинать со строгого или сбалансированного режима, особенно если проект новый, в рабочей директории есть важные данные или Codex запускается с правами пользователя, имеющего доступ к большому числу каталогов. После нескольких задач можно ослабить ограничения, если вы уже понимаете характер действий агента.
| Ситуация | Рекомендуемый подход | Почему |
|---|---|---|
| Изучение незнакомого репозитория | Строгий или сбалансированный режим | Сначала важно наблюдать, какие команды предлагает агент |
| Написание и запуск локальных тестов | Сбалансированный режим | Тестовые команды часто безопасны, но могут изменять временные файлы |
| Массовое рефакторинг-изменение | Строгий режим на старте | Проще контролировать границы изменений |
| Повторяющаяся автоматизированная задача | Расширенный режим после проверки | Сокращается количество ручных подтверждений |
| Работа с production-конфигурацией | Максимально строгий контроль | Цена случайного действия может быть высокой |
Запуск Codex CLI $ codex В интерактивном интерфейсе: > /permissions Далее: 1. Просмотрите доступные режимы. 2. Выберите подходящий уровень подтверждения. 3. Подтвердите изменение. 4. Выполните небольшую безопасную задачу и проверьте поведение агента.
Когда применять /permissions
Команда особенно полезна в тот момент, когда стандартное поведение Codex перестаёт соответствовать задаче. Например, агент слишком часто спрашивает разрешение на чтение файлов, хотя вы просто анализируете проект, или, наоборот, получает слишком широкую свободу перед изменением конфигурации и запуском потенциально разрушительной команды.
Хорошая политика разрешений должна быть достаточно строгой для защиты проекта и достаточно удобной для реальной работы. Иначе пользователь либо утонет в подтверждениях, либо начнёт механически соглашаться на всё.
Перед выбором режима оцените не только саму задачу, но и окружение: где находится текущая директория, есть ли рядом секреты, подключены ли внешние сервисы, можно ли восстановить файлы из системы контроля версий и выполняется ли работа в отдельной ветке.
| Признак среды | Что может пойти не так | Как поступить |
|---|---|---|
| В каталоге есть файлы с ключами и токенами | Агент может прочитать их при выполнении задачи или ошибочной команде | Ограничить доступ и включить подтверждение чувствительных операций |
| Нет резервной копии или коммитов | Неудачное массовое изменение будет сложно отменить | Создать коммит или копию до расширения разрешений |
| Проект запускает скрипты установки | Зависимости могут выполнять произвольные действия | Подтверждать установки и сначала изучить команды |
| Работа ведётся в production-каталоге | Можно изменить рабочую конфигурацию или данные | Не предоставлять широкий доступ без крайней необходимости |
Для безопасного эксперимента удобно использовать отдельную ветку Git, тестовый каталог или временную копию проекта. Тогда даже при неверно выбранном режиме последствия будут ограничены. Важно помнить: подтверждение действия не заменяет резервное копирование. Подтверждение снижает вероятность ошибки, но не делает ошибочную команду безопасной автоматически.
| Задача | Подход к подтверждениям | Дополнительная мера |
|---|---|---|
| Объяснить структуру проекта | Можно выбрать более свободный режим для чтения | Не открывать агенту лишние каталоги |
| Изменить несколько исходных файлов | Подтверждать запись или проверять diff | Работать в отдельной ветке |
| Обновить зависимости | Подтверждать команды установки | Проверить lock-файл и список изменений |
| Удалить или переместить файлы | Использовать самый строгий режим | Попросить агента сначала составить план без выполнения |
| Запустить миграцию базы данных | Не разрешать автоматическое выполнение без проверки | Использовать тестовую базу и резервную копию |
Пример безопасного сценария перед массовым изменением: $ git status $ git switch -c codex-review > Проверь структуру проекта и предложи план. Пока не изменяй файлы. > /permissions Выбран строгий режим подтверждений. После проверки плана: > Теперь внеси изменения только в каталог src/ и покажи diff.
Если вы замечаете, что подтверждение запрашивается на каждую безобидную операцию, не обязательно сразу включать самый свободный режим. Сначала выясните, не связано ли это с ограничениями песочницы или с тем, что команда выполняется за пределами разрешённого каталога. В противном случае можно решить не ту проблему: изменить permissions, хотя требовалось добавить один безопасный каталог.
Примеры использования /permissions
Ниже приведены типовые сценарии. Они показывают не только сам вызов команды, но и логику выбора: сначала определить риск операции, затем выбрать политику, а после — проверить результат. Названия пунктов в меню могут отличаться в разных версиях Codex CLI, поэтому ориентируйтесь на описание, которое выводит ваш интерфейс.
1. Анализ проекта без изменения файлов
Когда требуется разобраться в структуре репозитория, найти точки входа или объяснить работу модуля, обычно достаточно режима с минимальным количеством операций записи. Такой подход помогает изучить возможности агента, не разрешая ему сразу менять код.
Задача: > Проанализируй проект, найди обработчик авторизации и объясни поток данных. > Не изменяй файлы и не запускай команды, которые что-либо записывают. > /permissions Выберите режим с подтверждением любых изменений. Проверьте, что чтение проекта разрешено, а запись требует отдельного согласия.
Проверка после анализа:
> Покажи, какие файлы были прочитаны и какие действия предлагаешь выполнить дальше.
> Не выполняй их автоматически.
Ожидаемый результат:
агент формирует план и список предполагаемых действий,
но не изменяет исходный код без подтверждения.
| Цель | Разрешить | Ограничить |
|---|---|---|
| Понять архитектуру | Чтение исходников и конфигурации проекта | Запись в файлы |
| Найти причину ошибки | Чтение логов и запуск безопасной диагностики | Удаление логов и изменение окружения |
| Составить план | Анализ структуры каталогов | Установку пакетов и миграции |
2. Исправление ошибки с обязательной проверкой
При исправлении бага агенту нужно разрешить изменять код, но полезно оставить подтверждение для операций, которые затрагивают зависимости, системные файлы или удаление данных. После каждого заметного изменения проверяйте diff, а не ограничивайтесь сообщением «готово».
Подготовка: $ git status $ git switch -c fix-login-timeout > /permissions Выбран сбалансированный режим. > Исправь тайм-аут авторизации, измени только файлы приложения и добавь тест. > Перед каждым запуском команды, которая изменяет окружение, запроси подтверждение.
Проверка результата:
$ git diff --stat
$ git diff -- src/ tests/
> Объясни каждое изменение и укажи, какие тесты были запущены.
Не принимайте изменения, если в diff появились секреты, lock-файлы или посторонние каталоги.
| Операция | Желательное поведение | Что проверить вручную |
|---|---|---|
| Изменение исходного файла | Разрешить в пределах рабочей директории | Логику, стиль и отсутствие лишних правок |
| Добавление теста | Разрешить после просмотра предполагаемого файла | Покрывает ли тест исходную проблему |
| Установка зависимости | Запрашивать подтверждение | Название пакета, источник и изменения lock-файла |
| Удаление файла | Всегда подтверждать отдельно | Нужен ли файл другим частям проекта |
3. Запуск тестов и сборки
Тесты и сборка часто воспринимаются как безопасные действия, но это не универсальное правило. Скрипт test может очищать каталог, обращаться к сети, менять базу данных или запускать сторонние программы. Поэтому разрешения стоит выбирать с учётом содержимого package.json, Makefile, CI-конфигурации или других файлов автоматизации.
Задача: > Запусти unit-тесты для модуля payments. > Не запускай интеграционные тесты и не меняй базу данных. > /permissions Выберите режим, в котором обычные команды требуют минимум подтверждений, но операции записи, сети и изменения окружения контролируются.
Перед запуском: $ cat package.json $ grep -R "test" -n Makefile package.json 2>/dev/null > Сначала покажи команду тестирования и объясни, какие каталоги она изменяет. > После моего подтверждения выполни только unit-тесты.
| Тип проверки | Потенциальный риск | Рекомендация |
|---|---|---|
| Unit-тесты без внешних сервисов | Обычно низкий, но возможны временные файлы | Можно использовать сбалансированный режим |
| Интеграционные тесты | Изменение базы или обращение к API | Требовать подтверждение и использовать тестовые сервисы |
| Сборка проекта | Большие каталоги артефактов и скрипты post-build | Проверить сценарии сборки заранее |
| Проверка линтером с автоисправлением | Массовое изменение файлов | Запускать сначала в режиме только проверки |
4. Установка зависимости
Установка пакета — хороший пример действия, которое нельзя оценивать только по названию команды. Менеджер пакетов может изменить lock-файл, выполнить скрипты установки и обратиться к внешней сети. Если задача требует новой библиотеки, подтверждайте не только саму установку, но и итоговый список изменений.
Запрос: > Добавь библиотеку для работы с датами и обнови зависимости. > /permissions Оставьте подтверждение для: - сетевого доступа; - установки пакетов; - выполнения install-скриптов; - изменения lock-файла. После запроса агента: > Покажи точную команду и версию пакета до выполнения.
Проверка после установки:
$ git diff -- package.json package-lock.json
$ npm ls --depth=0
> Проверь, не появились ли неожиданные зависимости.
Если изменились посторонние файлы, остановите процесс и разберите причину.
| Что проверять | Вопрос | Признак осторожности |
|---|---|---|
| Имя пакета | Это именно нужная библиотека? | Похожее название или неизвестный автор |
| Версия | Совместима ли она с проектом? | Автоматический переход на major-версию |
| Lock-файл | Изменились только ожидаемые записи? | Массовое обновление дерева зависимостей |
| Скрипты установки | Запускает ли пакет дополнительные команды? | Сборка бинарников или выполнение shell-скриптов |
5. Работа с чувствительными данными и production-файлами
Если задача связана с переменными окружения, ключами, файлами конфигурации или рабочими данными, выбирайте максимально контролируемый сценарий. В таких случаях лучше несколько раз подтвердить безопасную операцию, чем один раз автоматически раскрыть секрет или изменить не тот файл.
Задача: > Проверь, почему приложение не подключается к тестовой базе. > Не читай production-секреты и не изменяй файлы .env. > /permissions Используйте строгий режим: - чтение секретных файлов запрещено или требует явного подтверждения; - запись в конфигурацию запрещена по умолчанию; - сетевые подключения согласуются отдельно.
Безопасная альтернатива:
> Найди названия обязательных переменных окружения,
> но не выводи их значения.
> Предложи диагностическую команду для тестового окружения,
> не выполняя её без подтверждения.
Цель: проверить конфигурацию, не раскрывая секреты.
| Объект | Риск | Безопасная практика |
|---|---|---|
Файл .env |
Содержит токены и пароли | Не просить выводить значения, использовать шаблон переменных |
| Production-конфигурация | Изменение может нарушить работу сервиса | Работать с копией или тестовым вариантом |
| Логи приложения | Могут содержать персональные данные | Ограничить объём и маскировать чувствительные поля |
| Команды с переменными окружения | Секрет может попасть в историю терминала | Не вставлять токены прямо в командную строку |
Чем отличается от…
/permissions часто путают с командами, которые управляют песочницей или показывают состояние текущей сессии. Такое смешение понятно: все они связаны с доступом агента к окружению. Но задачи у них разные — одна регулирует согласование действий, другая добавляет разрешённый каталог, третья только отображает сведения.
Разрешения отвечают на вопрос «нужно ли спрашивать перед действием?», песочница — «где это действие разрешено выполнять?», а статус — «какая конфигурация действует сейчас?»
| Команда | Основная задача | Меняет конфигурацию? |
|---|---|---|
/permissions |
Настройка разрешений и требований к подтверждению действий | Да, в пределах доступных параметров |
/setup-default-sandbox |
Настройка или восстановление параметров песочницы по умолчанию | Да, параметры изоляции и среды выполнения |
/sandbox-add-read-dir |
Добавление каталога, который песочница может читать | Да, список доступных для чтения директорий |
/status |
Просмотр текущего состояния и применяемой конфигурации | Нет, команда предназначена для просмотра |
/permissions и /setup-default-sandbox
Главное различие заключается в уровне настройки. /permissions определяет, как Codex должен вести себя перед выполнением действий: запрашивать подтверждение, выполнять безопасные операции автоматически или придерживаться более строгой политики. /setup-default-sandbox относится к самой песочнице — изолированной среде, в которой ограничиваются доступ к системе, файлам или отдельным возможностям.
| Вопрос | /permissions |
/setup-default-sandbox |
|---|---|---|
| Нужно ли подтверждать действие? | Да, это основная область команды | Не основная задача |
| Где агент может работать? | Не определяет это напрямую | Связано с настройкой среды и ограничений |
| Можно ли изменить поведение подтверждений? | Да | Не для этого предназначена команда |
| Когда применять? | Когда нужно изменить политику согласования действий | Когда требуется настроить песочницу по умолчанию |
Например, агент может иметь разрешение запускать определённые действия без постоянного подтверждения, но при этом не иметь доступа к конкретному каталогу из-за ограничений песочницы. В такой ситуации повторный запуск /permissions не решит проблему чтения директории: нужно разобраться с настройкой среды выполнения.
Ситуация: > Прочитай документацию из ../shared-docs. Ответ агента: Каталог недоступен в текущей песочнице. Неверная реакция: > /permissions Правильный следующий шаг: > /status Затем изучите настройки песочницы и, если это допустимо: > /sandbox-add-read-dir ../shared-docs
/permissions и /sandbox-add-read-dir
/sandbox-add-read-dir предназначена для добавления каталога, который песочница сможет читать. Это не равно общему разрешению на действия. Команда может открыть агенту доступ к чтению конкретной папки, но не обязательно разрешит изменять её содержимое, запускать оттуда программы или выполнять сетевые операции.
| Сценарий | Какая команда относится к проблеме | Объяснение |
|---|---|---|
| Нужно разрешить чтение общей документации | /sandbox-add-read-dir |
Проблема связана с доступностью каталога |
| Нужно запретить автоматическое удаление файлов | /permissions |
Речь идёт о подтверждении действия |
| Нужно понять, почему файл недоступен | /status, затем возможно /sandbox-add-read-dir |
Сначала следует увидеть действующую конфигурацию |
| Нужно изменить уровень автономности агента | /permissions |
Меняется политика поведения, а не список каталогов |
Пример: > Прочитай README из каталога /work/docs. Агент сообщает, что каталог недоступен. > /status Проверьте текущие ограничения песочницы. Если каталог разрешено открыть: > /sandbox-add-read-dir /work/docs После этого: > Прочитай только README.md и не изменяй файлы.
Не добавляйте в песочницу весь домашний каталог, если для задачи достаточно одной папки. Принцип минимальных прав здесь работает очень буквально: лучше разрешить чтение одного нужного каталога, чем открыть агенту доступ ко всему диску.
/permissions и /status
/status не предназначена для изменения политики. Она помогает посмотреть, какие параметры действуют в текущей сессии: состояние песочницы, доступные ограничения, выбранный режим или другую информацию, которую показывает конкретная версия Codex CLI.
| Нужно сделать | Команда | Результат |
|---|---|---|
| Узнать текущую конфигурацию | /status |
Информация о действующих настройках |
| Изменить требования к подтверждению | /permissions |
Открытие настроек разрешений |
| Настроить песочницу по умолчанию | /setup-default-sandbox |
Изменение параметров песочницы |
| Добавить каталог только для чтения | /sandbox-add-read-dir |
Расширение доступного для чтения пути |
Диагностический сценарий: > /status Проверьте: - какой режим подтверждения выбран; - включена ли песочница; - доступен ли нужный рабочий каталог; - нет ли дополнительных ограничений. Если проблема в подтверждениях: > /permissions Если проблема в каталоге: изучите параметры песочницы и используйте <a href="/codex-cli-slash-sandbox-add-read-dir">/sandbox-add-read-dir</a> только для необходимого пути.
| Симптом | Вероятная причина | Первое действие |
|---|---|---|
| Codex постоянно спрашивает подтверждение | Слишком строгая политика разрешений | Открыть /permissions |
| Codex не видит нужную папку | Каталог ограничен песочницей | Проверить /status |
| Codex видит папку, но не может записать файл | Доступ ограничен только чтением или требуется подтверждение | Разделить проблему песочницы и permissions |
| Непонятно, какие настройки применяются | Конфигурация изменилась в текущей сессии | Выполнить /status |
Итак, /permissions следует использовать для управления политикой согласования действий. Если вопрос звучит как «можно ли агенту выполнить это действие без моего подтверждения?», нужна именно эта команда. Если вопрос звучит как «может ли песочница увидеть этот каталог?», нужно смотреть в сторону настройки sandbox. А если вы не уверены, что именно происходит, начните с /status: сначала наблюдение, затем изменение.
Краткая памятка: Нужно изменить подтверждения действий: > /permissions Нужно настроить песочницу по умолчанию: > /setup-default-sandbox Нужно добавить каталог для чтения: > /sandbox-add-read-dir /path/to/dir Нужно посмотреть текущую конфигурацию: > /status
