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은 앱이 실제로 읽는 경로에 보조 토큰을 배치합니다.
실행 규칙 (확인됨)
WindowsApps에서 실행 파일을 실행하지 마십시오 (액세스 거부). 먼저ChatGPT.exe를 복제하십시오.- 진입점은 **
ChatGPT.exe**입니다.Codex.exe는 종료 코드 1을 반환합니다. Get-AppxPackage.InstallLocation이 비어 있을 수 있습니다. 기존 로컬 복제본을 선호하십시오.- **
CODEX_ELECTRON_USER_DATA_PATH**와--user-data-dir모두 프로필 루트로 설정하십시오. Start-Process가$env:CODEX_HOME을 상속한다고 가정하지 마십시오.set과start를 사용하는.cmd파일을 작성하십시오.- PowerShell 5.1
Set-Content -Encoding UTF8은 BOM을 씁니다. 이는config.toml을 무효화할 수 있습니다.[IO.File]::WriteAllText(..., UTF8Encoding $false)를 사용하십시오. - 영구적인 사용자 수준
CODEX_HOME을 설정하지 마십시오. 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
에이전트 워크플로우
- "계정 전환 / 내 데이터 유지" →
Launch-CodexProfile.ps1을 통한 AuthSwap. - "다른 프로필 생성" →
-Action new, 그런 다음Launch-CodexProfile.ps1으로 실행. - UI에 잘못된 계정 표시 → 두
auth.json파일의 이메일 비교; 실행 수정 (cmd 래퍼); 프로필 인증이 여전히 유효하면 사용자에게 다시 로그인하라고 말하지 않음. - 액세스 거부 / 빈 경로 / 종료 코드 1 →
ChatGPT.exe복제, 절대WindowsApps사용 금지, 빈InstallLocation사용 금지. - 스크립트 편집 후
CodexMultiProfile.psm1및 실행기를%LOCALAPPDATA%\CodexParallelDesktop및 이 스킬의scripts\에 복사. 실행기는$PSScriptRoot에서 모듈을 가져옴. - "설치되었는가 / 어떤 계정이 활성화되었는가?" →
-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.