Communitygithub.com

Codex 멀티 프로필 (Windows)

Windows Codex Desktop에서 여러 ChatGPT 계정을 사용하고, 하나의 공유 워크스페이스를 유지할 수 있도록 도와주는 비공식 도구입니다.

Codex 멀티 프로필 (Windows)란 무엇인가요?

이 스킬은 Windows Codex Desktop 사용자가 여러 개의 ChatGPT 로그인 계정을 전환하면서도 세션, 스킬, MCP, 메모리, 프로젝트 등 모든 작업 데이터를 하나의 공유 워크스페이스(`~/.codex`)에 유지할 수 있도록 합니다. Codex 데스크톱 앱이 간혹 `CODEX_HOME` 환경 변수를 무시하고 `~/.codex/auth.json`을 직접 읽는 문제를 해결하기 위해 **AuthSwap** 방식을 채택했습니다. AuthSwap은 프로필별 인증 토큰을 `profiles/<이름>/auth.json`에 저장하고, 실행 시 메인 `auth.json`과 교체(swap)하여 앱이 실제로 읽는 경로에 올바른 계정 정보를 제공합니다. 또한 Electron UI를 프로필 루트 디렉토리로 격리하여 브라우저 데이터도 분리합니다. PowerShell 스크립트를 통해 새 프로필 생성, 실행, 상태 확인, 중지 등을 관리할 수 있으며, `WindowsApps` 실행 파일 대신 복제된 `ChatGPT.exe`를 사용해야 하고, `Set-Content -Encoding UTF8`로 인한 BOM 문제를 피하는 등 구체적인 실행 규칙을 제공합니다. 주요 사용 사례로는 AI 에이전트가 "계정 전환" 또는 "프로필 생성" 명령을 받았을 때 적절한 런처 스크립트를 호출하고, 인증 상태를 검증하며, 잘못된 계정이 표시될 경우 두 `auth.json`의 이메일을 비교하여 문제를 진단하는 워크플로우를 지원합니다.

지원 대상~Claude Code✓Codex CLI~Cursor
npx skills add Hung2124/codex-multi-profile

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Codex 멀티 프로필 (Windows)은(는) 무엇을 하나요?

Windows에서 Codex Desktop을 사용할 때 여러 ChatGPT 로그인이 필요하고, 하나의 공유 워크스페이스를 유지하려는 경우를 위한 비공식 도우미입니다.

기본: ShareLive + AuthSwap

구성 요소위치
세션, 스킬, MCP, 메모리, 프로젝트항상 %USERPROFILE%\.codex
계정profiles\<이름>\auth.json, 실행 시 ~\.codex\auth.json으로 교체됨
종료 시감시자가 보조 인증 정보를 저장한 후, 메인 auth.json을 복원
Electron UI--user-data-dir=profiles\<이름> (프로필 루트, 중첩된 electron\ 폴더 아님)

메인 스토어 Codex와 프로필을 동시에 열지 마십시오.

AuthSwap을 사용하는 이유 (두 번째 CODEX_HOME이 아닌 이유)

데스크톱 앱-서버가 때때로 CODEX_HOME을 무시하고 ~\.codex\auth.json을 읽습니다. 두 번째 홈 디렉토리를 사용하면 메인 계정이 표시됩니다. AuthSwap은 앱이 실제로 읽는 경로에 보조 토큰을 배치합니다.

실행 규칙 (확인됨)

  1. WindowsApps에서 실행 파일을 실행하지 마십시오 (액세스 거부). 먼저 ChatGPT.exe를 복제하십시오.
  2. 진입점은 **ChatGPT.exe**입니다. Codex.exe는 종료 코드 1을 반환합니다.
  3. Get-AppxPackage.InstallLocation이 비어 있을 수 있습니다. 기존 로컬 복제본을 선호하십시오.
  4. **CODEX_ELECTRON_USER_DATA_PATH**와 --user-data-dir 모두 프로필 루트로 설정하십시오.
  5. Start-Process가 $env:CODEX_HOME을 상속한다고 가정하지 마십시오. set과 start를 사용하는 .cmd 파일을 작성하십시오.
  6. PowerShell 5.1 Set-Content -Encoding UTF8은 BOM을 씁니다. 이는 config.toml을 무효화할 수 있습니다. [IO.File]::WriteAllText(..., UTF8Encoding $false)를 사용하십시오.
  7. 영구적인 사용자 수준 CODEX_HOME을 설정하지 마십시오.
  8. auth.json을 다른 머신 간에 또는 git에 복사하지 마십시오.

경로

항목경로
설치 루트%LOCALAPPDATA%\CodexParallelDesktop
공유 모듈CodexMultiProfile.psm1
프로필 실행기Launch-CodexProfile.ps1
메인 복원Launch-CodexMain.ps1
관리자CodexProfile.ps1 (new, list, stop, shortcut, launch)
프로필...\profiles\<이름>\
복제본...\versions\<버전>\app\ChatGPT.exe
공유 홈%USERPROFILE%\.codex

명령어

$root = "$env:LOCALAPPDATA\CodexParallelDesktop"

# 권장 실행 (AuthSwap)
powershell -NoProfile -ExecutionPolicy Bypass -File "$root\Launch-CodexProfile.ps1" -Name codex1

# 메인 스토어 Codex 복원
powershell -NoProfile -ExecutionPolicy Bypass -File "$root\Launch-CodexMain.ps1"

# 관리자
powershell -NoProfile -ExecutionPolicy Bypass -File "$root\CodexProfile.ps1" -Action new -Name codex2
powershell -NoProfile -ExecutionPolicy Bypass -File "$root\CodexProfile.ps1" -Action list
powershell -NoProfile -ExecutionPolicy Bypass -File "$root\CodexProfile.ps1" -Action status
powershell -NoProfile -ExecutionPolicy Bypass -File "$root\CodexProfile.ps1" -Action verify
powershell -NoProfile -ExecutionPolicy Bypass -File "$root\CodexProfile.ps1" -Action stop -Name codex1

에이전트 워크플로우

  1. "계정 전환 / 내 데이터 유지" → Launch-CodexProfile.ps1을 통한 AuthSwap.
  2. "다른 프로필 생성" → -Action new, 그런 다음 Launch-CodexProfile.ps1으로 실행.
  3. UI에 잘못된 계정 표시 → 두 auth.json 파일의 이메일 비교; 실행 수정 (cmd 래퍼); 프로필 인증이 여전히 유효하면 사용자에게 다시 로그인하라고 말하지 않음.
  4. 액세스 거부 / 빈 경로 / 종료 코드 1 → ChatGPT.exe 복제, 절대 WindowsApps 사용 금지, 빈 InstallLocation 사용 금지.
  5. 스크립트 편집 후 CodexMultiProfile.psm1 및 실행기를 %LOCALAPPDATA%\CodexParallelDesktop 및 이 스킬의 scripts\에 복사. 실행기는 $PSScriptRoot에서 모듈을 가져옴.
  6. "설치되었는가 / 어떤 계정이 활성화되었는가?" → -Action status (이메일은 마스킹됨) 그런 다음 -Action verify.

손상된 프로필 인증

프로필이 실행 중인 동안 사용자가 Codex Main을 열면 복원 시 메인 토큰이 profiles\<이름>\auth.json에 기록될 수 있습니다.

스크립트에 이미 있는 보호 장치:

  • 감시자 / Launch-CodexMain은 활성 이메일이 auth.json.__main__과 다를 때만 프로필 인증을 저장함
  • auth.json.secondary.bak 유지
  • 프로필 인증이 없거나 메인과 같으면 → 부트스트랩 로그인 (활성 인증 지우기, 보조 로그인 강제)

하지 말아야 할 것

  • auth.json 복사 또는 커밋
  • 메인 + 프로필 ShareLive를 동시에 열기
  • Codex.exe 또는 WindowsApps 경로 실행
  • 명시적인 cmd/CODEX_HOME 없이 Start-Process 사용
  • Windows PowerShell 5.1에서 Set-Content -Encoding UTF8로 config.toml 작성

자세한 내용: docs/architecture.md, docs/troubleshooting.md.

관련 스킬