Per iniziare

Claude Code fornisce due modi principali di interazione:

  • Modalità interattiva: Esegui claude per avviare una sessione REPL
  • Modalità one-shot: Usa claude -p "query" per comandi rapidi
# Avvia la modalità interattiva
claude

# Avvia con una query iniziale
claude "spiega questo progetto"

# Esegui un singolo comando ed esci
claude -p "cosa fa questa funzione?"

# Elabora contenuto tramite pipe
cat logs.txt | claude -p "analizza questi errori"

Comandi CLI

ComandoDescrizioneEsempio
claudeAvvia REPL interattivoclaude
claude "query"Avvia REPL con prompt inizialeclaude "spiega questo progetto"
claude -p "query"Esegui query singola, poi esciclaude -p "spiega questa funzione"
cat file | claude -p "query"Elabora contenuto tramite pipecat logs.txt | claude -p "spiega"
claude -cContinua la conversazione più recenteclaude -c
claude -c -p "query"Continua in modalità stampaclaude -c -p "Controlla errori di tipo"
claude -r "<session-id>" "query"Riprendi sessione per IDclaude -r "abc123" "Completa questa PR"
claude configConfigura impostazioniclaude config set --global theme dark
claude updateAggiorna all’ultima versioneclaude update
claude mcpConfigura server Model Context ProtocolVedi sezione MCP nei tutorial

Flag CLI

Personalizza il comportamento di Claude Code con questi flag da riga di comando:

FlagDescrizioneEsempio
--print, -pStampa la risposta senza modalità interattiva (vedi documentazione dettagliata modalità stampa sotto)claude -p "query"
--output-formatSpecifica il formato di output per la modalità stampa (opzioni: text, json, stream-json)claude -p "query" --output-format json
--verboseAbilita logging dettagliato, mostra output completo turno per turno (utile per debug in modalità stampa e interattiva)claude --verbose
--max-turnsLimita il numero di turni agentici in modalità non interattivaclaude -p --max-turns 3 "query"
--permission-prompt-toolSpecifica uno strumento MCP per gestire i prompt di autorizzazione in modalità non interattivaclaude -p --permission-prompt-tool mcp_auth_tool "query"
--resumeRiprendi una sessione specifica per ID, o scegliendo in modalità interattivaclaude --resume abc123 "query"
--continueCarica la conversazione più recente nella directory correnteclaude --continue
--dangerously-skip-permissionsSalta i prompt di autorizzazione (usa con cautela)claude --dangerously-skip-permissions

Il flag --output-format json è particolarmente utile per scripting e automazione, permettendo di analizzare programmaticamente le risposte di Claude.

Dettagli modalità stampa

Il flag -p (o --print) abilita la modalità non interattiva in Claude Code, permettendo di utilizzare input e output tramite pipe per uso programmatico. Questo flag supporta vari formati di output per diversi casi d’uso.

Utilizzo base

# Modalità stampa base - mostra solo il testo della risposta finale
claude -p "Spiega come usare il flag print"

# Con input stdin
echo "Quanto fa 2+2?" | claude -p

# Riprendi una sessione in modalità stampa con un prompt
claude -p --resume <session-id> "Riprendi sessione con questo prompt"

Formati di output

L’opzione --output-format (usata con -p) supporta tre formati:

1. Output Testo (predefinito)
claude -p "Spiega i formati di output"
# Mostra solo il testo della risposta
2. Output JSON
claude -p --output-format json "Spiega come usare l'output JSON"

Produce un oggetto JSON strutturato:

{
  "cost_usd": 0.003,
  "duration_ms": 1234,
  "duration_api_ms": 800,
  "result": "Il testo della risposta qui...",
  "session_id": "abc123"
}
3. Output JSON in Streaming
claude -p --output-format stream-json "Crea uno script Python"

In modalità streaming, ogni messaggio viene mostrato come oggetto JSON separato mentre viene ricevuto:

  • Messaggi di utilizzo strumenti
  • Messaggi di testo dell’assistente
  • Messaggi di risultato strumenti
  • Messaggio di sistema finale con statistiche

Output dettagliato con modalità stampa

Quando si usa --verbose con -p, deve essere abbinato a --output-format json o --output-format stream-json:

claude -p --verbose --output-format json "Debug questo codice"

In modalità JSON dettagliata, l’output include la trascrizione completa della conversazione:

[
  {
    "role": "user",
    "content": "Debug questo codice"
  },
  {
    "role": "assistant",
    "content": "Ti aiuterò a fare il debug di quel codice..."
  },
  {
    "role": "system",
    "cost_usd": 0.003,
    "duration_ms": 1234,
    "duration_api_ms": 800,
    "result": "Il testo della risposta qui...",
    "session_id": "abc123"
  }
]

Opzioni aggiuntive per modalità stampa

Turni Massimi
claude -p --max-turns 3 "Correggi questo codice" < file.py

Limita il numero di turni agentici in modalità non interattiva.

Strumento Prompt Autorizzazioni
claude -p --permission-prompt-tool mcp_auth_tool "Crea un file"

Specifica uno strumento MCP per gestire i prompt di autorizzazione in modalità non interattiva.

Riprendi Sessione
claude -p --resume abc123 "Riprendi sessione con questo prompt"

Riprendi una sessione specifica per ID in modalità stampa con un nuovo prompt.

Continua Sessione

claude -c -p "Continua con questo prossimo compito"

Continua l’ultima conversazione in questo progetto.

Comandi slash

Controlla il comportamento di Claude durante una sessione interattiva:

ComandoScopo
/bugSegnala bug (invia la conversazione ad Anthropic)
/clearCancella cronologia conversazione
/compact [istruzioni]Compatta conversazione con istruzioni di focus opzionali
/configVisualizza/modifica configurazione
/costMostra statistiche utilizzo token
/doctorControlla lo stato dell’installazione di Claude Code
/helpOttieni aiuto sull’utilizzo
/initInizializza progetto con guida CLAUDE.md
/loginCambia account Anthropic
/logoutDisconnetti dal tuo account Anthropic
/memoryModifica file memoria CLAUDE.md
/pr_commentsVisualizza commenti pull request
/reviewRichiedi revisione codice
/statusVisualizza stati account e sistema
/terminal-setupInstalla binding tasto Shift+Enter per nuove righe (solo iTerm2 e VSCode)
/vimEntra in modalità vim per alternare modalità inserimento e comando

Scorciatoie speciali

Memoria rapida con #

Aggiungi memorie istantaneamente iniziando l’input con #:

# Usa sempre nomi di variabili descrittivi

Ti verrà chiesto di selezionare in quale file di memoria memorizzarlo.

Interruzioni di riga nel terminale

Inserisci comandi multilinea usando:

  • Escape rapido: Digita \ seguito da Invio
  • Scorciatoia da tastiera: Option+Invio (o Shift+Invio se configurato)

Per configurare Option+Invio nel tuo terminale:

Per Mac Terminal.app:

  1. Apri Impostazioni → Profili → Tastiera
  2. Seleziona “Usa Option come tasto Meta”

Per iTerm2 e terminale VSCode:

  1. Apri Impostazioni → Profili → Tasti
  2. Sotto Generale, imposta tasto Option sinistro/destro su “Esc+”

Suggerimento per utenti iTerm2 e VSCode: Esegui /terminal-setup in Claude Code per configurare automaticamente Shift+Invio come alternativa più intuitiva.

Vedi configurazione terminale nelle impostazioni per dettagli sulla configurazione.

Modalità Vim

Claude Code supporta un sottoinsieme di keybinding Vim che può essere abilitato con /vim o configurato via /config.

Il sottoinsieme supportato include:

  • Cambio modalità: Esc (a NORMAL), i/I, a/A, o/O (a INSERT)
  • Navigazione: h/j/k/l, w/e/b, 0/$/^, gg/G
  • Modifica: x, dw/de/db/dd/D, cw/ce/cb/cc/C, . (ripeti)