Files
agent-wiki-ui/docs/adr/0002-motori-cli-claude-codex-antigravity.md
T
davideandClaude Sonnet 5.5 007cc9bdfa Documentazione: guida all'installazione di Claude Code e Codex
Aggiunge docs/INSTALL.md con requisiti, comandi per Linux, WSL e Windows,
accesso, verifica e risoluzione dei problemi di PATH. Insiste sul fatto che
il motore va installato nello stesso ambiente dell'app. Collegata da indice
dei doc, README e ADR-0002.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-15 11:31:00 +02:00

3.9 KiB

ADR-0002 — Più motori CLI (Claude Code, Codex, Antigravity) su Windows e Linux

  • Stato: Proposta
  • Data: 2026-10-15
  • Collegato a: ADR-0001 (GUI e piattaforme)

Contesto

L'app lancia solo claude -p. Si vuole usare dalla stessa chat anche OpenAI Codex CLI e Antigravity CLI (agy), così come claude già installati da terminale dall'utente, su Windows e Linux. L'app non li installa e non gestisce login: sono programmi esterni, autenticati a parte.

Criteri di decisione

  1. Aggiungere un motore costa una definizione dichiarativa, non nuova logica sparsa.
  2. Funziona uguale su Windows e Linux: i motori si trovano nel PATH come da terminale.
  3. Un solo punto di avvio processo (cartella dell'exe, stdin chiuso, ArgumentList), condiviso da CLI e GUI.
  4. Nessuna scorciatoia che disattivi i controlli di permesso senza una scelta esplicita dell'utente.

Decisione

  • Astrazione "motore" in C#. Ogni motore descrive: nome e eseguibile, argomenti per il primo messaggio e per la ripresa, elenco modelli, supporto effort, modo per ottenere l'id di sessione. RunClaude diventa RunEngine(engine, …).
  • Rilevamento dei motori cercando l'eseguibile nel PATH (su Windows anche le estensioni di PATHEXT). I motori assenti sono disabilitati nelle Impostazioni, con messaggio chiaro; la CLI esce con 127 come oggi.
  • Una chat = un motore. Il file JSON della chat memorizza il motore; il contesto di sessione non passa da un motore all'altro, quindi cambiare motore apre una nuova chat.
  • Impostazioni nella GUI: motore attivo, modello, effort (solo se supportato), persistite su disco accanto alla cronologia. La CLI ottiene --engine.
  • Permessi: di default sola lettura / nessun bypass dei controlli; concedere di più è un'opzione esplicita.
  • Output: ogni motore ha un parser che lo normalizza in testo markdown prima del rendering.

Comandi dei motori

Da verificare con --help delle versioni installate: derivano da documentazione e ricerche, non da prove su questo PC, dove codex e agy non sono installati.

Claude Code Codex CLI Antigravity CLI
Comando claude -p <prompt> codex exec <prompt> agy -p <prompt>
Continuare --session-id <guid> poi --resume <guid> codex exec resume <id> <prompt> da verificare
Modello --model -m / --model da verificare
Effort --effort via --config (da verificare) non noto

Conseguenze

Positive: un solo flusso di avvio; nuovi motori aggiungibili con una definizione; elimina la duplicazione CLI/GUI. Negative: i flag delle CLI cambiano nel tempo e vanno mantenuti; le sessioni non si trasferiscono tra motori; più superficie da testare su due sistemi operativi.

Rischi e da verificare

  • Codex: l'id di sessione lo genera Codex e non l'app; va letto dall'output (probabilmente con output JSON) per riprendere la chat.
  • Antigravity: segnalato un blocco di agy -p da sottoprocesso con output rediretto su Windows (issue #318). Provare con --print-timeout e prevedere un messaggio d'errore. I flag vanno messi prima di -p. Da provare anche su Linux.
  • Forma dell'eseguibile: claude è un .exe nativo avviabile direttamente; Codex e Antigravity, se installati con un gestore di pacchetti (es. npm), su Windows possono essere script .cmd che richiedono cmd.exe /c. Su Linux sono normali eseguibili o script con shebang. Verificare e gestire per motore.
  • Autenticazione: ogni CLI deve essere già autenticata; l'app mostra l'errore del motore senza gestire login.
  • Formato dell'output (testo o JSON) e normalizzazione per ciascun motore.
  • Mappatura effort e modelli per motore, con elenco modelli aggiornabile.

Riferimenti