
Apertura compatta e ad alto livello: chi è il docente (fisico, Ph.D. su modelli AI per la visione, Innovation Manager), la tesi del corso in una frase (dall'AI che suggerisce codice all'agente che lo scrive, lo esegue e lo verifica) e il modello mentale del collaboratore a cui si affida un compito, contrapposto all'oracolo a cui si fanno domande. Panoramica dei risultati concreti che lo studente costruirà: un progetto generato da un prompt, due agenti in parallelo su worktree, una skill personale, un server MCP in Python, un plugin, la code review automatica su GitHub e un loop headless che itera finché i test non passano. Metodo (teoria essenziale, pratiche con materiali scaricabili), destinatari, prerequisiti e mappa delle quattro sezioni. Nessun dettaglio tecnico anticipato.
Cos'è OpenAI Codex oggi: il motore agentico di ChatGPT per il codice, con le sue superfici che condividono modelli e configurazione (CLI open source, app desktop ChatGPT con spazio Codex dedicato, estensione IDE, Codex cloud collegato a GitHub, code review nelle pull request). Nota di orientamento sulla documentazione ufficiale migrata su learn.chatgpt.com. I modelli della famiglia GPT-5.6 (Sol flagship, Terra bilanciato, Luna veloce ed economico), il cambio con /model, i piani ChatGPT e l'alternativa API key. Il cuore della lezione: il ciclo agentico in quattro momenti (raccogliere contesto, pianificare, agire con gli strumenti dentro una sandbox, verificare) e la conseguenza pratica sui prompt: descrivere obiettivo e criteri di completamento, non i singoli passi. Chiusura con il ponte per chi arriva da Claude Code: tabella di equivalenze concettuali (CLAUDE.md e AGENTS.md, permission mode e sandbox più approvazioni, skill e MCP condivisi come standard).
Walkthrough completo su Windows: installazione della CLI con l'installer nativo PowerShell (irm https://chatgpt.com/codex/install.ps1 | iex), alternative npm install -g @openai/codex e Homebrew su macOS, aggiornamento con codex update, requisiti (Windows 10 build 1809+, winget; WSL2 come alternativa). Primo avvio con il comando codex dentro una cartella di progetto, login con l'account ChatGPT via OAuth nel browser e alternativa API key per la fatturazione a consumo; dove vivono le credenziali (~/.codex/auth.json). Primo prompt di ricognizione sul progetto, verifica dello stato con /status (modello, permessi, token) e cambio modello con /model. Errori tipici mostrati dal vivo: execution policy di PowerShell, npm senza Node, lancio fuori da un repo Git. Materiale scaricabile: cheat sheet con tutti i comandi di installazione e login.
Da un singolo prompt ben scritto a un progetto funzionante: un generatore di password in un solo file HTML con opzioni di lunghezza e caratteri, pulsante copia e indicatore di robustezza. La lezione insegna l'anatomia del prompt efficace (obiettivo, contesto, vincoli, criteri di completamento) e il flusso di lavoro con l'agente: il piano proposto da Codex, le azioni sui file, le richieste di approvazione quando esce dal perimetro. Strumenti della TUI mostrati sul campo: @ per citare i file nel prompt, ! per eseguire comandi shell diretti, /diff per rivedere le modifiche in stile Git, una richiesta di modifica incrementale, /review per far rileggere a Codex il proprio lavoro con occhio critico, e /init che genera AGENTS.md dal progetto. Chiusura con il commit dal messaggio generato da Codex. Materiali: il progetto finale completo e i prompt usati nella demo.
La lezione di sicurezza più importante del corso: i due livelli indipendenti che governano l'autonomia di Codex. La sandbox decide cosa l'agente può tecnicamente toccare (read-only, workspace-write con rete spenta di default e percorsi protetti, danger-full-access) ed è imposta dal sistema operativo: Seatbelt su macOS, bubblewrap su Linux e WSL2, sandbox nativa dedicata su Windows nelle varianti elevated e unelevated. La approval policy decide quando l'agente si ferma a chiedere (untrusted, on-request, never). Le tre modalità dell'interfaccia che le combinano: Ask for approval, Approve for me, Full access; il cambio al volo con /permissions e la regola d'aula (progetti sconosciuti in read-only). La configurazione persistente in config.toml con la catena delle precedenze (progetto, profilo, utente) e AGENTS.md a strati: file globale, file di repo, file nelle sottocartelle, concatenati con precedenza ai più vicini; generazione con /init e parallelo diretto con CLAUDE.md.
L'ingresso nella base operativa del resto del corso: installazione dell'app desktop ChatGPT su Windows, accesso con lo stesso account della CLI e apertura della cartella di progetto nello spazio Codex. Giro guidato dell'interfaccia: barra laterale con progetti e chat (pin, rinomina, archivia, ricerca), vista Activity con le chat che attendono una decisione, composer con il selettore dell'ambiente di esecuzione (Local, Worktree, Cloud), terminale integrato, pannello diff Git con staging per blocco e commenti inline assegnabili a Codex, menu comandi e impostazioni. Demo minima di lavoro in una chat Local con la stessa richiesta vista in CLI, per fissare il concetto chiave: stesso motore e stessa configurazione (config.toml, AGENTS.md, server MCP condivisi), superficie moltiplicata. Materiale: mappa dell'interfaccia con le scorciatoie.
Dentro la barra laterale delle impostazioni, gruppo Programmazione. Parte Git: la consegna delle review (inline nella chat o in una chat separata), le convenzioni di naming dei branch, il controllo del force push e i prompt personalizzati con cui Codex genera messaggi di commit e descrizioni delle pull request, con la demo del prompt in italiano e il confronto prima e dopo. Parte Ambienti: i local environment dell'app, con un setup script che gira automaticamente alla creazione di ogni nuovo worktree (installazione dipendenze, con varianti per piattaforma) e le Actions, comandi frequenti con icona nella top bar eseguiti nel terminale integrato (avvio test, avvio server). La configurazione vive nella cartella .codex del progetto, si committa e viene ereditata dal team; i progetti non fidati la ignorano. Materiale: cartella .codex di esempio completa.
Il problema dei due agenti che si pestano i piedi sulla stessa cartella e la soluzione dell'app: i worktree, copie di lavoro isolate della stessa repository, una per chat. Demo su una repo Python con test: prima chat in modalità Worktree con la scelta dell'ambiente e del branch di base (nasce in detached HEAD con il setup script già eseguito), task A in corso; seconda chat Worktree in parallelo con il task B; la vista Activity per seguire entrambe. Chiusura dei due percorsi: Create branch here per promuovere il lavoro a branch permanente da committare e pushare, Hand off per spostare chat e stato Git sul checkout locale. Le impostazioni Worktree: cartella radice, retention automatica dei worktree gestiti con snapshot ripristinabile, worktree permanenti; il file .worktreeinclude per portare nei worktree i file ignorati da Git come i .env. Errori tipici: progetto non Git, aspettarsi lo stesso branch attivo su due worktree.
Gli hook come regole deterministiche agganciate agli eventi del ciclo agentico: non chiedi al modello di ricordarsi una regola, la imponi dall'esterno. Costruzione dal vivo di un hook PreToolUse di sicurezza: il file hooks.json (a livello utente in ~/.codex o di progetto in .codex), lo script guard che legge il JSON dell'evento da stdin e blocca i comandi distruttivi con l'exit code dedicato o con la decisione esplicita di negare il permesso, e la versione cross-platform con il campo command per bash e commandWindows per PowerShell. Il modello di trust: l'hook non gira finché non viene rivisto e approvato con /hooks, e l'approvazione è legata all'hash della definizione, quindi ogni modifica la fa decadere. Panoramica degli eventi disponibili (SessionStart e SessionEnd, UserPromptSubmit, PreToolUse e PostToolUse, PermissionRequest, PreCompact e PostCompact, SubagentStart e SubagentStop, Stop) e casi d'uso: log, blocco di segreti nei prompt, iniezione di contesto. Materiali: hooks.json e i due script guard pronti da copiare.
La sezione Connessioni delle impostazioni e il controllo remoto del computer: pairing del telefono con il codice QR, e dal telefono la vista delle chat del progetto, il lancio di un task, la notifica della richiesta di permesso con l'approvazione a distanza e la lettura del risultato, mentre l'esecuzione resta sul computer con sandbox e approvazioni intatte. Il modello mentale corretto: non è Codex sul telefono, è un telecomando sicuro del Codex che gira sul PC. Cenno agli host SSH per il controllo di macchine remote e ai dispositivi collegati. Cautele oneste: il computer deve restare acceso con l'app in esecuzione, e nei workspace aziendali la funzione può richiedere l'abilitazione dell'amministratore. Demo interamente dal vivo, senza materiali scaricabili.
La lezione-bussola della sezione: tre meccanismi complementari, tre domande diverse. Le skills per insegnare a Codex un workflow ripetibile: una cartella con SKILL.md (frontmatter con nome e descrizione più istruzioni in markdown), la scoperta automatica con progressive disclosure (all'avvio solo nome e descrizione, il corpo quando serve), l'invocazione esplicita o implicita, lo standard aperto Agent Skills condiviso con altri agenti. I server MCP per dare a Codex strumenti e dati che non ha: il Model Context Protocol, i trasporti stdio e HTTP, la configurazione condivisa tra CLI, app e IDE. I plugin per distribuire tutto in un pacchetto installabile: skills, server MCP, hook e altri componenti sotto un manifest unico, con marketplace e directory ufficiale. La nota storica che evita confusione con i tutorial vecchi: i custom prompts sono deprecati in favore delle skills. Chiusura con la scala di decisione: regola stabile in AGENTS.md, workflow ripetibile in una skill, capacità nuova in un server MCP, distribuzione in un plugin.
Demo nell'app desktop ChatGPT (spazio Codex), senza Git e senza skill a livello utente. Si apre la cartella di lavoro come progetto, si copia scheda-progetto in .agents/skills e descrizione.md in radice, si invoca con @scheda-progetto e si mostra il trigger implicito (prepara la scheda del progetto). Cenni a skill-creator e skill-installer, struttura estesa (agents/openai.yaml) e disabilitazione da config.toml. Errori tipici: description generica, progetto sbagliato nell'app, nome cartella diverso dal name. Materiale: skill completa, descrizione.md e istruzioni.
Due server MCP collegati dall'app desktop ChatGPT: openaiDeveloperDocs via HTTP e Context7 via npx/stdio. Demo in chat Local con tool della doc OpenAI e confronto con/senza Context7 (documentazione aggiornata vs knowledge cutoff). Ciclo di vita dal pannello MCP, config.toml condivisa con CLI/IDE e manopole di sicurezza (enabled, enabled_tools, approval). Casi limite: Node per npx, primo avvio stdio lento. Materiale: cheat sheet app+CLI e config_esempio.toml.
Da consumatore a produttore di tool. Server MCP minimale con FastMCP in Python (tool totale_vendite su CSV locale), test con MCP Inspector, collegamento dall'app desktop (pannello MCP, stdio con percorso assoluto; CLI equivalente opzionale) e demo in chat Local. Cautele: permessi utente, niente credenziali. Cenno a codex mcp-server. Materiali: server.py, CSV, requirements, istruzioni.
Ricomposizione app-first: installazione del plugin Browser dalla directory nell'app, creazione di mio-toolkit (manifest, skill scheda-progetto, hook di guardia), marketplace locale in .agents/plugins/marketplace.json e verifica in chat (@scheda-progetto + approvazione hook). Install via CLI (marketplace add + plugin add) o prompt in chat. Cenni a git/npm, Share, plugin-creator, MCP opzionale nel plugin. Caso limite: niente plugin nell'IDE. Materiali: mio-toolkit, marketplace e prompt_installa_plugin.
Come fa un agente a verificare il frontend che ha appena scritto: i tre livelli di Codex. Il browser integrato dell'app come vista condivisa: dev server avviato nel terminale integrato, apertura con la scorciatoia o con la menzione @Browser, e il prompt chiave su una pagina demo con un bug CSS: individua il problema, correggi e verifica tu stesso con screenshot prima e dopo, con Codex che clicca, ridimensiona e itera. Il debug profondo con l'accesso CDP dalle impostazioni Browser (console, rete, DOM). Computer Use per le interfacce grafiche del sistema, installato come plugin, con la gerarchia raccomandata dalla doc: per le web app locali prima il browser integrato. La Chrome extension che pilota il Chrome dell'utente con le sessioni autenticate, con conferma sito per sito. Il confine da fissare: browser e Computer Use vivono nell'app; nella CLI il pattern equivalente è Playwright via MCP più gli screenshot come input. Sicurezza: il contenuto web è contesto non fidato, il profilo del browser integrato è separato per design. Materiale: la pagina demo con il bug.
Oltre il computer locale, in due parti. Parte cloud: connessione di GitHub su chatgpt.com/codex, creazione dell'environment (immagine universale, setup script, variabili e secret, e la scelta consapevole sull'accesso internet della fase agente, spento di default con l'esempio di prompt injection della doc); lancio del task sul repo demo con bug piantato, monitoraggio, revisione di summary e diff e apertura della pull request; dal terminale codex cloud, codex cloud exec con i tentativi multipli e codex apply per riportare il diff in locale. Parte review: attivazione della code review sul repo dalle impostazioni Codex, la mention @codex review su una pull request con la review nativa concentrata sui problemi gravi, il follow-up agentico @codex con l'istruzione di correggere che pusha il fix, il toggle delle review automatiche su ogni PR e la personalizzazione con la sezione Code Review Rules in AGENTS.md. Cenni: security review, ingressi da Slack e Linear, delega dall'IDE. Materiali: repo demo e guida alla configurazione dell'environment.
Tre gradini, in ordine: scheduled tasks nell'app; codex exec a mano (headless); loop headless sul progetto incluso quotes_bug/. Il loop di default è in dry-run (analisi senza scrivere i file); con -Apply scrive davvero fino al verde. Cinque comandamenti del loop. Niente CI/PR in questa lezione. Materiali: quotes_bug/, loop_headless.ps1/.sh, esempio_output_schema.json.
La chiusura in due movimenti. Il radar delle funzionalità da conoscere, una per slide: i subagenti lanciati in parallelo dentro una sessione e gli agenti custom con modello e permessi propri; il Goal mode per gli obiettivi long-running; il fast mode che scambia crediti per velocità; le memories opzionali tra sessioni; il Codex SDK in TypeScript e Python per integrare l'agente nei propri programmi e codex mcp-server che lo espone come tool ad altri agenti; Codex Security per l'application security; la sicurezza trasversale con la prompt injection come rischio principale e le difese già incontrate nel corso. Il gran finale per chi arriva da Claude Code: il comando /import che migra configurazione, istruzioni, skill, server MCP e hook. Riepilogo del toolkit costruito nel corso (regole, autonomia dosata, parallelismo, estensioni, verifica autonoma, scala, automazione) e i prossimi passi, con il changelog ufficiale come abitudine settimanale.
Corso pratico e aggiornato su OpenAI Codex, l'agente AI incluso nel tuo abbonamento ChatGPT: non un assistente che suggerisce righe di codice, ma un agente che riceve un obiettivo, legge il progetto, pianifica, esegue, verifica il risultato e ti consegna il lavoro finito da approvare.
Non serve essere programmatori: ogni pratica è guidata passo passo, i materiali scaricabili contengono i progetti completi pronti da usare, e chi programma trova comunque tutta la profondità che cerca.
Si parte dal modello mentale e dalla riga di comando: installazione su Windows, login con l'account ChatGPT, il primo progetto generato da un singolo prompt e i due livelli di sicurezza che governano tutto (sandbox e approvazioni), insieme al file di regole che rende stabile il comportamento dell'agente.
Poi ci si sposta nell'app desktop ChatGPT, la base operativa del corso: chat parallele sullo stesso progetto, pannello diff, terminale integrato, worktree per far lavorare più agenti in parallelo, hook e controllo dal telefono.
La terza sezione è dedicata all'estensione di Codex: creare una skill richiamabile per nome, collegare server MCP esistenti, scriverne uno in Python facendoselo generare da Codex e impacchettare tutto in un plugin.
L'ultima sezione porta l'agente oltre il locale: il browser integrato e Computer Use per la verifica autonoma del frontend, Codex cloud con la code review automatica sulle pull request GitHub, e le automazioni con scheduled tasks, codex exec e i loop headless che iterano finché i test non passano.
Eventuali nomi, loghi e marchi citati appartengono ai rispettivi proprietari e sono usati a puro scopo didattico.