Codex Profiles: управление профилями Codex и окнами ChatGPT
📂 Исходный код на GitHubNamed CODEX_HOME profiles and ChatGPT Desktop windows with separate local state, without copying tokens
Codex Profiles — это утилита для управления несколькими профилями OpenAI Codex CLI и отдельными окнами ChatGPT Desktop. Она позволяет персональные, рабочие и клиентские профили работать параллельно, каждый со своей изолированной директорией данных и авторизацией. Инструмент создан на чистом Bash, не требует внешних зависимостей и доступен через npm, Homebrew, Nix или из исходников.
Зачем это нужно
При работе с Codex CLI и ChatGPT Desktop на одном компьютере часто возникает необходимость разделить контексты: личные проекты, рабочие задачи, задачи для клиентов. По умолчанию Codex использует единую домашнюю директорию ~/.codex, а ChatGPT Desktop — общий профиль. Это приводит к смешиванию сессий и авторизационных данных.
Codex Profiles решает эту проблему, создавая отдельные «профили» с собственными каталогами. Каждый профиль — это независимый Codex home с отдельной авторизацией, историей и настройками. На macOS к этому добавляется возможность открывать именованные окна ChatGPT Desktop с изолированным локальным состоянием.
Быстрый старт
Установка через npm:
npm install -g codex-profile
codex-profile setup work
codex-profile cli work
Команда setup work создаст профиль и предложит войти в Codex CLI. После этого можно запускать Codex в контексте выбранного профиля. Если нужна ручная настройка:
codex-profile init work
codex-profile login work
codex-profile cli work
Важно: сначала нужно инициализировать профиль перед запуском. Инструмент не создаст профиль автоматически при опечатке.
Основные сценарии использования
Переключение между личным и рабочим
После настройки рабочего профиля можно добавить личный:
codex-profile setup personal
codex-profile cli personal
codex-profile cli work exec "review this repo"
Команда codex-profile cli без имени покажет интерактивный выбор профилей. Можно фильтровать по названию или использовать стрелки. В скриптах лучше передавать имя явно.
Для интеграции с оболочкой:
eval "$(codex-profile shell-init zsh --prompt --completions)"
codex-profile use work
Привязка проекта к профилю
Из директории проекта можно привязать профиль:
codex-profile workspace bind . work
codex-profile run
codex-profile run exec "run tests and summarize failures"
Привязка работает для родительских директорий — подпроекты могут использовать разные профили. Метаданные привязки хранятся локально и не меняют файлы проекта.
Отдельные окна ChatGPT на macOS
Для открытия именованного окна ChatGPT:
codex-profile app work
Каждое окно использует изолированное локальное состояние, включая Chat, Work и Codex. Разные имена работают параллельно, повторное открытие переиспользует процесс. Стандартная сессия не затрагивается.
Как работает изоляция
| Выбор | Используемое состояние |
|---|---|
default |
~/.codex; app default сохраняет стандартную сессию ChatGPT Desktop |
Любое другое имя (например, work) |
~/.codex-work; app work также использует electron-user-data/ из этого home |
cli, login, env, use |
Только выбор Codex; не переключают открытое окно ChatGPT |
Профили не наследуют настройки от default. Есть возможность явного совместного использования конфигурации через init --share-with. Инструмент никогда не читает и не копирует токены авторизации или куки ChatGPT. Изоляция на уровне локального состояния не заменяет изоляцию на уровне ОС — для более строгих границ используйте разные учетные записи пользователей.
Установка
Помимо npm, доступны другие методы:
Homebrew:
brew install Ducksss/tap/codex-profile
Standalone-установщик:
curl -fsSL https://raw.githubusercontent.com/Ducksss/codex-profiles/v1.2.0/install.sh \
| CODEX_PROFILE_VERSION=v1.2.0 sh
Nix:
nix run github:Ducksss/codex-profiles/v1.2.0
nix profile install github:Ducksss/codex-profiles/v1.2.0
Из исходников:
git clone https://github.com/Ducksss/codex-profiles.git
cd codex-profiles
make install
Проверка установки:
codex-profile doctor
Команды
Полный список команд доступен через codex-profile help. Вот основные:
| Задача | Команда |
|---|---|
| Настройка с руководством | codex-profile setup work |
| Выбор CLI-профиля | codex-profile cli |
| Выбор окна ChatGPT (macOS) | codex-profile app |
| Список профилей | codex-profile list |
| Детали профилей | codex-profile list --details |
| Проверка статуса | codex-profile status |
| Диагностика | codex-profile doctor |
| Запуск профиля текущего проекта | codex-profile run |
| Путь к home профиля | codex-profile path work |
| Интеграция с оболочкой | codex-profile shell-init <bash\|zsh\|fish> |
Поддержка платформ
CLI-команды работают на macOS и Linux. Команды app и launcher create требуют macOS. Поддерживаются Bash, Zsh и Fish. Термильная графика адаптируется к ширине и поддержке UTF-8; NO_COLOR=1 отключает цвета, а при пайпе help выводится простой текст.
Документация и помощь
- Полное руководство и FAQ
- Руководство по рабочим и личным профилям
- Руководство по именованным окнам ChatGPT
- Что остается общим, а что изолируется
- Сообщить об ошибке или обсудить рабочий процесс
- Инструкции для агентов и машиночитаемое описание
Upstream Codex использует --profile для выбора конфигурации внутри одного home; этот инструмент выбирает сам home. Команда status показывает статус Codex-локального состояния, а не аккаунт в окне Desktop. Подробности в FAQ.