Communitygithub.com

Codex Multi-Profil (Windows)

Outil non officiel pour Codex Desktop sur Windows permettant de gérer plusieurs comptes ChatGPT tout en partageant un espace de travail unique.

Qu'est-ce que Codex Multi-Profil (Windows) ?

Codex Multi-Profil est une collection de scripts PowerShell conçue exclusivement pour Codex Desktop sur Windows. Elle permet d'utiliser plusieurs comptes ChatGPT sans avoir à dupliquer l'ensemble de l'espace de travail. Le mécanisme principal, appelé AuthSwap, échange le jeton d'authentification (`auth.json`) entre le compte principal et les profils secondaires au lancement, tandis que les sessions, compétences, MCP, souvenirs et projets restent tous dans le répertoire partagé `~/.codex`. Contrairement à une simple modification de `CODEX_HOME` (souvent ignorée par l'application), AuthSwap place directement le bon jeton là où Codex le lit. Les scripts gèrent le clonage de l'exécutable, le lancement des profils, la restauration de l'instance principale et la protection contre les écritures accidentelles de jetons (via un watcher et des sauvegardes). Cette solution est idéale pour les développeurs et utilisateurs avancés de Codex Desktop qui souhaitent séparer leurs contextes professionnels et personnels sans perdre leurs configurations ou compétences installées.

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait Codex Multi-Profil (Windows) ?

Assistant non officiel pour Codex Desktop sur Windows lorsque vous avez besoin de plusieurs connexions ChatGPT tout en conservant un espace de travail partagé.

Par défaut : Partage en direct + AuthSwap

ÉlémentEmplacement
Sessions, compétences, MCP, souvenirs, projetsToujours %USERPROFILE%\.codex
Compteprofiles\<nom>\auth.json, échangé avec ~\.codex\auth.json au lancement
À la fermetureUn observateur sauvegarde l'auth secondaire, puis restaure le fichier auth.json principal
Interface Electron--user-data-dir=profiles\<nom> (racine du profil, pas un dossier electron\ imbriqué)

N'ouvrez pas le Codex du Store et un profil en même temps.

Pourquoi AuthSwap (et pas un second CODEX_HOME)

Le serveur d'application de bureau ignore parfois CODEX_HOME et lit ~\.codex\auth.json de toute façon. Un second répertoire CODEX_HOME affiche alors le compte principal. AuthSwap place le jeton secondaire dans le chemin réellement lu par l'application.

Règles de lancement (vérifiées)

  1. N'exécutez pas d'exécutables depuis WindowsApps (accès refusé). Clonez d'abord ChatGPT.exe.
  2. Le point d'entrée est ChatGPT.exe. Codex.exe se termine avec le code 1.
  3. Get-AppxPackage.InstallLocation peut être vide – préférez un clone local existant.
  4. Définissez à la fois CODEX_ELECTRON_USER_DATA_PATH et --user-data-dir vers la racine du profil.
  5. Ne comptez pas sur Start-Process pour hériter de $env:CODEX_HOME. Écrivez un fichier .cmd avec set et start.
  6. Set-Content -Encoding UTF8 de PowerShell 5.1 écrit une BOM. Cela peut invalider config.toml. Utilisez [IO.File]::WriteAllText(..., UTF8Encoding $false).
  7. Ne définissez jamais une variable CODEX_HOME persistante au niveau utilisateur.
  8. Ne copiez jamais auth.json entre machines ou dans git.

Chemins

ÉlémentChemin
Répertoire d'installation%LOCALAPPDATA%\CodexParallelDesktop
Module partagéCodexMultiProfile.psm1
Lanceur de profilLaunch-CodexProfile.ps1
Restauration principaleLaunch-CodexMain.ps1
GestionnaireCodexProfile.ps1 (new, list, stop, shortcut, launch)
Profils...\profiles\<nom>\
Clone...\versions\<ver>\app\ChatGPT.exe
Répertoire partagé%USERPROFILE%\.codex

Commandes

$root = "$env:LOCALAPPDATA\CodexParallelDesktop"

# Lancement recommandé (AuthSwap)
powershell -NoProfile -ExecutionPolicy Bypass -File "$root\Launch-CodexProfile.ps1" -Name codex1

# Restaurer le Codex principal du Store
powershell -NoProfile -ExecutionPolicy Bypass -File "$root\Launch-CodexMain.ps1"

# Gestionnaire
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

Flux de travail pour l'agent

  1. « Changer de compte / conserver mes données » → AuthSwap via Launch-CodexProfile.ps1.
  2. « Créer un autre profil » → -Action new, puis lancer avec Launch-CodexProfile.ps1.
  3. Mauvais compte dans l'interface → comparer les e-mails dans les deux fichiers auth.json ; corriger le lancement (wrapper cmd) ; ne pas demander à l'utilisateur de se reconnecter si l'auth du profil est toujours valide.
  4. Accès refusé / chemin vide / code de sortie 1 → cloner ChatGPT.exe, jamais depuis WindowsApps, jamais InstallLocation vide.
  5. Après modification des scripts, copier CodexMultiProfile.psm1 et les lanceurs dans %LOCALAPPDATA%\CodexParallelDesktop et dans scripts\ de cette compétence. Les lanceurs importent le module depuis $PSScriptRoot.
  6. « Est-ce installé / quel compte est actif ? » → -Action status (les e-mails sont masqués) puis -Action verify.

Authentification de profil empoisonnée

Si l'utilisateur ouvre Codex Main pendant qu'un profil est toujours en cours d'exécution, la restauration peut écrire le jeton principal dans profiles\<nom>\auth.json.

Des gardes existent déjà dans les scripts :

  • L'observateur / Launch-CodexMain ne sauvegarde l'auth du profil que lorsque l'e-mail actif diffère de auth.json.__main__
  • Conserve auth.json.secondary.bak
  • Si l'auth du profil est manquante ou égale à l'auth principale → connexion bootstrap (effacement de l'auth active, forcer la connexion secondaire)

À ne pas faire

  • Copier ou commiter auth.json
  • Ouvrir Main + Profil ShareLive en même temps
  • Lancer Codex.exe ou un chemin WindowsApps
  • Start-Process sans cmd explicite / CODEX_HOME
  • Écrire config.toml avec Set-Content -Encoding UTF8 sur Windows PowerShell 5.1

Détails : docs/architecture.md, docs/troubleshooting.md.

Skills associés