Fonctionnalites avancees de Claude Code
Ce que tu vas apprendre
- Utiliser le planning mode pour structurer les taches complexes avant de coder
- Activer l’extended thinking et choisir le bon niveau d’effort
- Lancer des taches en arriere-plan sans bloquer la conversation
- Choisir le bon mode de permissions selon le contexte
- Executer Claude Code en mode non-interactif pour la CI/CD
- Gerer plusieurs sessions, les reprendre et les dupliquer
- Utiliser les raccourcis clavier, le mode vim et les keybindings personnalises
- Configurer le sandboxing et les regles enterprise
Prerequis
- Claude Code v2.1+
- Avoir lu les modules Slash Commands et Checkpoints
- Comprendre la hierarchie des permissions de base
Le concept en 30 secondes
Claude Code n’est pas qu’un chat interactif. Il a des modes de fonctionnement qui changent completement son comportement : planifier avant d’agir, reflechir plus longtemps, travailler en arriere-plan, s’executer sans supervision. Chaque mode a un usage precis. Le bon choix depend de la tache, pas de l’humeur.
Etapes
1. Planning mode : penser avant de coder
Le planning mode force Claude a produire un plan detaille avant toute modification. Tu valides, modifies ou refuses avant execution.
Quand l’utiliser :
- Refactoring multi-fichiers
- Nouvelle fonctionnalite
- Migration de base de donnees
- Redesign d’API
Quand ne PAS l’utiliser :
- Correction de bug simple
- Formatage
- Requete unique
Activation :
/plan Implemente l'authentification JWT
Ou en CLI :
claude --permission-mode plan
Raccourci : Shift + Tab pour cycliser les modes (inclut plan).
Deroulement type :
@diagram:steps
/plan <tache> :: Tu demandes un plan pour la tache.
Plan en phases :: Claude le produit avec estimations.
yes / no / modify :: Tu valides, refuses ou demandes une modification.
Ajustement :: Si tu modifies, il revoit le plan.
Execution :: Sur validation, il execute phase par phase.
v2.1.136 : En plan mode, tous les writes sont bloques, meme si une regle
Edit(...)existe danspermissions.allow. Avant cette version, une regle permissive pouvait contourner le plan mode. Si ton workflow dependait de l’ancien comportement, sors du plan mode (Shift+Tab) avant d’editer.
Modifier un plan externement :
Pendant la revue du plan, appuie sur Ctrl+G pour l’ouvrir dans ton editeur systeme.
Alias opusplan :
claude --model opusplan "concois et implemente la nouvelle API"
Opus pour la planification, Sonnet pour l’execution.
2. Extended thinking : plus de tokens pour reflechir
L’extended thinking laisse Claude raisonner plus longtemps avant de repondre. C’est un toggle, pas une option cachee.
Raccourci :
Option + T(macOS)Alt + T(Windows/Linux)
Niveaux d’effort (Opus 4.8, Opus 4.7, Opus 4.6, Sonnet 4.6) :
@diagram:cc-effort-levels
Commandes :
/effort high
Ou en CLI :
claude --effort high "revue architecturale"
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. Le menu/effortpropose aussiultracodequi envoiexhigh+ orchestre des workflows dynamiques (session uniquement).
3. Background tasks : travailler en parallele
Lance des operations longues sans bloquer la conversation.
Usage :
Lance les tests en arriere-plan
Claude demarre la tache et te donne un ID :
Tache bg-1234 demarree. Tu peux continuer a travailler.
Commandes de gestion :
| Commande | Action |
|---|---|
/task list |
Liste les taches actives |
/task status <id> |
Etat d’une tache |
/task show <id> |
Voir la sortie |
/task cancel <id> |
Annuler |
Exemple de workflow parallele :
Lance le build en arriere-plan
Lance le linter en arriere-plan
Pendant ce temps, implemente le nouvel endpoint API
Claude execute les deux taches en fond tout en continuant la conversation avec toi.
4. Monitor : reagir aux evenements sans polling
Le Monitor tool (v2.1.98+) attache Claude a la sortie stdout d’une commande. Chaque ligne correspondante declenche une reaction. Zero token consomme tant que la commande est silencieuse.
Pattern stream :
tail -f /var/log/app.log | grep --line-buffered "ERROR"
Pattern poll-and-emit :
last=$(date -u +%Y-%m-%dT%H:%M:%SZ)
while true; do
gh api "repos/owner/repo/issues/123/comments?since=$last" || true
last=$(date -u +%Y-%m-%dT%H:%M:%SZ)
sleep 30
done
Attention : Avec
grepdans un pipe, utilise toujours--line-buffered. Sans ca, grep bufferise par blocs de 4KB et les evenements peuvent etre retardes de plusieurs minutes. C’est la cause #1 des pannes Monitor.
5. Dynamic workflows : orchestre de subagents
(v2.1.154+) Les workflows dynamiques decomposent une tache en dizaines ou centaines de subagents qui travaillent en parallele. C’est du determinisme par script, pas de l’improvisation.
Quand les utiliser :
- Audit ou revue a grande echelle
- Verification adversariale (plusieurs perspectives independantes)
- Trop gros pour une seule fenetre de contexte
Lancement :
Demande a Claude de creer un workflow pour la tache. Il ecrit le script d’orchestration et le lance en arriere-plan.
/workflows
Affiche les workflows en cours et termines avec progression live.
ultracode : Selectionne
ultracodedans le menu/effort. Cela envoiexhigh+ active les workflows dynamiques par defaut. Session uniquement, non configurable dans settings.json.
6. Scheduled tasks : automatiser les verifications recurrentes
Les taches planifiees tournent pendant que Claude Code est actif. Session-scoped : elles disparaissent quand la session se termine.
Commande /loop :
/loop 5m verifier si le deploiement est termine
/loop verifier le build toutes les 30 minutes
Rappels ponctuels :
rappelle-moi a 15h de pousser la branche release
dans 45 minutes, lance les tests d'integration
Gestion :
| Outil | Description |
|---|---|
CronCreate |
Creer une tache |
CronList |
Lister (affiche le prompt planifie depuis v2.1.136) |
CronDelete |
Supprimer |
Limites :
- 50 taches planifiees max par session
- Expirent apres 3 jours
- Pas de rattrapage si Claude Code etait ferme
- Jitter : 10% de l’intervalle (max 15 min)
Cloud scheduled tasks :
/schedule daily at 9am run the test suite and report failures
Persiste apres redemarrage. Tourne sur l’infrastructure Anthropic.
v2.1.139 :
/schedulecloud est silencieusement indisponible siANTHROPIC_API_KEY,ANTHROPIC_AUTH_TOKENouapiKeyHelperest defini. Desactive la cle API (ou utilise OAuth Pro/Max) pour y acceder.
7. Permission modes : controler ce que Claude peut faire
Six modes disponibles. Cyclage avec Shift+Tab.
@diagram:scale
Modes de permission, du plus restrictif (gauche) au plus permissif (droite)
plan :: Lecture seule (mode recherche, pas d'edition).
dontAsk :: Seuls les outils pre-approuves s'executent ; le reste est refuse.
default :: Lecture libre ; demande confirmation pour le reste.
acceptEdits :: Lecture + edition auto ; demande pour les commandes.
auto :: Toutes les actions avec classifier de securite (Research Preview).
bypassPermissions :: Toutes les actions, aucune verification (dangereux).
Activation :
claude --permission-mode plan
claude --permission-mode auto
Ou dans settings.json :
{
"permissions": {
"defaultMode": "auto"
}
}
Auto mode (Research Preview) :
- Requiert : Team/Enterprise/API plan, Sonnet 4.6 ou Opus 4.8, provider Anthropic API
- Le classifier tourne en arriere-plan sur Sonnet 4.6 (cout tokens supplementaire)
- Ordre de decision : allow/deny rules > read-only/edits auto-approved > classifier > fallback apres 3 blocs consecutifs ou 20 blocs total
Actions bloquees par defaut en auto mode :
| Action bloquee | Exemple |
|---|---|
| Pipe-to-shell install | `curl |
| Envoi de donnees sensibles | Cles API, credentials |
| Deploiement production | Commandes ciblant la prod |
| Suppression massive | rm -rf sur gros repertoires |
| Changements IAM | Modification de roles |
| Force push main | git push --force origin main |
Etendre les regles auto mode (v2.1.118+) :
{
"autoMode": {
"allow": ["$defaults", "Bash(gh pr list:*)"],
"soft_deny": ["$defaults", "Bash(kubectl delete:*)"],
"hard_deny": ["Bash(rm -rf /:*)", "Bash(git push --force*)"]
}
}
$defaults ajoute tes regles aux regles integrees au lieu de les remplacer.
v2.1.121/v2.1.126 :
--dangerously-skip-permissions(etbypassPermissions) couvre maintenant plus de chemins :.claude/skills/,.claude/agents/,.claude/commands/,.git/,.vscode/, fichiers de config shell. Les suppressions catastrophiques (rm -rf /, etc.) demandent toujours confirmation.
8. Print mode (headless) : execution non-interactive
Pour l’automatisation et la CI/CD.
# Tache specifique
claude -p "Lance tous les tests"
# Depuis un pipe
cat error.log | claude -p "Analyse ces erreurs"
# Sortie JSON structuree
claude -p --output-format json "Analyse la qualite du code"
# Limiter les tours autonomes
claude -p --max-turns 5 "refactorise ce module"
Exemple GitHub Actions :
name: AI Code Review
on: [pull_request]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm install -g @anthropic-ai/claude-code
- env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
claude -p --output-format json --max-turns 3 \
"Review cette PR pour : qualite, securite, performance, couverture de tests" \
> review.json
9. Session management : gerer plusieurs contextes
| Commande | Action |
|---|---|
/resume |
Reprendre une conversation par ID ou nom |
/rename |
Nommer la session courante |
/fork |
Dupliquer la session courante |
claude -c |
Continuer la conversation la plus recente |
claude -r "nom" |
Reprendre par nom ou ID |
Fork pour experimenter :
/fork
Ou en CLI :
claude --resume auth-refactor --fork-session "essai OAuth a la place"
Recap apres absence (v2.1.108+) :
/recap # declencher manuellement
/config # activer/desactiver le recap auto
Variable d’environnement :
CLAUDE_CODE_ENABLE_AWAY_SUMMARY=1 claude
10. Raccourcis clavier et personnalisation
Raccourcis essentiels :
| Raccourci | Action |
|---|---|
Ctrl+C |
Annuler l’entree/generation |
Ctrl+D |
Quitter Claude Code |
Ctrl+G |
Editer le plan dans l’editeur externe |
Ctrl+L |
Effacer l’ecran |
Ctrl+O |
Basculer la sortie verbeuse (voir le raisonnement) |
Ctrl+R |
Recherche inverse dans l’historique |
Ctrl+T |
Basculer la liste de taches |
Esc+Esc |
Rewind conversation/code |
Shift+Tab / Alt+M |
Cycliser les modes de permission |
Option+P / Alt+P |
Changer de modele |
Option+T / Alt+T |
Basculer l’extended thinking |
Personnaliser les keybindings :
/keybindings
Ouvre ~/.claude/keybindings.json :
{
"$schema": "https://www.schemastore.org/claude-code-keybindings.json",
"bindings": [
{
"context": "Chat",
"bindings": {
"ctrl+e": "chat:externalEditor",
"ctrl+k ctrl+s": "chat:stash"
}
},
{
"context": "Confirmation",
"bindings": {
"ctrl+a": "confirmation:yes"
}
}
]
}
Mettre une binding a null pour desactiver le raccourci par defaut.
Mode Vim :
Active via /config (toggle “Editor / Vim mode”) ou dans settings.json :
{ "editorMode": "vim" }
Esc: NORMALi/a/o: INSERTv: VISUAL (v2.1.118+)V: VISUAL-LINE (v2.1.118+)
Bash mode :
Prefixe ! pour executer une commande shell directement :
! npm test
! git status
11. TUI mode, voice dictation, channels
TUI mode (v2.1.110+) :
Fullscreen, sans scintillement. Ideal pour tmux ou iTerm2 split.
/tui # basculer dans une session
claude --tui # demarrer directement
Configuration :
{ "autoScrollEnabled": false }
/focus pour la vue sans distraction.
Voice dictation :
/voice
Push-to-talk, 20 langues supportees. Configure la touche via /keybindings.
Channels (Research Preview) :
Pousse des evenements externes (Discord, Telegram, iMessage, webhooks) dans la session via MCP servers.
claude --channels discord,telegram
12. Chrome integration, remote control, web sessions
Chrome integration (beta) :
claude --chrome # activer
claude --no-chrome # desactiver
/chrome # dans une session
Capacites : debug live, verification de design, test de formulaires, extraction de donnees, enregistrement GIF. Chrome et Edge uniquement. Pas de WSL. Pas de Bedrock/Vertex/Foundry.
Remote control :
Continue ta session locale depuis un telephone, tablette ou navigateur.
claude remote-control --name "Auth Refactor"
/remote-control
- Aucun port entrant ouvert
- HTTPS sortant uniquement
- Session timeout apres ~10 min sans reseau
- Incompatible avec ultraplan (meme interface claude.ai/code)
Web sessions :
claude --remote "implemente les nouveaux endpoints"
claude --teleport # reprendre une session web en local
/teleport # dans une session
13. Desktop app, task list, prompt suggestions
Desktop app :
Disponible sur macOS et Windows. Telechargement sur claude.ai.
/desktop # transferer la session CLI vers l'app
Features : diff view visuel, app preview avec dev server auto, monitoring PR, sessions paralleles avec isolation worktree, taches planifiees.
Configuration dev server (.claude/launch.json) :
{
"command": "npm run dev",
"port": 3000,
"readyPattern": "ready on",
"persistCookies": true
}
Task list :
Ctrl+T pour basculer la vue. Les taches survivent aux compactions de contexte.
Variable pour partager une liste entre sessions :
export CLAUDE_CODE_TASK_LIST_ID=my-project-sprint-3
Prompt suggestions :
Suggestions grisees basees sur l’historique git et le contexte. Tab pour accepter. Entree pour accepter et envoyer.
Desactiver :
export CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION=false
14. Git worktrees
Isole ton travail dans une branche worktree sans stasher ni switcher.
claude --worktree
claude -w
Emplacement : <repo>/.claude/worktrees/<nom>
Sparse checkout (monorepos) :
{
"worktree": {
"sparsePaths": ["packages/mon-paquet", "shared/"]
}
}
Base branch (v2.1.133) :
{ "worktree": { "baseRef": "head" } }
"fresh"(defaut) : branche depuisorigin/<default-branch>, ignore les commits locaux non pousses"head": branche depuisHEADlocal, preserve les commits non pousses
Background session isolation (v2.1.143) :
{ "worktree": { "bgIsolation": "none" } }
- Defaut : les sessions d’arriere-plan creent un worktree isole
"none": elles editent la working copy directement (risque de conflits)
15. Sandboxing
Isolation OS-level du filesystem et du reseau pour les commandes Bash.
Activation :
/sandbox
claude --sandbox
claude --no-sandbox
Configuration :
{
"sandbox": {
"enabled": true,
"failIfUnavailable": true,
"filesystem": {
"allowWrite": ["/Users/moi/projet"],
"allowRead": ["/Users/moi/projet", "/usr/local/lib"],
"denyRead": ["/Users/moi/.ssh", "/Users/moi/.aws"]
},
"network": {
"allowedDomains": ["*.example.com"],
"deniedDomains": ["evil.example.com"]
},
"enableWeakerNetworkIsolation": true
}
}
macOS : l’isolation reseau complete n’est pas disponible. Utilise
enableWeakerNetworkIsolationpour des restrictions partielles.
Linux/WSL (v2.1.133+) : specifie les chemins binaires si necessaire :
{ "sandbox": { "bwrapPath": "/opt/bubblewrap/bin/bwrap", "socatPath": "/opt/socat/bin/socat" } }
16. Managed settings (Enterprise)
Deploiement de configuration via outils de gestion natifs.
| Plateforme | Methode | Depuis |
|---|---|---|
| macOS | Managed plist (MDM) | v2.1.51 |
| Windows | Windows Registry | v2.1.51 |
| Cross-platform | Managed config files | v2.1.51 |
| Cross-platform | Drop-ins managed-settings.d/ |
v2.1.83 |
Drop-ins modulaires :
~/.claude/managed-settings.d/
00-org-defaults.json
10-team-policies.json
20-project-overrides.json
Fusion dans l’ordre alphabetique.
Settings disponibles :
| Setting | Description |
|---|---|
disableBypassPermissionsMode |
Empeche le mode bypass |
availableModels |
Restreint les modeles selectionnables |
allowedChannelPlugins |
Plugins channels autorises |
autoMode.environment |
Infrastructure de confiance pour auto mode |
wslInheritsWindowsSettings |
WSL herite des settings Windows (v2.1.118+) |
disableRemoteControl |
Bloque le remote control (v2.1.128+) |
parentSettingsBehavior |
Fusion avec les settings parent (v2.1.133+) |
Exemple plist macOS :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>disableBypassPermissionsMode</key>
<true/>
<key>availableModels</key>
<array>
<string>claude-sonnet-4-6</string>
<string>claude-haiku-4-5</string>
</array>
</dict>
</plist>
17. Configuration complete
Fichiers de config :
- Global :
~/.claude/config.json - Projet :
./.claude/config.json - Utilisateur :
~/.config/claude-code/settings.json
Exemple de configuration avancee :
{
"permissions": {
"mode": "default",
"allowedTools": ["Bash(git log:*)", "Read"],
"disallowedTools": ["Bash(rm -rf:*)"]
},
"hooks": {
"PreToolUse": [{ "matcher": "Edit", "hooks": ["eslint --fix ${file_path}"] }],
"PostToolUse": [{ "matcher": "Write", "hooks": ["~/.claude/hooks/security-scan.sh"] }],
"Stop": [{ "hooks": ["~/.claude/hooks/notify.sh"] }]
},
"mcp": {
"enabled": true,
"servers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_TOKEN": "${GITHUB_TOKEN}" }
}
}
},
"sandbox": {
"enabled": true,
"filesystem": {
"allowWrite": ["/Users/moi/projet"],
"denyRead": ["/Users/moi/.ssh"]
}
},
"worktree": {
"sparsePaths": ["packages/core", "shared/"],
"baseRef": "fresh"
}
}
Variables d’environnement cles :
# Modele
export ANTHROPIC_MODEL=claude-opus-4-8
# Reflexion
export MAX_THINKING_TOKENS=16000
export CLAUDE_CODE_EFFORT_LEVEL=high
# Desactiver des features
export CLAUDE_CODE_DISABLE_CRON=1
export CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=true
export CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION=false
# Cache
export ENABLE_PROMPT_CACHING_1H=1
# Taches
export CLAUDE_CODE_TASK_LIST_ID=my-project-tasks
# Agent teams (experimental)
export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
Verification checklist
-
/planproduit un plan en phases avant toute modification -
Shift+Tabcyclise entre les 6 modes de permission -
Alt+T/Option+Tbascule l’extended thinking - Une tache d’arriere-plan demarree ne bloque pas la conversation
-
claude -pexecute une tache sans interaction -
claude -creprend la derniere conversation -
Esc+Escouvre le navigateur de checkpoints -
/keybindingsouvre le fichier de raccourcis personnalises -
Ctrl+Oaffiche le raisonnement detaille - Le sandboxing restreint les chemins filesystem et reseau
- Les managed settings s’appliquent au niveau organisation
Pieges courants
Utiliser plan mode pour une tache simple. C’est du sur-travail. Reserve-le aux taches multi-fichiers ou multi-etapes.
Oublier que le plan mode bloque tous les writes depuis v2.1.136. Meme une regle Edit(...) permissive ne passe plus. Sors du plan mode pour editer si necessaire.
Lancer trop de taches d’arriere-plan. La limite pratique depend de ta machine. Surveille avec /task list.
Utiliser bypassPermissions en production. Ce mode est un couteau sans garde. Reserve-le aux environnements jetables.
Oublier --line-buffered avec Monitor. Sans ca, grep bufferise et les evenements arrivent en retard de plusieurs minutes.
Melanger API key et features cloud. ANTHROPIC_API_KEY desactive /schedule cloud, Remote Control, et les connectors claude.ai. Utilise OAuth Pro/Max pour ces features.
Ne pas configurer hard_deny en auto mode. soft_deny est negociable par le classifier. hard_deny ne l’est pas. Utilise hard_deny pour les actions irreversibles.
Recapitulatif
| Feature | Quand l’utiliser | Commande cle |
|---|---|---|
| Planning mode | Tache complexe multi-etapes | /plan |
| Extended thinking | Decision architecturale, probleme difficile | Alt+T |
| Background tasks | Operation longue non bloquante | “Lance en arriere-plan” |
| Monitor | Reagir a des evenements stdout sans polling | Attache a une commande |
| Dynamic workflows | Orchestration de subagents a grande echelle | /workflows |
| Scheduled tasks | Verification recurrente | /loop, /schedule |
| Auto mode | Travail autonome avec guardrails | Shift+Tab jusqu’a auto |
| Print mode | CI/CD, automatisation | claude -p |
| Session mgmt | Multi-contextes, reprise | claude -c, /resume, /fork |
| Sandboxing | Execution non fiable, defense en profondeur | --sandbox |
| Worktrees | Travail parallele isole | --worktree |
| Managed settings | Deploiement enterprise | plist, Registry, drop-ins |
Pour aller plus loin
- Documentation officielle - Permission Modes
- Documentation officielle - Interactive Mode
- Documentation officielle - Headless Mode
- Documentation officielle - Remote Control
- Documentation officielle - Desktop App
- Documentation officielle - Agent Teams
- Changelog Claude Code
- Lire le module Subagents pour les workflows dynamiques
- Lire le module Hooks pour l’automatisation evenementielle
Inspire du guide claude-howto de luongnv89 (MIT)