Uso due account ChatGPT: uno personale e uno di lavoro. Sullo stesso PC volevo una configurazione molto semplice: ChatGPT Desktop con l’account personale e Codex dentro VS Code con l’account di lavoro.
ChatGPT Desktop → account personale VS Code + Codex → account di lavoro
Sembrava banale. In pratica ho scoperto che, nel mio ambiente Windows, separare i due login richiedeva anche separare lo stato locale usato da Codex. La soluzione che ha funzionato per me è stata usare un CODEX_HOME dedicato per l’istanza di VS Code che uso per lavoro.
Nota: io uso Visual Studio Code Insiders, quindi negli esempi principali trovi
Code - Insiders.exe. Più avanti trovi anche i comandi pronti per VS Code stabile.
Qual era il problema con i due account?
Avevo fatto logout da ChatGPT Desktop e login con il mio account personale. Poi ho aperto VS Code e Codex risultava autenticato con lo stesso account.
Controllando lo stato locale di Codex ho trovato la directory predefinita del mio utente:
C:\Users\Matteo\.codex
Dentro, tra gli altri file, era presente auth.json. La documentazione di Codex descrive auth.json come uno dei meccanismi usati per conservare localmente le credenziali quando lo storage è impostato su file. Nel mio caso il risultato pratico era che i due utilizzi non rimanevano separati come volevo.
La presenza e il nome esatto dei file interni possono cambiare tra versioni e configurazioni. Quello che mi interessava non era modificare auth.json, ma dare a Codex un ambiente locale distinto.
Come separare Codex con CODEX_HOME?
Codex permette di usare la variabile d’ambiente CODEX_HOME per cambiare la directory in cui cerca il proprio stato e la propria configurazione. È esattamente ciò che serve per creare un ambiente Codex separato.
Ho lasciato l’ambiente personale nella posizione predefinita:
C:\Users\Matteo\.codex
Per il lavoro ne ho creato uno dedicato:
C:\Users\Matteo\.codex-lavoro
Come avviare VS Code con un CODEX_HOME diverso?
In PowerShell imposto la variabile, creo la directory se serve e avvio VS Code dalla stessa shell.
$env:CODEX_HOME="$env:USERPROFILE\.codex-lavoro"
New-Item -ItemType Directory -Force -Path $env:CODEX_HOME | Out-Null
& "$env:LOCALAPPDATA\Programs\Microsoft VS Code Insiders\Code - Insiders.exe"
A quel punto Codex parte usando il nuovo ambiente e può richiedere una nuova autenticazione. Io ho effettuato il login con l’account di lavoro.
E se uso VS Code stabile?
Il principio è identico. In una normale installazione utente:
$env:CODEX_HOME="$env:USERPROFILE\.codex-lavoro"
New-Item -ItemType Directory -Force -Path $env:CODEX_HOME | Out-Null
& "$env:LOCALAPPDATA\Programs\Microsoft VS Code\Code.exe"
Se VS Code è installato altrove basta sostituire il percorso dell’eseguibile.
Come verificare che VS Code stia usando il CODEX_HOME corretto?
Nel terminale integrato controllo:
$env:CODEX_HOME
Nel mio caso restituisce:
C:\Users\Matteo\.codex-lavoro
Dopo l’utilizzo, nella mia installazione sono comparsi elementi come auth.json, config.toml, skills\, plugins\, cache\, .sandbox\ e state_5.sqlite. Sono dettagli osservati nella mia versione, non un’interfaccia stabile da cui dipendere.
Perché bisogna fare attenzione alle istanze di VS Code già aperte?
Se VS Code è già in esecuzione, una nuova apertura può riutilizzare il processo esistente. Per evitare dubbi, prima della modalità lavoro chiudo tutte le istanze.
Con VS Code Insiders:
Stop-Process -Name "Code - Insiders" -Force -ErrorAction SilentlyContinue
$env:CODEX_HOME="$env:USERPROFILE\.codex-lavoro"
& "$env:LOCALAPPDATA\Programs\Microsoft VS Code Insiders\Code - Insiders.exe"
Con VS Code stabile:
Stop-Process -Name "Code" -Force -ErrorAction SilentlyContinue
Come creare un launcher per l’account Codex di lavoro?
Una volta verificato che tutto funziona, ho creato un piccolo launcher .cmd.
VS Code Insiders
File: VS Code Lavoro - Insiders.cmd
@echo off
set "CODEX_HOME=%USERPROFILE%\.codex-lavoro"
if not exist "%CODEX_HOME%" mkdir "%CODEX_HOME%"
start "" "%LOCALAPPDATA%\Programs\Microsoft VS Code Insiders\Code - Insiders.exe"
VS Code stabile
File: VS Code Lavoro.cmd
@echo off
set "CODEX_HOME=%USERPROFILE%\.codex-lavoro"
if not exist "%CODEX_HOME%" mkdir "%CODEX_HOME%"
start "" "%LOCALAPPDATA%\Programs\Microsoft VS Code\Code.exe"
Cosa succede se apro VS Code normalmente?
Se apro VS Code senza impostare CODEX_HOME, Codex torna all’ambiente predefinito. In pratica posso avere due modalità:
VS Code normale → ambiente Codex personale VS Code Lavoro.cmd → ambiente Codex di lavoro
Cosa succede alla prima configurazione Windows di Codex?
Al primo avvio con il nuovo CODEX_HOME, nella mia installazione Codex ha mostrato una richiesta per completare la configurazione Windows. Il tentativo con privilegi amministrativi non è andato a buon fine e ho continuato senza accesso amministratore.
Codex ha comunque inizializzato la sandbox e ha funzionato normalmente. La verifica più utile è stata pratica: creare, modificare e cancellare un file nel workspace.
Cosa non conviene copiare tra due CODEX_HOME?
Ho evitato di copiare tutta la vecchia .codex nella nuova directory. Nella mia installazione ci sono file di autenticazione e stato locale come auth.json, database SQLite, identificativi d’installazione e stato globale.
Se l’obiettivo è separare gli ambienti, copiare indiscriminatamente quello stato va nella direzione opposta. Ho lasciato inizializzare il nuovo ambiente da zero e ho effettuato una nuova autenticazione.
Qual è la configurazione finale?
C:\Users\Matteo\
│
├── .codex\
│ └── ambiente personale
│
└── .codex-lavoro\
└── ambiente di lavoro
I launcher decidono semplicemente quale ambiente Codex usare. Non devo spostare file di autenticazione a mano né modificare lo stato interno.
Script rapido per verificare l’ambiente
Write-Host "CODEX_HOME:"
Write-Host $env:CODEX_HOME
Write-Host "`nAuth presente:"
Test-Path "$env:CODEX_HOME\auth.json"
Write-Host "`nContenuto CODEX_HOME:"
Get-ChildItem $env:CODEX_HOME -Force |
Select-Object Name, LastWriteTime
Se il launcher di lavoro è stato usato correttamente, la prima parte mostra C:\Users\Matteo\.codex-lavoro.
Perché questa separazione è utile?
Il caso tipico è chi usa un account ChatGPT personale e uno aziendale sullo stesso computer. Lo stesso principio può essere usato per mantenere ambienti distinti, per esempio .codex-personale, .codex-lavoro, .codex-cliente-a e .codex-cliente-b.
Il vantaggio, almeno per il mio modo di lavorare, è semplice: non devo continuare a fare logout e login quando passo da un contesto all’altro.
È un principio di separazione che uso anche in altri workflow basati sull’AI. Ne ho parlato nell’articolo Dal caos all’ordine: la mia esperienza nel refactoring di un sito Prestashop 1.6 verso la versione 9, dove Codex entra nel processo insieme a ChatGPT e Copilot.
In sintesi
Per usare due account Codex diversi sullo stesso PC Windows non ho duplicato VS Code e non ho spostato manualmente i file di autenticazione. Ho separato gli ambienti tramite CODEX_HOME e avvio la modalità di lavoro con un launcher dedicato.
ChatGPT Desktop / ambiente predefinito → personale VS Code avviato con CODEX_HOME=.codex-lavoro → lavoro
È una soluzione piccola, ma mi permette di mantenere distinti due contesti che uso ogni giorno senza cambiare continuamente account.