Communitygithub.com

Codex マルチプロファイル (Windows)

Windows版Codex Desktopで複数のChatGPTアカウントを切り替えて使用できる非公式ツールです。作業スペースは共有しつつ、ログインアカウントだけを切り替えます。

Codex マルチプロファイル (Windows) とは?

このスキルは、Windows版 Codex Desktop において、単一の共有ワークスペース(セッション、スキル、MCP、メモリ、プロジェクト)を維持しながら、複数のChatGPTアカウントを安全に切り替えるための仕組みを提供します。デフォルトの方式は「AuthSwap」で、メインの認証情報(auth.json)をプロファイル固有の認証情報と入れ替えることで、Codex アプリが実際に読み込むパス上のトークンを変更します。アカウント切り替えは `Launch-CodexProfile.ps1` スクリプトで行い、元のメインアカウントへの復帰は `Launch-CodexMain.ps1` で行います。マネージャー `CodexProfile.ps1` はプロファイルの作成、一覧表示、停止、ショートカット作成、起動検証などをサポートしています。Windows PowerShell 5.1 の `Set-Content -Encoding UTF8` によるBOM問題や、`WindowsApps` パスからの実行禁止、`CODEX_HOME` 環境変数の永続的な設定禁止など、実運用上の重要な注意点も網羅されており、Agentワークフローでの自動実行を前提とした設計になっています。

対応~Claude Code✓Codex CLI~Cursor
npx skills add Hung2124/codex-multi-profile

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Codex マルチプロファイル (Windows) は何をしますか?

Windows上の Codex Desktop で、複数のChatGPTログインを使いながらも、1つの共有ワークスペースを維持したい場合の非公式ヘルパーです。

デフォルト: ShareLive + AuthSwap

要素配置場所
セッション、スキル、MCP、メモリ、プロジェクト常に %USERPROFILE%\.codex
アカウントprofiles\<name>\auth.json、起動時に ~\..codex\auth.json とスワップ
クローズ時ウォッチャーがセカンダリ認証情報を保存し、メインの auth.json を復元
Electron UI--user-data-dir=profiles\<name> (プロファイルルート、electron\ フォルダの入れ子ではない)

メインのストア版 Codex とプロファイル版を同時に開かないでください。

AuthSwap を採用した理由(2つ目の CODEX_HOME ではない理由)

Desktop アプリサーバーは CODEX_HOME を無視し、代わりに ~\..codex\auth.json を読み取ることがあります。そのため、2つ目のホームを設定してもメインアカウントが表示されてしまいます。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\<name>\
クローン...\versions\<ver>\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

Agent ワークフロー

  1. 「アカウントを切り替える / データを維持する」 → Launch-CodexProfile.ps1 で AuthSwap。
  2. 「別のプロファイルを作成する」 → -Action new で作成後、Launch-CodexProfile.ps1 で起動。
  3. UI に間違ったアカウントが表示される → 2つの auth.json ファイル内のメールアドレスを比較。起動用のコマンドラッパーを修正。プロファイル認証がまだ有効な場合、ユーザーに再ログインを促さない。
  4. アクセス拒否 / パスが空 / 終了コード1 → ChatGPT.exe をクローン。WindowsApps は使わず、空の InstallLocation も避ける。
  5. スクリプト編集後、CodexMultiProfile.psm1 と ランチャーを %LOCALAPPDATA%\CodexParallelDesktop およびこのスキルの scripts\ にコピー。ランチャーは $PSScriptRoot からモジュールをインポート。
  6. 「インストールされているか / どのアカウントがアクティブか?」 → -Action status(メールアドレスはマスクされる)その後 -Action verify。

毒されたプロファイル認証

プロファイルが実行中にユーザーが Codex メイン を開くと、復元処理によって メイン のトークンが profiles\<name>\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。

関連スキル