Skip to content

Instantly share code, notes, and snippets.

@AlbertoBarrago
Last active May 16, 2026 17:12
Show Gist options
  • Select an option

  • Save AlbertoBarrago/abd6d73b2b810c9b658ed760fc7f1215 to your computer and use it in GitHub Desktop.

Select an option

Save AlbertoBarrago/abd6d73b2b810c9b658ed760fc7f1215 to your computer and use it in GitHub Desktop.

Claude Code — Cheatsheet

CLI: flags poco noti

Flag Effetto
claude -p "prompt" Modalità non-interattiva (print): esegue e stampa, poi esce
claude -c Continua l'ultima sessione
claude --resume <id> Riprende una sessione specifica
claude --output-format json Output in JSON (utile per scripting)
claude --output-format stream-json Output JSON in streaming
claude --verbose Mostra il thinking e i tool call completi
echo "fix this" | claude Input via pipe — utile per automazioni
claude --model claude-opus-4-7 Sceglie il modello esplicitamente
claude --allowedTools "Bash,Read" Limita i tool disponibili per la sessione
claude --dangerously-skip-permissions Bypassa tutti i prompt di conferma (usare con cautela)

Slash commands integrati

Comando Uso
/clear Cancella il contesto della conversazione corrente
/compact [istruzioni] Comprime il contesto con un riassunto (si può guidare cosa mantenere)
/cost Mostra token usati e costo stimato della sessione
/config Apre le impostazioni interattive
/doctor Diagnostica problemi di installazione/configurazione
/init Genera automaticamente un CLAUDE.md analizzando il codebase
/memory Gestisce i file di memoria persistente
/review Review di un PR (integrazione GitHub)
/fast Toggle Fast Mode (Opus con output veloce)
/logout Disconnette dall'account Anthropic
/status Mostra modello attivo, sessione, costi

Shortcut da tastiera

Tasto Effetto
Shift+Enter Newline senza inviare (in Ghostty: nativo)
Ctrl+C Interrompe la risposta in corso
Ctrl+R Cerca nella cronologia dei prompt
↑ / ↓ Naviga la cronologia dei prompt

Prefisso ! nei prompt

Scrivere ! <comando> nel prompt esegue il comando shell e il suo output entra direttamente nel contesto della conversazione.

! gcloud auth login
! cat logs/error.log
! git log --oneline -20

Utile per comandi interattivi o output che altrimenti andrebbero incollati manualmente.

CLAUDE.md — istruzioni persistenti

  • Globale: ~/.claude/CLAUDE.md — si applica a tutte le sessioni
  • Di progetto: ./CLAUDE.md — si applica nella directory corrente
  • Sottodirectory: ogni cartella può avere il suo CLAUDE.md
  • Viene caricato automaticamente all'avvio — nessuna azione richiesta
  • Usarlo per: convenzioni di codice, comandi di build/test, architettura, note per Claude

Settings files

~/.claude/settings.json          # settings globali utente
.claude/settings.json            # settings di progetto (committare nel repo)
.claude/settings.local.json      # settings locali di progetto (gitignore)

Struttura per i permessi:

{
  "permissions": {
    "allow": ["Bash(npm:*)", "Bash(git:*)"],
    "deny": ["Bash(rm -rf:*)"]
  }
}

Hooks — automazioni su eventi

Configurati in settings.json, sono comandi shell che si eseguono su eventi specifici:

{
  "hooks": {
    "PreToolUse": [{ "matcher": "Bash", "hooks": [{ "type": "command", "command": "echo 'eseguendo bash'" }] }],
    "PostToolUse": [...],
    "Stop": [{ "hooks": [{ "type": "command", "command": "terminal-notifier -message 'Claude ha finito'" }] }],
    "Notification": [...],
    "SubagentStop": [...]
  }
}

Casi d'uso pratici:

  • Notifica quando Claude finisce un task lungo
  • Formattare automaticamente i file dopo una modifica
  • Log di audit di ogni comando bash eseguito
  • Bloccare operazioni su file sensibili

Memoria persistente

Sistema di file in ~/.claude/projects/<path>/memory/:

  • MEMORY.md — indice di tutti i ricordi (max 200 righe, sempre caricato)
  • File singoli con frontmatter type: user|feedback|project|reference
  • Si accumula tra sessioni diverse — Claude ricorda preferenze e contesto

Plan Mode

Attivato con /plan o tramite il tool EnterPlanMode. Claude ragiona e presenta un piano senza eseguire nessuna azione. Serve a:

  • Allinearsi sull'approccio prima di toccare il codice
  • Raccogliere feedback su architettura
  • Evitare sorprese su task complessi

Il piano viene confermato con ExitPlanMode.

Worktrees — isolamento git

Il tool EnterWorktree crea un worktree git temporaneo per lavorare su una copia isolata del repo. Utile per:

  • Subagent che lavorano in parallelo su branch diversi
  • Esperimenti che non devono sporcare il working tree
  • Il worktree viene eliminato automaticamente se l'agent non fa modifiche

Subagent e lavoro parallelo

Tipi di agent disponibili:

  • claude — general purpose
  • Explore — ricerca veloce in codebase (read-only)
  • Plan — architetto, solo pianificazione
  • claude-code-guide — domande su Claude Code / API Anthropic
  • vercel:* — agenti specializzati Vercel

Pattern parallelo: mandare più tool call Agent nello stesso messaggio le esegue in parallelo — ideale per ricerche indipendenti o task separati.

Modalità headless / CI

# Esecuzione automatica in CI senza prompt
claude --print --dangerously-skip-permissions "run tests and report"

# Con output JSON per parsing
claude -p "check for security issues" --output-format json

# Come parte di una pipe
git diff HEAD~1 | claude -p "review this diff" 

MCP — Model Context Protocol

Aggiunge tool esterni a Claude Code:

// .claude/settings.json
{
  "mcpServers": {
    "my-server": {
      "command": "npx",
      "args": ["-y", "@myorg/mcp-server"],
      "env": { "API_KEY": "..." }
    }
  }
}

Verifica i server attivi con /mcp nel prompt.

Tecniche di prompting efficaci

  • Dare contesto del perché, non solo del cosa — Claude prende decisioni migliori
  • Specificare file e righe (file.ts:42) per ancorare il lavoro
  • ! cat file per portare output freschi nel contesto invece di chiedere a Claude di leggere
  • Per sessioni lunghe: usare /compact con istruzioni su cosa mantenere
  • Per task complessi: chiedere prima un piano, poi approvarlo, poi eseguire
  • Su errori ricorrenti: scrivere la correzione in CLAUDE.md così non serve ripeterla
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment