CLI de Claude Code — Reference pratique
Ce que tu vas apprendre
- Lancer Claude Code en mode interactif et en mode non-interactif (print)
- Choisir le bon modele et le bon niveau d’effort pour chaque tache
- Gerer les sessions : continuer, reprendre, dupliquer, nommer
- Controler les permissions via les flags CLI
- Obtenir une sortie JSON pour l’integration dans des scripts
- Utiliser les commandes de maintenance et de diagnostic
Prerequis
- Claude Code installe (
npm install -g @anthropic-ai/claude-code) - Une cle API Anthropic configuree (
ANTHROPIC_API_KEY) - Avoir lu le module Fonctionnalites avancees pour le contexte permissions et sessions
Le concept en 30 secondes
La CLI de Claude Code a deux modes de base : interactif (REPL, conversation multi-tours) et print (une requete, une reponse, exit). Tout le reste — modeles, permissions, sessions, formats de sortie — se controle par des flags et des sous-commandes. Pas besoin de memoriser 50 flags. Tu dois connaitre les 10 essentiels et savoir ou chercher les autres.
Etapes
1. Les commandes de base
Lancer une session interactive :
claude
Lancer avec un prompt initial :
claude "explique ce projet"
Mode print (non-interactif) :
claude -p "liste les fonctions de main.py"
Continuer la conversation la plus recente :
claude -c
Reprendre une session par nom :
claude -r "auth-refactor" "continue l'implementation"
Dupliquer une session pour experimenter :
claude -r "auth-refactor" --fork-session "essai OAuth a la place"
Traiter un fichier via pipe :
cat error.log | claude -p "analyse ces erreurs"
Note : En mode print, Claude repond puis quitte. C’est le mode a utiliser pour les scripts, la CI/CD, et le chainage avec d’autres outils (
grep,jq, etc.).
2. Choisir le modele et l’effort
Modeles disponibles (noms courts) :
| Alias | Modele reel | Usage |
|---|---|---|
opus |
claude-opus-4-8 | Taches complexes, architecture, debugging |
sonnet |
claude-sonnet-4-6 | Equilibre vitesse/capacite, usage quotidien |
haiku |
claude-haiku-4-5 | Taches rapides, formatage, requetes simples |
opusplan |
Opus planifie, Sonnet execute | Refactoring de grande envergure |
Commandes :
claude --model opus "revue architecturale"
claude --model haiku -p "formate ce JSON"
claude --model opusplan "concois et implemente la nouvelle API"
Niveaux d’effort (Opus 4.8, Opus 4.7, Opus 4.6, Sonnet 4.6) :
| Niveau | Symbole | Disponibilite |
|---|---|---|
| low | o | Opus 4.8/4.7/4.6, Sonnet 4.6 |
| medium | ◐ | Opus 4.8/4.7/4.6, Sonnet 4.6 |
| high | ● | Opus 4.8/4.7/4.6, Sonnet 4.6 (defaut sur Opus 4.8) |
| xhigh | Opus 4.8, Opus 4.7 (defaut sur Opus 4.7) | |
| max | Opus 4.8/4.7/4.6, Sonnet 4.6 (session uniquement) |
claude --effort high "revue complexe"
Variable d’environnement :
export CLAUDE_CODE_EFFORT_LEVEL=high
Astuce : Le mot-cle
ultrathinkdans un prompt active le raisonnement profond sans changer le niveau d’effort.
3. Controler les permissions en CLI
Modes de permission :
@diagram:cc-cli-permissions
Exemples :
# Audit securite en lecture seule
claude --permission-mode plan \
--tools "Read,Grep,Glob" \
"audite ce projet pour les vulnerabilites OWASP Top 10"
# Autoriser des commandes git specifiques sans prompt
claude --allowedTools "Bash(git status:*)" "Bash(git log:*)"
# Bloquer les operations dangereuses
claude --disallowedTools "Bash(rm -rf:*)" "Bash(git push --force:*)"
v2.1.132+ :
--permission-modeest respecte lors d’un resume de session (claude -c --permission-mode plan). Avant cette version, le flag etait ignore au resume.
4. Formats de sortie et integration scripts
Sortie JSON :
claude -p --output-format json "liste les endpoints API"
JSON avec schema valide :
claude -p --json-schema '{"type":"object","properties":{"bugs":{"type":"array"}}}' \
"trouve les bugs dans ce code"
Streaming JSON (pour traitement temps reel) :
claude -p --output-format stream-json \
--include-partial-messages \
"genere un rapport long"
Limiter les tours autonomes :
claude -p --max-turns 3 "refactorise ce module"
Budget maximal :
claude -p --max-budget-usd 2.00 "analyse ce code"
Chainage avec jq :
claude -p --output-format json "liste les issues" | jq -r '.issues[] | select(.severity=="high")'
5. Gerer les sessions
Nommer une session :
claude -n "feature-auth" "implemente l'authentification JWT"
Lister et gerer :
claude -c # continue la plus recente
claude -r "feature-auth" # reprend par nom
claude --resume abc123 --fork-session "essai alternatif"
Agent View (v2.1.139+, Research Preview) :
claude agents
Affiche toutes les sessions actives avec leur statut (running, blocked on you, done). Ctrl+T pour epingler une session. --json pour une sortie machine-readable.
Nettoyer l’etat d’un projet (v2.1.126+) :
claude project purge ~/work/repo --dry-run # preview
claude project purge ~/work/repo --yes # supprime sans confirmation
Supprime les transcripts, taches, logs, historique d’edition, et l’entree ~/.claude.json.
6. Personnaliser le system prompt
Remplacer le prompt par defaut :
claude --system-prompt "Tu es un expert securite. Focus sur les vulnerabilites."
Ajouter des instructions :
claude --append-system-prompt "Inclus toujours des tests unitaires avec les exemples de code"
Charger depuis un fichier (print mode uniquement) :
claude -p --system-prompt-file ./prompts/code-reviewer.txt "review main.py"
Attention :
--system-prompt-filene fonctionne qu’en print mode. En interactif, utilise--system-promptou--append-system-prompt.
7. Configuration MCP et plugins en CLI
Charger une config MCP :
claude --mcp-config ./github-mcp.json "liste les PR ouvertes"
Mode strict (uniquement les serveurs specifies) :
claude --strict-mcp-config --mcp-config ./production-mcp.json "deploie sur staging"
Charger un plugin local :
claude --plugin-dir ./mon-plugin
Depuis une archive (v2.1.128+) :
claude --plugin-dir ./mon-plugin.zip
Depuis une URL (v2.1.129+) :
claude --plugin-url https://example.com/mon-plugin-1.0.0.zip
8. Commandes de maintenance et diagnostic
| Commande | Action |
|---|---|
claude update |
Met a jour vers la derniere version |
claude install [version] |
Installe une version specifique (stable, latest, ou 2.1.131) |
claude auth login |
Connexion (supporte --email, --sso) |
claude auth logout |
Deconnexion |
claude auth status |
Statut auth (exit 0 si connecte, 1 sinon) |
claude mcp |
Configure les serveurs MCP |
claude mcp serve |
Lance Claude Code comme serveur MCP |
claude plugin list |
Liste les plugins installes |
claude plugin prune |
Nettoie les dependances orphelines |
claude ultrareview [target] |
Lance /ultrareview non-interactivement (exit 0/1) |
claude auto-mode defaults |
Affiche les regles auto mode par defaut en JSON |
claude remote-control |
Lance le serveur Remote Control |
/doctor (dans REPL) |
Diagnostique l’installation, la config, les plugins |
v2.1.126 :
claude auth loginaccepte le code OAuth colle dans le terminal quand le callback navigateur ne peut pas atteindre localhost (WSL2, SSH, containers).
9. Variables d’environnement essentielles
| Variable | Description |
|---|---|
ANTHROPIC_API_KEY |
Cle API pour l’authentification |
ANTHROPIC_MODEL |
Modele par defaut |
CLAUDE_CODE_EFFORT_LEVEL |
Niveau d’effort (low/medium/high/xhigh/max) |
CLAUDE_CODE_SIMPLE |
Mode minimal (equivalent --bare) |
CLAUDE_CODE_DISABLE_AUTO_MEMORY |
Desactive les mises a jour auto de CLAUDE.md |
CLAUDE_CODE_DISABLE_BACKGROUND_TASKS |
Desactive les taches d’arriere-plan |
CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN |
Reste dans le terminal normal (utile pour logs) |
CLAUDE_CODE_SESSION_ID |
ID de session injecte dans les sous-processus Bash |
DISABLE_UPDATES |
Bloque toutes les mises a jour |
Verification checklist
-
claude -p "question"retourne une reponse et quitte -
claude -creprend la conversation la plus recente -
claude -r "nom"reprend une session nommee -
claude --model opusetclaude --model sonnetchangent le modele -
claude --permission-mode planbloque les ecritures -
claude -p --output-format jsonproduit du JSON valide -
cat fichier | claude -p "analyse"fonctionne -
claude --baredemarre sans plugins, hooks, MCP, CLAUDE.md -
claude auth statusretourne le bon code de sortie -
claude project purge --dry-runmontre ce qui serait supprime
Pieges courants
Oublier que --system-prompt-file est print-mode uniquement. En interactif, le fichier est ignore. Utilise --system-prompt ou --append-system-prompt a la place.
Penser que --permission-mode au resume ne sert a rien. C’etait vrai avant v2.1.132. Maintenant, claude -c --permission-mode plan applique bien le mode plan.
Utiliser --dangerously-skip-permissions sans savoir ce que ca fait. Ca desactive TOUTES les verifications. A utiliser uniquement dans des sandboxes ephemeres. Jamais sur de la production.
Chainer des commandes sans --max-turns en print mode. Sans limite, Claude peut boucler ou partir dans des actions inattendues. Fixe --max-turns pour tout usage scripte.
Ignorer le modele par defaut. Sans --model, Claude utilise le modele par defaut de ton compte. Si tu t’attends a Opus et que tu obtiens Haiku, verifie ANTHROPIC_MODEL ou /config.
Ne pas utiliser --no-session-persistence en CI. Chaque run de CI cree une session sauvegardee si tu ne passes pas ce flag. Ca pollue ton historique.
Recapitulatif
| Action | Commande |
|---|---|
| Session interactive | claude |
| Requete unique | claude -p "question" |
| Continuer | claude -c |
| Reprendre par nom | claude -r "nom" |
| Dupliquer une session | claude -r "nom" --fork-session |
| Pipe | cat fichier | claude -p "analyse" |
| Modele | claude --model opus/sonnet/haiku |
| Effort | claude --effort high |
| JSON | claude -p --output-format json |
| Lecture seule | claude --permission-mode plan |
| Auto mode | claude --permission-mode auto |
| Sans restrictions | claude --dangerously-skip-permissions |
| Bare/minimal | claude --bare |
| Budget limite | claude -p --max-budget-usd 5.00 |
| Tours limites | claude -p --max-turns 3 |
| Custom prompt | claude --system-prompt "..." |
| Plugin local | claude --plugin-dir ./plugin |
| Config MCP | claude --mcp-config ./mcp.json |
| Mettre a jour | claude update |
| Auth | claude auth login/logout/status |
| Diagnostic | /doctor (dans REPL) |
| Purge etat projet | claude project purge --dry-run |
Pour aller plus loin
- Doc officielle CLI
- Headless Mode
- Module Fonctionnalites avancees — planning mode, background tasks, permission modes
- Module Plugins — creer et distribuer des extensions
- Templates dans
/opt/data/projects/praktik-clone/output/templates/:print-mode-script.md— scripts CI/CD reutilisablesconfig-ci-cd.md— configuration pour pipelinesconfig-security-audit.md— configuration audit securiteconfig-development.md— configuration dev actifconfig-auto-mode.md— configuration auto mode avec guardrailsconfig-code-review.md— configuration revue de codeconfig-production.md— configuration production securiseeconfig-refactoring.md— configuration refactoringconfig-pair-programming.md— configuration pair programmingkeybindings-custom.md— personnalisation des raccourcis claviermanaged-settings-enterprise.md— settings geres par l’organisation
Inspire du guide claude-howto de luongnv89 (MIT)