SpyBara
Go Premium

Documentation 2026-05-13 23:01 UTC to 2026-05-14 17:02 UTC

22 files changed +416 −92. View all changes and history on the product overview
2026
Sun 31 06:39 Sat 30 06:23 Fri 29 06:38 Thu 28 06:37 Wed 27 06:42 Tue 26 06:33 Sun 24 06:25 Sat 23 06:18 Fri 22 06:33 Thu 21 06:36 Wed 20 06:35 Tue 19 06:34 Mon 18 23:59 Sun 17 01:01 Fri 15 22:58 Thu 14 17:02 Wed 13 23:01 Tue 12 22:57 Mon 11 23:00 Sun 10 23:03 Sat 9 04:57 Fri 8 22:00 Thu 7 22:59 Tue 5 23:00 Mon 4 22:58 Sat 2 18:14 Fri 1 18:19
Details

235 235 

236Votre rappel retourne un objet avec deux catégories de champs :236Votre rappel retourne un objet avec deux catégories de champs :

237 237 

238* **Champs de niveau supérieur** contrôlent la conversation : `systemMessage` injecte un message dans la conversation visible au modèle, et `continue` (`continue_` en Python) détermine si l'agent continue à s'exécuter après ce hook.238* **Champs de niveau supérieur** fonctionnent de la même manière sur chaque événement : `systemMessage` affiche un message à l'utilisateur, et `continue` (`continue_` en Python) détermine si l'agent continue à s'exécuter après ce hook.

239* **`hookSpecificOutput`** contrôle l'opération actuelle. Les champs à l'intérieur dépendent du type d'événement hook. Pour les hooks `PreToolUse`, c'est là que vous définissez `permissionDecision` (`"allow"`, `"deny"`, `"ask"` ou `"defer"`), `permissionDecisionReason` et `updatedInput`. Retourner `"defer"` termine la requête pour que vous puissiez [la reprendre plus tard](/fr/hooks#defer-a-tool-call-for-later). Pour les hooks `PostToolUse`, vous pouvez définir `additionalContext` pour ajouter des informations au résultat de l'outil, ou `updatedToolOutput` pour remplacer entièrement la sortie de l'outil avant que Claude ne la voie.239* **`hookSpecificOutput`** contrôle l'opération actuelle. Les champs à l'intérieur dépendent du type d'événement hook. Pour les hooks `PreToolUse`, c'est là que vous définissez `permissionDecision` (`"allow"`, `"deny"`, `"ask"` ou `"defer"`), `permissionDecisionReason` et `updatedInput`. Retourner `"defer"` termine la requête pour que vous puissiez [la reprendre plus tard](/fr/hooks#defer-a-tool-call-for-later). Pour les hooks `PostToolUse`, vous pouvez définir `additionalContext` pour ajouter des informations au résultat de l'outil, ou `updatedToolOutput` pour remplacer entièrement la sortie de l'outil avant que Claude ne la voie.

240 240 

241Retournez `{}` pour autoriser l'opération sans modifications. Les hooks de rappel du SDK utilisent le même format de sortie JSON que les [hooks de commande shell Claude Code](/fr/hooks#json-output), qui documente chaque champ et option spécifique à l'événement. Pour les définitions de type du SDK, consultez les références du SDK [TypeScript](/fr/agent-sdk/typescript#synchookjsonoutput) et [Python](/fr/agent-sdk/python#synchookjsonoutput).241Retournez `{}` pour autoriser l'opération sans modifications. Les hooks de rappel du SDK utilisent le même format de sortie JSON que les [hooks de commande shell Claude Code](/fr/hooks#json-output), qui documente chaque champ et option spécifique à l'événement. Pour les définitions de type du SDK, consultez les références du SDK [TypeScript](/fr/agent-sdk/typescript#synchookjsonoutput) et [Python](/fr/agent-sdk/python#synchookjsonoutput).


331 331 

332### Ajouter du contexte et bloquer un outil332### Ajouter du contexte et bloquer un outil

333 333 

334Cet exemple bloque toute tentative d'écriture dans le répertoire `/etc` et utilise deux champs de sortie ensemble : `permissionDecision: 'deny'` arrête l'appel d'outil, tandis que `systemMessage` injecte un rappel dans la conversation afin que l'agent reçoive le contexte sur la raison du blocage de l'opération et évite de la réessayer :334Cet exemple bloque les écritures dans le répertoire `/etc` et explique pourquoi au modèle et à l'utilisateur :

335 

336* `permissionDecision: 'deny'` arrête l'appel d'outil.

337* `permissionDecisionReason` indique au modèle pourquoi, afin qu'il évite de réessayer.

338* `systemMessage` montre à l'utilisateur ce qui s'est passé.

335 339 

336<CodeGroup>340<CodeGroup>

337 ```python Python theme={null}341 ```python Python theme={null}


340 344 

341 if file_path.startswith("/etc"):345 if file_path.startswith("/etc"):

342 return {346 return {

343 # Top-level field: inject guidance into the conversation347 # Top-level field: message shown to the user

344 "systemMessage": "Remember: system directories like /etc are protected.",348 "systemMessage": "Remember: system directories like /etc are protected.",

345 # hookSpecificOutput: block the operation349 # hookSpecificOutput: block the operation

346 "hookSpecificOutput": {350 "hookSpecificOutput": {


360 364 

361 if (filePath?.startsWith("/etc")) {365 if (filePath?.startsWith("/etc")) {

362 return {366 return {

363 // Top-level field: inject guidance into the conversation367 // Top-level field: message shown to the user

364 systemMessage: "Remember: system directories like /etc are protected.",368 systemMessage: "Remember: system directories like /etc are protected.",

365 // hookSpecificOutput: block the operation369 // hookSpecificOutput: block the operation

366 hookSpecificOutput: {370 hookSpecificOutput: {


807 811 

808### systemMessage n'apparaît pas dans la sortie812### systemMessage n'apparaît pas dans la sortie

809 813 

810Le champ `systemMessage` ajoute du contexte à la conversation que le modèle voit, mais il peut ne pas apparaître dans tous les modes de sortie du SDK. Si vous avez besoin de faire apparaître les décisions de hook à votre application, enregistrez-les séparément ou utilisez un canal de sortie dédié.814Le champ `systemMessage` affiche un message à l'utilisateur, pas au modèle. Par défaut, le SDK ne fait pas apparaître la sortie du hook dans le flux de messages, donc le message peut ne pas apparaître à moins que vous définissiez `includeHookEvents` (`include_hook_events` en Python). Pour transmettre du contexte au modèle à la place, retournez [`additionalContext`](/fr/hooks#add-context-for-claude).

815 

816Si vous avez besoin de faire apparaître les décisions de hook à votre application de manière fiable, enregistrez-les séparément ou utilisez un canal de sortie dédié.

811 817 

812## Ressources connexes818## Ressources connexes

813 819 

Details

1860Retourne un [`HookJSONOutput`](#hookjsonoutput) qui peut contenir :1860Retourne un [`HookJSONOutput`](#hookjsonoutput) qui peut contenir :

1861 1861 

1862* `decision` : `"block"` pour bloquer l'action1862* `decision` : `"block"` pour bloquer l'action

1863* `systemMessage` : Message système à ajouter à la transcription1863* `systemMessage` : Message d'avertissement affiché à l'utilisateur

1864* `hookSpecificOutput` : Données de sortie spécifiques au hook1864* `hookSpecificOutput` : Données de sortie spécifiques au hook

1865 1865 

1866### `HookContext`1866### `HookContext`


2645 2645 

2646**Nom de l'outil :** `TodoWrite`2646**Nom de l'outil :** `TodoWrite`

2647 2647 

2648<Note>

2649 `TodoWrite` est déprécié et sera supprimé dans une version future. Utilisez `TaskCreate`, `TaskGet`, `TaskUpdate` et `TaskList` à la place. Définissez `CLAUDE_CODE_ENABLE_TASKS=1` pour vous inscrire. Voir [Migrer vers les outils Task](/fr/agent-sdk/todo-tracking#migrate-to-task-tools) pour savoir comment surveiller les modifications du code.

2650</Note>

2651 

2648**Entrée :**2652**Entrée :**

2649 2653 

2650```python theme={null}2654```python theme={null}


2668}2672}

2669```2673```

2670 2674 

2675### TaskCreate

2676 

2677**Nom de l'outil :** `TaskCreate`

2678 

2679**Entrée :**

2680 

2681```python theme={null}

2682{

2683 "subject": str, # Short task title

2684 "description": str, # Detailed task body

2685 "activeForm": str | None, # Present-tense label shown while in progress

2686 "metadata": dict | None, # Arbitrary caller metadata

2687}

2688```

2689 

2690**Sortie :**

2691 

2692```python theme={null}

2693{

2694 "task": {"id": str, "subject": str}, # Created task with assigned ID

2695}

2696```

2697 

2698### TaskUpdate

2699 

2700**Nom de l'outil :** `TaskUpdate`

2701 

2702**Entrée :**

2703 

2704```python theme={null}

2705{

2706 "taskId": str, # ID of the task to patch

2707 "status": Literal["pending", "in_progress", "completed", "deleted"] | None,

2708 "subject": str | None,

2709 "description": str | None,

2710 "activeForm": str | None,

2711 "addBlocks": list[str] | None, # Task IDs this task now blocks

2712 "addBlockedBy": list[str] | None, # Task IDs that now block this task

2713 "owner": str | None,

2714 "metadata": dict | None,

2715}

2716```

2717 

2718**Sortie :**

2719 

2720```python theme={null}

2721{

2722 "success": bool,

2723 "taskId": str,

2724 "updatedFields": list[str], # Names of fields that changed

2725 "error": str | None,

2726 "statusChange": {"from": str, "to": str} | None,

2727}

2728```

2729 

2730### TaskGet

2731 

2732**Nom de l'outil :** `TaskGet`

2733 

2734**Entrée :**

2735 

2736```python theme={null}

2737{

2738 "taskId": str, # ID of the task to read

2739}

2740```

2741 

2742**Sortie :**

2743 

2744```python theme={null}

2745{

2746 "task": {

2747 "id": str,

2748 "subject": str,

2749 "description": str,

2750 "status": Literal["pending", "in_progress", "completed"],

2751 "blocks": list[str],

2752 "blockedBy": list[str],

2753 } | None, # None when the ID is not found

2754}

2755```

2756 

2757### TaskList

2758 

2759**Nom de l'outil :** `TaskList`

2760 

2761**Entrée :**

2762 

2763```python theme={null}

2764{}

2765```

2766 

2767**Sortie :**

2768 

2769```python theme={null}

2770{

2771 "tasks": [

2772 {

2773 "id": str,

2774 "subject": str,

2775 "status": Literal["pending", "in_progress", "completed"],

2776 "owner": str | None,

2777 "blockedBy": list[str],

2778 }

2779 ],

2780}

2781```

2782 

2671### BashOutput2783### BashOutput

2672 2784 

2673**Nom de l'outil :** `BashOutput`2785**Nom de l'outil :** `BashOutput`

Details

389| `fallbackModel` | `string` | `undefined` | Modèle à utiliser si le principal échoue |389| `fallbackModel` | `string` | `undefined` | Modèle à utiliser si le principal échoue |

390| `forkSession` | `boolean` | `false` | Lors de la reprise avec `resume`, bifurquer vers un nouvel ID de session au lieu de continuer la session d'origine |390| `forkSession` | `boolean` | `false` | Lors de la reprise avec `resume`, bifurquer vers un nouvel ID de session au lieu de continuer la session d'origine |

391| `hooks` | `Partial<Record<`[`HookEvent`](#hookevent)`, `[`HookCallbackMatcher`](#hookcallbackmatcher)`[]>>` | `{}` | Rappels de hook pour les événements |391| `hooks` | `Partial<Record<`[`HookEvent`](#hookevent)`, `[`HookCallbackMatcher`](#hookcallbackmatcher)`[]>>` | `{}` | Rappels de hook pour les événements |

392| `includeHookEvents` | `boolean` | `false` | Inclure les événements du cycle de vie du hook dans le flux de messages en tant que [`SDKHookStartedMessage`](#sdkhookstartedmessage), [`SDKHookProgressMessage`](#sdkhookprogressmessage), et [`SDKHookResponseMessage`](#sdkhookresponsemessage) |

392| `includePartialMessages` | `boolean` | `false` | Inclure les événements de message partiel |393| `includePartialMessages` | `boolean` | `false` | Inclure les événements de message partiel |

393| `maxBudgetUsd` | `number` | `undefined` | Arrêter la requête quand l'estimation du coût côté client atteint cette valeur en USD. Comparé à la même estimation que `total_cost_usd` ; voir [Suivi des coûts et de l'utilisation](/fr/agent-sdk/cost-tracking) pour les avertissements de précision |394| `maxBudgetUsd` | `number` | `undefined` | Arrêter la requête quand l'estimation du coût côté client atteint cette valeur en USD. Comparé à la même estimation que `total_cost_usd` ; voir [Suivi des coûts et de l'utilisation](/fr/agent-sdk/cost-tracking) pour les avertissements de précision |

394| `maxThinkingTokens` | `number` | `undefined` | *Déprécié :* Utilisez `thinking` à la place. Tokens maximum pour le processus de réflexion |395| `maxThinkingTokens` | `number` | `undefined` | *Déprécié :* Utilisez `thinking` à la place. Tokens maximum pour le processus de réflexion |


1596 | ReadMcpResourceInput1597 | ReadMcpResourceInput

1597 | SubscribeMcpResourceInput1598 | SubscribeMcpResourceInput

1598 | SubscribePollingInput1599 | SubscribePollingInput

1600 | TaskCreateInput

1601 | TaskGetInput

1602 | TaskListInput

1599 | TaskStopInput1603 | TaskStopInput

1604 | TaskUpdateInput

1600 | TodoWriteInput1605 | TodoWriteInput

1601 | UnsubscribeMcpResourceInput1606 | UnsubscribeMcpResourceInput

1602 | UnsubscribePollingInput1607 | UnsubscribePollingInput


1850**Nom de l'outil :** `TaskCreate`1855**Nom de l'outil :** `TaskCreate`

1851 1856 

1852```typescript theme={null}1857```typescript theme={null}

1853// Non encore exporté depuis le SDK ; définissez localement.

1854type TaskCreateInput = {1858type TaskCreateInput = {

1855 subject: string;1859 subject: string;

1856 description: string;1860 description: string;


1866**Nom de l'outil :** `TaskUpdate`1870**Nom de l'outil :** `TaskUpdate`

1867 1871 

1868```typescript theme={null}1872```typescript theme={null}

1869// Non encore exporté depuis le SDK ; définissez localement.

1870type TaskUpdateInput = {1873type TaskUpdateInput = {

1871 taskId: string;1874 taskId: string;

1872 status?: "pending" | "in_progress" | "completed" | "deleted";1875 status?: "pending" | "in_progress" | "completed" | "deleted";


1887**Nom de l'outil :** `TaskGet`1890**Nom de l'outil :** `TaskGet`

1888 1891 

1889```typescript theme={null}1892```typescript theme={null}

1890// Non encore exporté depuis le SDK ; définissez localement.

1891type TaskGetInput = {1893type TaskGetInput = {

1892 taskId: string;1894 taskId: string;

1893};1895};


1900**Nom de l'outil :** `TaskList`1902**Nom de l'outil :** `TaskList`

1901 1903 

1902```typescript theme={null}1904```typescript theme={null}

1903// Non encore exporté depuis le SDK ; définissez localement.

1904type TaskListInput = {};1905type TaskListInput = {};

1905```1906```

1906 1907 


1983 | MonitorOutput1984 | MonitorOutput

1984 | NotebookEditOutput1985 | NotebookEditOutput

1985 | ReadMcpResourceOutput1986 | ReadMcpResourceOutput

1987 | TaskCreateOutput

1988 | TaskGetOutput

1989 | TaskListOutput

1986 | TaskStopOutput1990 | TaskStopOutput

1991 | TaskUpdateOutput

1987 | TodoWriteOutput1992 | TodoWriteOutput

1988 | WebFetchOutput1993 | WebFetchOutput

1989 | WebSearchOutput;1994 | WebSearchOutput;


2347**Nom de l'outil :** `TaskCreate`2352**Nom de l'outil :** `TaskCreate`

2348 2353 

2349```typescript theme={null}2354```typescript theme={null}

2350// Not yet exported from the SDK; define locally.

2351type TaskCreateOutput = {2355type TaskCreateOutput = {

2352 task: {2356 task: {

2353 id: string;2357 id: string;


2363**Nom de l'outil :** `TaskUpdate`2367**Nom de l'outil :** `TaskUpdate`

2364 2368 

2365```typescript theme={null}2369```typescript theme={null}

2366// Not yet exported from the SDK; define locally.

2367type TaskUpdateOutput = {2370type TaskUpdateOutput = {

2368 success: boolean;2371 success: boolean;

2369 taskId: string;2372 taskId: string;


2383**Nom de l'outil :** `TaskGet`2386**Nom de l'outil :** `TaskGet`

2384 2387 

2385```typescript theme={null}2388```typescript theme={null}

2386// Not yet exported from the SDK; define locally.

2387type TaskGetOutput = {2389type TaskGetOutput = {

2388 task: {2390 task: {

2389 id: string;2391 id: string;


2403**Nom de l'outil :** `TaskList`2405**Nom de l'outil :** `TaskList`

2404 2406 

2405```typescript theme={null}2407```typescript theme={null}

2406// Not yet exported from the SDK; define locally.

2407type TaskListOutput = {2408type TaskListOutput = {

2408 tasks: Array<{2409 tasks: Array<{

2409 id: string;2410 id: string;

agent-view.md +45 −7

Details

46 </Step>46 </Step>

47 47 

48 <Step title="Dispatcher une session">48 <Step title="Dispatcher une session">

49 Tapez une invite décrivant une tâche et appuyez sur `Entrée`. Une nouvelle session en arrière-plan démarre sur cette tâche et apparaît sous forme de ligne indiquant si elle fonctionne, attend votre intervention, ou est terminée. La nouvelle session utilise le modèle affiché dans l'en-tête de la vue agent et le même [mode de permission](#permission-mode-and-settings) que vous obtiendriez en exécutant `claude` dans ce répertoire.49 Tapez une invite décrivant une tâche et appuyez sur `Entrée`. Une nouvelle session en arrière-plan démarre sur cette tâche et apparaît sous forme de ligne indiquant si elle fonctionne, attend votre intervention, ou est terminée. La nouvelle session utilise le modèle affiché dans l'en-tête de la vue agent et le même [mode de permission](#permission-mode-model-and-effort) que vous obtiendriez en exécutant `claude` dans ce répertoire.

50 50 

51 Chaque invite que vous entrez ici démarre sa propre nouvelle session. Taper une autre invite et appuyer sur `Entrée` lance une deuxième session aux côtés de la première plutôt que d'envoyer un suivi à celle-ci. Vous pouvez en exécuter plusieurs en parallèle de cette façon.51 Chaque invite que vous entrez ici démarre sa propre nouvelle session. Taper une autre invite et appuyer sur `Entrée` lance une deuxième session aux côtés de la première plutôt que d'envoyer un suivi à celle-ci. Vous pouvez en exécuter plusieurs en parallèle de cette façon.

52 52 


74 74 

75La liste affiche chaque session en arrière-plan que vous avez démarrée, dans tous vos projets. Une session travaillant dans un référentiel et une autre dans une worktree différente apparaissent toutes les deux ici, quel que soit le répertoire à partir duquel vous avez ouvert la vue agent. Les sessions interactives que vous avez ouvertes dans d'autres terminaux n'apparaissent pas jusqu'à ce que vous les [mettiez en arrière-plan](#from-inside-a-session). Les [sous-agents](/fr/sub-agents) et les [coéquipiers](/fr/agent-teams) qu'une session génère ne sont pas répertoriés comme des lignes séparées.75La liste affiche chaque session en arrière-plan que vous avez démarrée, dans tous vos projets. Une session travaillant dans un référentiel et une autre dans une worktree différente apparaissent toutes les deux ici, quel que soit le répertoire à partir duquel vous avez ouvert la vue agent. Les sessions interactives que vous avez ouvertes dans d'autres terminaux n'apparaissent pas jusqu'à ce que vous les [mettiez en arrière-plan](#from-inside-a-session). Les [sous-agents](/fr/sub-agents) et les [coéquipiers](/fr/agent-teams) qu'une session génère ne sont pas répertoriés comme des lignes séparées.

76 76 

77Pour limiter la vue à un projet, lancez avec `claude agents --cwd <path>`. Seules les sessions démarrées sous ce répertoire apparaissent, y compris celles s'exécutant dans une [worktree](/fr/worktrees) lancée à partir de celui-ci.

78 

77```text theme={null}79```text theme={null}

78Épinglées80Épinglées

79 ✽ clawd walk cycle Write assets/sprites/clawd-walk.png 3m81 ✽ clawd walk cycle Write assets/sprites/clawd-walk.png 3m


285 287 

286### Définir le modèle288### Définir le modèle

287 289 

288Le nom du modèle affiché dans l'en-tête de la vue agent est la valeur par défaut du lancement. Les nouvelles sessions que vous démarrez à partir de l'entrée utilisent ce modèle, qui est le même paramètre que [`/model`](/fr/model-config) contrôle dans n'importe quelle session.290Le nom du modèle affiché dans l'en-tête de la vue agent est la valeur par défaut du lancement. Les nouvelles sessions que vous démarrez à partir de l'entrée utilisent ce modèle, qui est le même paramètre que [`/model`](/fr/model-config) contrôle dans n'importe quelle session. Pour le remplacer pour l'ensemble de la session de la vue agent, passez `--model` lors de l'ouverture de la vue agent. Voir [Mode de permission, modèle et effort](#permission-mode-model-and-effort).

289 291 

290Chaque session en arrière-plan peut s'exécuter sur un modèle différent. Pour le remplacer pour une session :292Chaque session en arrière-plan peut s'exécuter sur un modèle différent. Pour le remplacer pour une session :

291 293 


293* Attachez-vous à une session en cours d'exécution et exécutez `/model` là. Le changement persiste si la session est relancée.295* Attachez-vous à une session en cours d'exécution et exécutez `/model` là. Le changement persiste si la session est relancée.

294* Lancez un [sous-agent](/fr/sub-agents) dont le frontmatter définit un champ `model`.296* Lancez un [sous-agent](/fr/sub-agents) dont le frontmatter définit un champ `model`.

295 297 

296### Mode de permission et paramètres298### Mode de permission, modèle et effort

299 

300Une session lancée lit ses [paramètres](/fr/settings) à partir du répertoire dans lequel elle s'exécute, de la même manière que si vous aviez démarré `claude` là.

301 

302Le [mode de permission](/fr/permissions) dépend de la façon dont vous avez démarré la session. Mettre en arrière-plan une session existante avec `/bg` ou `←` conserve le mode de permission actuel, donc une session que vous avez basculée vers `acceptEdits` ou `auto` reste dans ce mode après détachement. Lancer à partir de l'entrée de la vue agent ou exécuter `claude --bg` depuis votre shell utilise le `defaultMode` à partir des paramètres de ce répertoire, ou le `permissionMode` à partir du [frontmatter du sous-agent lancé](/fr/sub-agents#supported-frontmatter-fields).

303 

304Pour définir les valeurs par défaut pour chaque session que vous lancez à partir de la vue agent, passez l'un de `--permission-mode`, `--model`, ou `--effort` lors de son ouverture :

305 

306```bash theme={null}

307claude agents --permission-mode plan --model opus --effort high

308```

309 

310<Note>

311 Passer `--permission-mode`, `--model`, ou `--effort` à `claude agents` nécessite Claude Code v2.1.142 ou ultérieur. Les versions antérieures rejettent ces drapeaux avec une erreur unknown-option.

312</Note>

297 313 

298Une session lancée lit ses [paramètres](/fr/settings) et son [mode de permission](/fr/permissions) à partir du répertoire dans lequel elle s'exécute, de la même manière que si vous aviez démarré `claude` là. Lancer à partir de l'entrée de la vue agent ne transmet pas un mode de permission, donc la session utilise le `defaultMode` à partir des paramètres de ce répertoire ou le `permissionMode` à partir du [frontmatter du sous-agent lancé](/fr/sub-agents#supported-frontmatter-fields).314Les valeurs par défaut actives apparaissent dans le pied de page sous l'entrée de lancement.

299 315 

300Pour définir le mode à partir du shell, passez `--permission-mode` avec `claude --bg`. Utiliser `bypassPermissions` ou `auto` de cette manière est refusé jusqu'à ce que vous ayez accepté ce mode en exécutant `claude` avec lui une fois de manière interactive, puisque ces modes permettent à une session que vous ne regardez pas d'agir sans approbation.316Sans ces drapeaux, la session utilise le `defaultMode` à partir des paramètres de ce répertoire ou le `permissionMode` à partir du [frontmatter du sous-agent lancé](/fr/sub-agents#supported-frontmatter-fields), et le modèle affiché dans l'en-tête de la vue agent.

317 

318Utiliser `bypassPermissions` ou `auto` est refusé jusqu'à ce que vous ayez accepté ce mode en exécutant `claude` avec lui une fois de manière interactive, puisque ces modes permettent à une session que vous ne regardez pas d'agir sans approbation. La même chose s'applique que vous passiez le mode à `claude agents` ou à `claude --bg --permission-mode`.

319 

320### Paramètres, plugins et serveurs MCP

321 

322La vue agent accepte les mêmes drapeaux de configuration que `claude` pour charger les paramètres, les plugins, les serveurs MCP et les répertoires supplémentaires. Chaque drapeau s'applique à la vue agent elle-même et est transmis à chaque session que vous lancez à partir de celle-ci, donc un plugin ou un serveur MCP que vous chargez de cette manière est disponible dans ces sessions aussi.

323 

324| Drapeau | Effet |

325| :----------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------ |

326| [`--settings <file-or-json>`](/fr/settings) | Remplacer les paramètres pour la vue agent et les sessions lancées |

327| [`--add-dir <path>`](/fr/permissions#additional-directories-grant-file-access-not-configuration) | Accorder l'accès aux fichiers à un répertoire supplémentaire |

328| [`--plugin-dir <path>`](/fr/plugins) | Charger un plugin à partir d'un répertoire local |

329| [`--mcp-config <file-or-json>`](/fr/mcp) | Charger les serveurs MCP à partir d'un fichier de configuration ou d'une chaîne JSON |

330| `--strict-mcp-config` | Utiliser uniquement les serveurs MCP de `--mcp-config`, en ignorant les autres configurations MCP |

331 

332Répétez `--add-dir`, `--plugin-dir`, ou `--mcp-config` une fois par valeur. La forme séparée par des espaces, comme `--add-dir a b c`, n'est pas prise en charge avec `claude agents`.

333 

334L'exemple suivant ouvre la vue agent avec un remplacement de paramètres et un répertoire supplémentaire :

335 

336```bash theme={null}

337claude agents --settings ./ci-settings.json --add-dir ../shared-lib

338```

301 339 

302## Gérer les sessions depuis le shell340## Gérer les sessions depuis le shell

303 341 

304Chaque session en arrière-plan a un ID court que vous pouvez utiliser depuis le shell. L'ID est affiché quand vous démarrez une session avec `claude --bg`, et l'ID de chaque session est son nom de répertoire sous `~/.claude/jobs/`. Ces commandes sont utiles pour les scripts ou quand vous ne voulez pas ouvrir la vue agent.342Chaque session en arrière-plan a un ID court que vous pouvez utiliser depuis le shell. L'ID est affiché quand vous démarrez une session avec `claude --bg`, et l'ID de chaque session est son nom de répertoire sous `~/.claude/jobs/`. Ces commandes sont utiles pour les scripts ou quand vous ne voulez pas ouvrir la vue agent.

305 343 

306| Commande | Objectif |344| Commande | Objectif |

307| :--------------------- | :-------------------------------------------------------------------------------------------------- |345| :--------------------- | :---------------------------------------------------------------------------------------------------------- |

308| `claude agents` | Ouvrir la vue agent |346| `claude agents` | Ouvrir la vue agent. Passez `--cwd <path>` pour lister uniquement les sessions démarrées sous ce répertoire |

309| `claude attach <id>` | S'attacher à une session dans ce terminal |347| `claude attach <id>` | S'attacher à une session dans ce terminal |

310| `claude logs <id>` | Afficher la sortie récente de la session |348| `claude logs <id>` | Afficher la sortie récente de la session |

311| `claude stop <id>` | Arrêter une session. Accepte aussi `claude kill` |349| `claude stop <id>` | Arrêter une session. Accepte aussi `claude kill` |

Details

170 170 

171Claude Code prend en charge l'actualisation automatique des identifiants pour AWS SSO et les fournisseurs d'identité d'entreprise. Ajoutez ces paramètres à votre fichier de paramètres Claude Code (voir [Paramètres](/fr/settings) pour les emplacements des fichiers).171Claude Code prend en charge l'actualisation automatique des identifiants pour AWS SSO et les fournisseurs d'identité d'entreprise. Ajoutez ces paramètres à votre fichier de paramètres Claude Code (voir [Paramètres](/fr/settings) pour les emplacements des fichiers).

172 172 

173Lorsque Claude Code détecte que vos identifiants AWS ont expiré (soit localement en fonction de leur horodatage, soit lorsque Bedrock retourne une erreur d'identifiants), il exécutera automatiquement vos commandes `awsAuthRefresh` et/ou `awsCredentialExport` configurées pour obtenir de nouveaux identifiants avant de réessayer la demande.173Ces deux paramètres ont des conditions de déclenchement différentes :

174 

175* **`awsAuthRefresh`** : s'exécute uniquement lorsque Claude Code détecte que vos identifiants AWS ont expiré, soit localement en fonction de leur horodatage, soit lorsque Bedrock retourne une erreur d'identifiants, puis réessaye la demande avec des identifiants actualisés.

176* **`awsCredentialExport`** : s'exécute au démarrage de la session et à chaque rechargement des identifiants, même lorsque les identifiants de votre chaîne de fournisseurs d'identifiants AWS par défaut sont toujours valides. Utilisez ceci lorsque votre compte Bedrock nécessite des identifiants inter-comptes qui diffèrent de ceux que la chaîne de fournisseurs par défaut résoudrait.

174 177 

175##### Exemple de configuration178##### Exemple de configuration

176 179 


187 190 

188**`awsAuthRefresh`** : Utilisez ceci pour les commandes qui modifient le répertoire `.aws`, comme la mise à jour des identifiants, du cache SSO ou des fichiers de configuration. La sortie de la commande s'affiche à l'utilisateur, mais l'entrée interactive n'est pas prise en charge. Cela fonctionne bien pour les flux SSO basés sur un navigateur où l'interface de ligne de commande affiche une URL ou un code et vous complétez l'authentification dans le navigateur.191**`awsAuthRefresh`** : Utilisez ceci pour les commandes qui modifient le répertoire `.aws`, comme la mise à jour des identifiants, du cache SSO ou des fichiers de configuration. La sortie de la commande s'affiche à l'utilisateur, mais l'entrée interactive n'est pas prise en charge. Cela fonctionne bien pour les flux SSO basés sur un navigateur où l'interface de ligne de commande affiche une URL ou un code et vous complétez l'authentification dans le navigateur.

189 192 

190**`awsCredentialExport`** : Utilisez ceci uniquement si vous ne pouvez pas modifier `.aws` et devez retourner directement les identifiants. La sortie est capturée silencieusement et non affichée à l'utilisateur. La commande doit générer du JSON dans ce format :193**`awsCredentialExport`** : Utilisez ceci uniquement si vous ne pouvez pas modifier `.aws` et devez retourner directement les identifiants. Cette commande s'exécute chaque fois que les identifiants doivent être actualisés, pas seulement lorsque les identifiants ont expiré. La sortie est capturée silencieusement et non affichée à l'utilisateur. La commande doit générer du JSON dans ce format :

191 194 

192```json theme={null}195```json theme={null}

193{196{

best-practices.md +21 −27

Details

52 Séparez la recherche et la planification de l'implémentation pour éviter de résoudre le mauvais problème.52 Séparez la recherche et la planification de l'implémentation pour éviter de résoudre le mauvais problème.

53</Tip>53</Tip>

54 54 

55Laisser Claude sauter directement au codage peut produire du code qui résout le mauvais problème. Utilisez [Plan Mode](/fr/common-workflows#use-plan-mode-for-safe-code-analysis) pour séparer l'exploration de l'exécution.55Laisser Claude sauter directement au codage peut produire du code qui résout le mauvais problème. Utilisez [plan mode](/fr/permission-modes#analyze-before-you-edit-with-plan-mode) pour séparer l'exploration de l'exécution.

56 56 

57Le flux de travail recommandé comporte quatre phases :57Le flux de travail recommandé comporte quatre phases :

58 58 

59<Steps>59<Steps>

60 <Step title="Explorez">60 <Step title="Explorez">

61 Entrez en Plan Mode. Claude lit les fichiers et répond aux questions sans apporter de modifications.61 Entrez en plan mode. Claude lit les fichiers et répond aux questions sans apporter de modifications.

62 62 

63 ```txt claude (Plan Mode) theme={null}63 ```txt claude (plan mode) theme={null}

64 read /src/auth and understand how we handle sessions and login.64 read /src/auth and understand how we handle sessions and login.

65 also look at how we manage environment variables for secrets.65 also look at how we manage environment variables for secrets.

66 ```66 ```


69 <Step title="Planifiez">69 <Step title="Planifiez">

70 Demandez à Claude de créer un plan d'implémentation détaillé.70 Demandez à Claude de créer un plan d'implémentation détaillé.

71 71 

72 ```txt claude (Plan Mode) theme={null}72 ```txt claude (plan mode) theme={null}

73 I want to add Google OAuth. What files need to change?73 I want to add Google OAuth. What files need to change?

74 What's the session flow? Create a plan.74 What's the session flow? Create a plan.

75 ```75 ```


78 </Step>78 </Step>

79 79 

80 <Step title="Implémentez">80 <Step title="Implémentez">

81 Revenez au Mode Normal et laissez Claude coder, en vérifiant par rapport à son plan.81 Quittez le plan mode et laissez Claude coder, en vérifiant par rapport à son plan.

82 82 

83 ```txt claude (Normal Mode) theme={null}83 ```txt claude (default mode) theme={null}

84 implement the OAuth flow from your plan. write tests for the84 implement the OAuth flow from your plan. write tests for the

85 callback handler, run the test suite and fix any failures.85 callback handler, run the test suite and fix any failures.

86 ```86 ```


89 <Step title="Validez">89 <Step title="Validez">

90 Demandez à Claude de valider avec un message descriptif et de créer une PR.90 Demandez à Claude de valider avec un message descriptif et de créer une PR.

91 91 

92 ```txt claude (Normal Mode) theme={null}92 ```txt claude (default mode) theme={null}

93 commit with a descriptive message and open a PR93 commit with a descriptive message and open a PR

94 ```94 ```

95 </Step>95 </Step>

96</Steps>96</Steps>

97 97 

98<Callout>98<Callout>

99 Plan Mode est utile, mais ajoute également des frais généraux.99 Plan mode est utile, mais ajoute également des frais généraux.

100 100 

101 Pour les tâches où la portée est claire et la correction est petite (comme corriger une faute de frappe, ajouter une ligne de journal ou renommer une variable), demandez à Claude de le faire directement.101 Pour les tâches où la portée est claire et la correction est petite (comme corriger une faute de frappe, ajouter une ligne de journal ou renommer une variable), demandez à Claude de le faire directement.

102 102 


396* Utilisez `/clear` fréquemment entre les tâches pour réinitialiser complètement la fenêtre de contexte396* Utilisez `/clear` fréquemment entre les tâches pour réinitialiser complètement la fenêtre de contexte

397* Lorsque le compactage automatique se déclenche, Claude résume ce qui importe le plus, y compris les modèles de code, les états de fichiers et les décisions clés397* Lorsque le compactage automatique se déclenche, Claude résume ce qui importe le plus, y compris les modèles de code, les états de fichiers et les décisions clés

398* Pour plus de contrôle, exécutez `/compact <instructions>`, comme `/compact Focus on the API changes`398* Pour plus de contrôle, exécutez `/compact <instructions>`, comme `/compact Focus on the API changes`

399* Pour compacter uniquement une partie de la conversation, utilisez `Esc + Esc` ou `/rewind`, sélectionnez un point de contrôle de message et choisissez **Summarize from here**. Cela condense les messages à partir de ce point tout en gardant le contexte antérieur intact.399* Pour compacter uniquement une partie de la conversation, utilisez `Esc + Esc` ou `/rewind`, sélectionnez un point de contrôle de message et choisissez **Summarize from here** ou **Summarize up to here**. Le premier condense les messages à partir de ce point tout en gardant le contexte antérieur intact ; le second condense les messages antérieurs tout en gardant les messages récents en intégralité. Consultez [Restore vs. summarize](/fr/checkpointing#restore-vs-summarize).

400* Personnalisez le comportement de compactage dans CLAUDE.md avec des instructions comme `« Lors du compactage, toujours préserver la liste complète des fichiers modifiés et toutes les commandes de test »` pour assurer que le contexte critique survit à la résumé400* Personnalisez le comportement de compactage dans CLAUDE.md avec des instructions comme `« Lors du compactage, toujours préserver la liste complète des fichiers modifiés et toutes les commandes de test »` pour assurer que le contexte critique survit à la résumé

401* Pour les questions rapides qui n'ont pas besoin de rester en contexte, utilisez [`/btw`](/fr/interactive-mode#side-questions-with-btw). La réponse apparaît dans une superposition rejetable et n'entre jamais dans l'historique de conversation, vous pouvez donc vérifier un détail sans augmenter le contexte.401* Pour les questions rapides qui n'ont pas besoin de rester en contexte, utilisez [`/btw`](/fr/interactive-mode#side-questions-with-%2Fbtw). La réponse apparaît dans une superposition rejetable et n'entre jamais dans l'historique de conversation, vous pouvez donc vérifier un détail sans augmenter le contexte.

402 402 

403### Utilisez les subagents pour l'investigation403### Utilisez les subagents pour l'investigation

404 404 


424### Rembobinez avec des points de contrôle424### Rembobinez avec des points de contrôle

425 425 

426<Tip>426<Tip>

427 Chaque action que Claude fait crée un point de contrôle. Vous pouvez restaurer la conversation, le code ou les deux à n'importe quel point de contrôle précédent.427 Chaque invite que vous envoyez crée un point de contrôle. Vous pouvez restaurer la conversation, le code ou les deux à n'importe quel point de contrôle précédent.

428</Tip>428</Tip>

429 429 

430Claude crée automatiquement des points de contrôle avant les modifications. Appuyez deux fois sur `Escape` ou exécutez `/rewind` pour ouvrir le menu de rembobinage. Vous pouvez restaurer la conversation uniquement, restaurer le code uniquement, restaurer les deux ou résumer à partir d'un message sélectionné. Consultez [Checkpointing](/fr/checkpointing) pour plus de détails.430Claude crée automatiquement des instantanés de fichiers avant chaque modification afin qu'un point de contrôle puisse les restaurer. Appuyez deux fois sur `Escape` ou exécutez `/rewind` pour ouvrir le menu de rembobinage. Vous pouvez restaurer la conversation uniquement, restaurer le code uniquement, restaurer les deux ou résumer à partir d'un message sélectionné. Consultez [Checkpointing](/fr/checkpointing) pour plus de détails.

431 431 

432Au lieu de planifier soigneusement chaque mouvement, vous pouvez dire à Claude d'essayer quelque chose de risqué. Si cela ne fonctionne pas, rembobinez et essayez une approche différente. Les points de contrôle persistent entre les sessions, vous pouvez donc fermer votre terminal et toujours rembobiner plus tard.432Au lieu de planifier soigneusement chaque mouvement, vous pouvez dire à Claude d'essayer quelque chose de risqué. Si cela ne fonctionne pas, rembobinez et essayez une approche différente. Les points de contrôle persistent entre les sessions, vous pouvez donc fermer votre terminal et toujours rembobiner plus tard.

433 433 


438### Reprenez les conversations438### Reprenez les conversations

439 439 

440<Tip>440<Tip>

441 Exécutez `claude --continue` pour reprendre vous vous êtes arrêté, ou `--resume` pour choisir parmi les sessions récentes.441 Nommez les sessions avec `/rename` et traitez-les comme des branches : chaque flux de travail obtient son propre contexte persistant.

442</Tip>442</Tip>

443 443 

444Claude Code enregistre les conversations localement. Lorsqu'une tâche s'étend sur plusieurs sessions, vous n'avez pas à réexpliquer le contexte :444Claude Code enregistre les conversations localement, donc lorsqu'une tâche s'étend sur plusieurs sessions, vous n'avez pas à réexpliquer le contexte. Exécutez `claude --continue` pour reprendre la session la plus récente, ou `claude --resume` pour choisir parmi une liste. Donnez aux sessions des noms descriptifs comme `oauth-migration` afin de pouvoir les trouver plus tard. Consultez [Manage sessions](/fr/sessions) pour l'ensemble complet des contrôles de reprise, de branchement et de nommage.

445 

446```bash theme={null}

447claude --continue # Resume the most recent conversation

448claude --resume # Select from recent conversations

449```

450 

451Utilisez `/rename` pour donner aux sessions des noms descriptifs comme `« oauth-migration »` ou `« debugging-memory-leak »` pour pouvoir les trouver plus tard. Traitez les sessions comme des branches : différents flux de travail peuvent avoir des contextes séparés et persistants.

452 445 

453***446***

454 447 


464 Utilisez `claude -p "prompt"` dans CI, les hooks de pré-commit ou les scripts. Ajoutez `--output-format stream-json` pour la sortie JSON en streaming.457 Utilisez `claude -p "prompt"` dans CI, les hooks de pré-commit ou les scripts. Ajoutez `--output-format stream-json` pour la sortie JSON en streaming.

465</Tip>458</Tip>

466 459 

467Avec `claude -p "your prompt"`, vous pouvez exécuter Claude de manière non interactive, sans session. Le mode non interactif est la façon dont vous intégrez Claude dans les pipelines CI, les hooks de pré-commit ou tout flux de travail automatisé. Les formats de sortie vous permettent d'analyser les résultats par programmation : texte brut, JSON ou JSON en streaming.460Avec `claude -p "your prompt"`, vous pouvez exécuter Claude de manière non interactive, sans session. Le [mode non interactif](/fr/headless) est la façon dont vous intégrez Claude dans les pipelines CI, les hooks de pré-commit ou tout flux de travail automatisé. Les formats de sortie vous permettent d'analyser les résultats par programmation : texte brut, JSON ou JSON en streaming.

468 461 

469```bash theme={null}462```bash theme={null}

470# One-off queries463# One-off queries


483 Exécutez plusieurs sessions Claude en parallèle pour accélérer le développement, exécuter des expériences isolées ou démarrer des flux de travail complexes.476 Exécutez plusieurs sessions Claude en parallèle pour accélérer le développement, exécuter des expériences isolées ou démarrer des flux de travail complexes.

484</Tip>477</Tip>

485 478 

486Il y a trois façons principales d'exécuter des sessions parallèles :479Choisissez l'approche parallèle qui correspond au niveau de coordination que vous souhaitez faire vous-même :

487 480 

488* [Application de bureau Claude Code](/fr/desktop#work-in-parallel-with-sessions) : Gérez visuellement plusieurs sessions locales. Chaque session obtient son propre worktree isolé.481* [Worktrees](/fr/worktrees) : exécutez des sessions CLI séparées dans des checkouts git isolés afin que les modifications ne se heurtent pas

489* [Claude Code sur le web](/fr/claude-code-on-the-web) : Exécutez sur l'infrastructure cloud sécurisée d'Anthropic dans des VM isolées.482* [Application de bureau](/fr/desktop#work-in-parallel-with-sessions) : gérez visuellement plusieurs sessions locales, chacune dans son propre worktree

490* [Équipes d'agents](/fr/agent-teams) : Coordination automatisée de plusieurs sessions avec des tâches partagées, la messagerie et un chef d'équipe.483* [Claude Code sur le web](/fr/claude-code-on-the-web) : exécutez des sessions sur l'infrastructure cloud gérée par Anthropic dans des VM isolées

484* [Équipes d'agents](/fr/agent-teams) : coordination automatisée de plusieurs sessions avec des tâches partagées, la messagerie et un chef d'équipe

491 485 

492Au-delà de la parallélisation du travail, plusieurs sessions permettent des flux de travail axés sur la qualité. Un contexte frais améliore la révision de code puisque Claude ne sera pas biaisé vers le code qu'il vient d'écrire.486Au-delà de la parallélisation du travail, plusieurs sessions permettent des flux de travail axés sur la qualité. Un contexte frais améliore la révision de code puisque Claude ne sera pas biaisé vers le code qu'il vient d'écrire.

493 487 


538 532 

539### Exécutez de manière autonome avec le mode auto533### Exécutez de manière autonome avec le mode auto

540 534 

541Pour une exécution ininterrompue avec des vérifications de sécurité en arrière-plan, utilisez [mode auto](/fr/permission-modes#eliminate-prompts-with-auto-mode). Un modèle classificateur examine les commandes avant qu'elles ne s'exécutent, bloquant l'escalade de portée, l'infrastructure inconnue et les actions motivées par du contenu hostile tout en laissant le travail de routine se dérouler sans invites.535Pour une exécution ininterrompue avec des vérifications de sécurité en arrière-plan, utilisez le [mode auto](/fr/permission-modes#eliminate-prompts-with-auto-mode). Un modèle classificateur examine les commandes avant qu'elles ne s'exécutent, bloquant l'escalade de portée, l'infrastructure inconnue et les actions motivées par du contenu hostile tout en laissant le travail de routine se dérouler sans invites.

542 536 

543```bash theme={null}537```bash theme={null}

544claude --permission-mode auto -p "fix all lint errors"538claude --permission-mode auto -p "fix all lint errors"

checkpointing.md +10 −9

Details

28* **Restaurer la conversation** : rembobiner jusqu'à ce message tout en conservant le code actuel28* **Restaurer la conversation** : rembobiner jusqu'à ce message tout en conservant le code actuel

29* **Restaurer le code** : annuler les modifications de fichiers tout en conservant la conversation29* **Restaurer le code** : annuler les modifications de fichiers tout en conservant la conversation

30* **Résumer à partir d'ici** : compresser la conversation à partir de ce moment en avant dans un résumé, libérant de l'espace de context window30* **Résumer à partir d'ici** : compresser la conversation à partir de ce moment en avant dans un résumé, libérant de l'espace de context window

31* **Résumer jusqu'à ici** : compresser la conversation avant ce moment dans un résumé, en conservant les messages ultérieurs intacts

31* **Annuler** : revenir à la liste des messages sans apporter de modifications32* **Annuler** : revenir à la liste des messages sans apporter de modifications

32 33 

33Après la restauration de la conversation ou la résumé, l'invite originale du message sélectionné est restaurée dans le champ de saisie afin que vous puissiez la renvoyer ou la modifier.34Après la restauration de la conversation ou le choix de Résumer à partir d'ici, l'invite originale du message sélectionné est restaurée dans le champ de saisie afin que vous puissiez la renvoyer ou la modifier.

35 

36Le choix de Résumer jusqu'à ici vous laisse à la fin de la conversation avec le champ de saisie vide.

34 37 

35#### Restaurer vs. résumer38#### Restaurer vs. résumer

36 39 

37Les trois options de restauration annulent l'état : elles annulent les modifications de code, l'historique de conversation, ou les deux. « Résumer à partir d'ici » fonctionne différemment :40Les options de restauration annulent l'état : elles annulent les modifications de code, l'historique de conversation, ou les deux. Les options de résumé compriment une partie de la conversation dans un résumé généré par l'IA sans modifier les fichiers sur le disque :

38 41 

39* Les messages avant le message sélectionné restent intacts42* **Résumer à partir d'ici** : les messages avant le message sélectionné restent intacts. Le message sélectionné et tout ce qui suit sont remplacés par un résumé. Utilisez ceci pour abandonner une discussion secondaire tout en conservant le contexte initial en détail complet.

40* Le message sélectionné et tous les messages suivants sont remplacés par un résumé compact généré par l'IA43* **Résumer jusqu'à ici** : les messages avant le message sélectionné sont remplacés par un résumé. Le message sélectionné et tout ce qui suit restent intacts, et vous restez à la fin de la conversation. Utilisez ceci pour compresser la discussion de configuration initiale tout en conservant le travail récent en détail complet.

41* Aucun fichier sur le disque n'est modifié

42* Les messages originaux sont conservés dans la transcription de session, afin que Claude puisse référencer les détails si nécessaire

43 44 

44C'est similaire à `/compact`, mais ciblé : au lieu de résumer l'ensemble de la conversation, vous conservez le contexte initial en détail complet et ne compressez que les parties qui utilisent de l'espace. Vous pouvez taper des instructions optionnelles pour guider sur quoi le résumé se concentre.45Dans les deux cas, les messages originaux sont conservés dans la transcription de session, afin que Claude puisse référencer les détails si nécessaire. Vous pouvez taper des instructions optionnelles pour guider sur quoi le résumé se concentre. C'est similaire à `/compact`, mais ciblé : au lieu de résumer l'ensemble de la conversation, vous choisissez quel côté du message sélectionné compresser.

45 46 

46<Note>47<Note>

47 Résumer vous garde dans la même session et compresse le contexte. Si vous souhaitez vous brancher et essayer une approche différente tout en préservant la session originale intacte, utilisez plutôt [fork](/fr/how-claude-code-works#resume-or-fork-sessions) (`claude --continue --fork-session`).48 Résumer vous garde dans la même session et compresse le contexte. Si vous souhaitez vous brancher et essayer une approche différente tout en préservant la session originale intacte, utilisez plutôt [fork](/fr/sessions#branch-a-session) (`claude --continue --fork-session`).

48</Note>49</Note>

49 50 

50## Cas d'usage courants51## Cas d'usage courants


85## Voir aussi86## Voir aussi

86 87 

87* [Mode interactif](/fr/interactive-mode) - Raccourcis clavier et contrôles de session88* [Mode interactif](/fr/interactive-mode) - Raccourcis clavier et contrôles de session

88* [Commandes intégrées](/fr/commands) - Accès aux checkpoints en utilisant `/rewind`89* [Commandes](/fr/commands) - Accès aux checkpoints en utilisant `/rewind`

89* [Référence CLI](/fr/cli-reference) - Options de ligne de commande90* [Référence CLI](/fr/cli-reference) - Options de ligne de commande

Details

782 782 

783### Session Remote Control expirée ou accès refusé783### Session Remote Control expirée ou accès refusé

784 784 

785`--teleport` se connecte via la même infrastructure de session Remote Control que les sessions cloud, donc les erreurs d'authentification et d'expiration de session apparaissent avec la terminologie Remote Control. Vous pouvez voir `Remote Control session has expired` ou `Access denied`. Le jeton de connexion est de courte durée et limité à votre compte.785`--teleport` se connecte via la même infrastructure de session Remote Control que les sessions cloud, donc les erreurs d'authentification et d'expiration de session apparaissent avec la terminologie Remote Control. Vous pouvez voir `Remote Control session expired` ou `Access denied`. Le jeton de connexion est de courte durée et limité à votre compte.

786 786 

787* Exécutez `/login` localement pour actualiser vos identifiants, puis reconnectez-vous787* Exécutez `/login` localement pour actualiser vos identifiants, puis reconnectez-vous

788* Confirmez que vous êtes connecté au même compte qui possède la session788* Confirmez que vous êtes connecté au même compte qui possède la session

Details

24| `claude auth login` | Se connecter à votre compte Anthropic. Utilisez `--email` pour pré-remplir votre adresse e-mail, `--sso` pour forcer l'authentification SSO, et `--console` pour vous connecter avec Anthropic Console pour la facturation de l'utilisation de l'API au lieu d'un abonnement Claude | `claude auth login --console` |24| `claude auth login` | Se connecter à votre compte Anthropic. Utilisez `--email` pour pré-remplir votre adresse e-mail, `--sso` pour forcer l'authentification SSO, et `--console` pour vous connecter avec Anthropic Console pour la facturation de l'utilisation de l'API au lieu d'un abonnement Claude | `claude auth login --console` |

25| `claude auth logout` | Se déconnecter de votre compte Anthropic | `claude auth logout` |25| `claude auth logout` | Se déconnecter de votre compte Anthropic | `claude auth logout` |

26| `claude auth status` | Afficher l'état d'authentification en JSON. Utilisez `--text` pour une sortie lisible par l'homme. Quitte avec le code 0 si connecté, 1 sinon | `claude auth status` |26| `claude auth status` | Afficher l'état d'authentification en JSON. Utilisez `--text` pour une sortie lisible par l'homme. Quitte avec le code 0 si connecté, 1 sinon | `claude auth status` |

27| `claude agents` | Ouvrir la [vue agent](/fr/agent-view) pour surveiller et dispatcher les sessions d'arrière-plan parallèles. Lorsque la sortie est canalisée, liste les [sous-agents](/fr/sub-agents) configurés à la place | `claude agents` |27| `claude agents` | Ouvrir la [vue agent](/fr/agent-view) pour surveiller et dispatcher les sessions d'arrière-plan parallèles. Utilisez `--cwd <path>` pour afficher uniquement les sessions démarrées sous ce répertoire | `claude agents` |

28| `claude attach <id>` | Attacher à une [session d'arrière-plan](/fr/agent-view#manage-sessions-from-the-shell) dans ce terminal | `claude attach 7c5dcf5d` |28| `claude attach <id>` | Attacher à une [session d'arrière-plan](/fr/agent-view#manage-sessions-from-the-shell) dans ce terminal | `claude attach 7c5dcf5d` |

29| `claude auto-mode defaults` | Imprimer les règles du classificateur [mode auto](/fr/permission-modes#eliminate-prompts-with-auto-mode) intégrées en JSON. Utilisez `claude auto-mode config` pour voir votre configuration effective avec les paramètres appliqués | `claude auto-mode defaults > rules.json` |29| `claude auto-mode defaults` | Imprimer les règles du classificateur [mode auto](/fr/permission-modes#eliminate-prompts-with-auto-mode) intégrées en JSON. Utilisez `claude auto-mode config` pour voir votre configuration effective avec les paramètres appliqués | `claude auto-mode defaults > rules.json` |

30| `claude logs <id>` | Imprimer la sortie récente d'une [session d'arrière-plan](/fr/agent-view#manage-sessions-from-the-shell) | `claude logs 7c5dcf5d` |30| `claude logs <id>` | Imprimer la sortie récente d'une [session d'arrière-plan](/fr/agent-view#manage-sessions-from-the-shell) | `claude logs 7c5dcf5d` |

commands.md +1 −1

Details

26 26 

27**Entre les sessions.** `/clear` démarre une nouvelle tâche tout en conservant la mémoire du projet. `/resume` et `/branch` vous permettent de revenir à ou de forker une conversation antérieure. `/teleport` extrait une session web dans ce terminal, et `/remote-control` vous permet de continuer cette session locale depuis un autre appareil.27**Entre les sessions.** `/clear` démarre une nouvelle tâche tout en conservant la mémoire du projet. `/resume` et `/branch` vous permettent de revenir à ou de forker une conversation antérieure. `/teleport` extrait une session web dans ce terminal, et `/remote-control` vous permet de continuer cette session locale depuis un autre appareil.

28 28 

29**Quand quelque chose ne va pas.** `/rewind` ramène le code et la conversation à un point de contrôle. `/doctor` et `/debug` diagnostiquent les problèmes d'installation et d'exécution, et `/feedback` signale un bug avec le contexte de la session joint.29**Quand quelque chose ne va pas.** `/rewind` ramène le code et la conversation à un point de contrôle, ou résume une partie de la conversation. `/doctor` et `/debug` diagnostiquent les problèmes d'installation et d'exécution, et `/feedback` signale un bug avec le contexte de la session joint.

30 30 

31## Toutes les commandes31## Toutes les commandes

32 32 

desktop.md +5 −2

Details

148 148 

149### Exécuter les commandes dans le terminal149### Exécuter les commandes dans le terminal

150 150 

151Le terminal intégré vous permet d'exécuter les commandes aux côtés de votre session sans basculer vers une autre application. Ouvrez-le à partir du menu **Vues** ou appuyez sur **Ctrl+\`** sur macOS ou Windows. Le terminal s'ouvre dans le répertoire de travail de votre session et partage le même environnement que Claude, donc les commandes comme `npm test` ou `git status` voient les mêmes fichiers que Claude édite. Le terminal est disponible dans les sessions locales uniquement.151Le terminal intégré vous permet d'exécuter les commandes aux côtés de votre session sans basculer vers une autre application. Ouvrez-le à partir du menu **Vues** ou appuyez sur **Ctrl+\`** sur macOS ou Windows. Le terminal s'ouvre dans le répertoire de travail de votre session et partage le même environnement que Claude, donc les commandes comme `npm test` ou `git status` voient les mêmes fichiers que Claude édite. Pour ouvrir un deuxième onglet de terminal, cliquez sur **+** dans l'en-tête du volet de terminal ou cliquez avec le bouton droit sur un dossier dans le chat pour choisir **Ouvrir dans le terminal**. Le terminal est disponible dans les sessions locales uniquement.

152 152 

153### Ouvrir et modifier les fichiers153### Ouvrir et modifier les fichiers

154 154 


296 296 

297Utilisez les contrôles en haut de la barre latérale pour filtrer les sessions par statut, projet ou environnement, et pour grouper les sessions par projet. Pour renommer une session, cliquez sur le titre de la session dans la barre d'outils en haut de la session active. Pour vérifier l'utilisation du contexte, voir [Vérifier l'utilisation](#check-usage). Quand le contexte se remplit, Claude résume automatiquement la conversation et continue de travailler. Vous pouvez également taper `/compact` pour déclencher la compaction plus tôt et libérer de l'espace de contexte. Voir [la fenêtre de contexte](/fr/how-claude-code-works#the-context-window) pour les détails sur le fonctionnement de la compaction.297Utilisez les contrôles en haut de la barre latérale pour filtrer les sessions par statut, projet ou environnement, et pour grouper les sessions par projet. Pour renommer une session, cliquez sur le titre de la session dans la barre d'outils en haut de la session active. Pour vérifier l'utilisation du contexte, voir [Vérifier l'utilisation](#check-usage). Quand le contexte se remplit, Claude résume automatiquement la conversation et continue de travailler. Vous pouvez également taper `/compact` pour déclencher la compaction plus tôt et libérer de l'espace de contexte. Voir [la fenêtre de contexte](/fr/how-claude-code-works#the-context-window) pour les détails sur le fonctionnement de la compaction.

298 298 

299L'application de bureau envoie une notification du système d'exploitation quand une session Code termine une tâche et que vous ne visualisez pas actuellement cette session.

300 

299### Poser une question latérale sans dérailler la session301### Poser une question latérale sans dérailler la session

300 302 

301Un chat latéral vous permet de poser une question à Claude qui utilise le contexte de votre session mais n'ajoute rien à la conversation principale. Utilisez-le quand vous voulez comprendre un morceau de code, vérifier une hypothèse ou explorer une idée sans détourner la session de son cours.303Un chat latéral vous permet de poser une question à Claude qui utilise le contexte de votre session mais n'ajoute rien à la conversation principale. Utilisez-le quand vous voulez comprendre un morceau de code, vérifier une hypothèse ou explorer une idée sans détourner la session de son cours.


598Les paramètres gérés remplacent les paramètres du projet et de l'utilisateur et s'appliquent quand Desktop génère des sessions CLI. Vous pouvez définir ces clés dans le fichier [paramètres gérés](/fr/settings#settings-precedence) de votre organisation ou les pousser à distance via la console d'administration.600Les paramètres gérés remplacent les paramètres du projet et de l'utilisateur et s'appliquent quand Desktop génère des sessions CLI. Vous pouvez définir ces clés dans le fichier [paramètres gérés](/fr/settings#settings-precedence) de votre organisation ou les pousser à distance via la console d'administration.

599 601 

600| Clé | Description |602| Clé | Description |

601| ------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |603| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

602| `permissions.disableBypassPermissionsMode` | définissez sur `"disable"` pour empêcher les utilisateurs d'activer le mode de contournement des permissions. |604| `permissions.disableBypassPermissionsMode` | définissez sur `"disable"` pour empêcher les utilisateurs d'activer le mode de contournement des permissions. |

603| `disableAutoMode` | définissez sur `"disable"` pour empêcher les utilisateurs d'activer le mode [Auto](/fr/permission-modes#eliminate-prompts-with-auto-mode). Supprime Auto du sélecteur de mode. Également accepté sous `permissions`. |605| `disableAutoMode` | définissez sur `"disable"` pour empêcher les utilisateurs d'activer le mode [Auto](/fr/permission-modes#eliminate-prompts-with-auto-mode). Supprime Auto du sélecteur de mode. Également accepté sous `permissions`. |

604| `autoMode` | personnalisez ce que le classificateur du mode auto fait confiance et bloque dans votre organisation. Voir [Configurer le mode auto](/fr/auto-mode-config). |606| `autoMode` | personnalisez ce que le classificateur du mode auto fait confiance et bloque dans votre organisation. Voir [Configurer le mode auto](/fr/auto-mode-config). |

605| `sshConfigs` | pré-configurez les [connexions SSH](#pre-configure-ssh-connections-for-your-team) qui apparaissent dans la liste déroulante de l'environnement. Les utilisateurs ne peuvent pas modifier ou supprimer les connexions gérées. |607| `sshConfigs` | pré-configurez les [connexions SSH](#pre-configure-ssh-connections-for-your-team) qui apparaissent dans la liste déroulante de l'environnement. Les utilisateurs ne peuvent pas modifier ou supprimer les connexions gérées. |

606| `sshHostAllowlist` | restreignez les [sessions SSH](#restrict-which-ssh-hosts-users-can-connect-to) aux hôtes dont le nom d'hôte résolu correspond à l'un de ces modèles. Un tableau vide désactive les sessions SSH. Lecture à partir des paramètres gérés uniquement. |608| `sshHostAllowlist` | restreignez les [sessions SSH](#restrict-which-ssh-hosts-users-can-connect-to) aux hôtes dont le nom d'hôte résolu correspond à l'un de ces modèles. Un tableau vide désactive les sessions SSH. Lecture à partir des paramètres gérés uniquement. |

609| `managedMcpServers` | poussez les configurations du serveur MCP à tous les utilisateurs dans un déploiement tiers. Chaque entrée spécifie un transport de `"http"`, `"sse"` ou `"stdio"`, les détails de connexion et optionnellement une carte `toolPolicy` qui restreint les outils de ce serveur que les utilisateurs peuvent invoquer. Disponible dans les déploiements Desktop tiers (3P) uniquement. |

607 610 

608Un fichier de paramètres gérés déployé sur le disque de chaque machine s'applique aux sessions Desktop. Les paramètres gérés poussés à distance via la console d'administration atteignent actuellement uniquement les sessions CLI et IDE, donc pour les déploiements Desktop, distribuez le fichier via MDM ou utilisez les [contrôles de la console d'administration](#admin-console-controls) ci-dessus.611Un fichier de paramètres gérés déployé sur le disque de chaque machine s'applique aux sessions Desktop. Les paramètres gérés poussés à distance via la console d'administration atteignent actuellement uniquement les sessions CLI et IDE, donc pour les déploiements Desktop, distribuez le fichier via MDM ou utilisez les [contrôles de la console d'administration](#admin-console-controls) ci-dessus.

609 612 

desktop-scheduled-tasks.md +106 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Planifier des tâches récurrentes dans Claude Code Desktop

6 

7> Configurez des tâches planifiées dans Claude Code Desktop pour exécuter Claude automatiquement de manière récurrente pour les révisions de code quotidiennes, les audits de dépendances ou les briefings matinaux.

8 

9Les tâches planifiées démarrent une nouvelle session automatiquement à une heure et une fréquence que vous choisissez. Utilisez-les pour les travaux récurrents comme les révisions de code quotidiennes, les vérifications de mises à jour de dépendances ou les briefings matinaux qui extraient des données de votre calendrier et de votre boîte de réception.

10 

11La page **Routines** de l'application Desktop vous permet de créer à la fois des tâches planifiées locales et des [routines](/fr/routines) distantes. Une tâche locale s'exécute sur votre machine avec un accès direct à vos fichiers et outils, mais ne s'active que lorsque l'application est ouverte et que votre ordinateur est actif. Une routine distante s'exécute sur l'infrastructure cloud gérée par Anthropic même lorsque votre ordinateur est éteint, et peut également s'activer lors d'appels API ou d'événements GitHub. Cette page couvre les tâches planifiées locales ; pour les routines distantes et leurs options de déclenchement, consultez [Routines](/fr/routines).

12 

13## Comparer les options de planification

14 

15Claude Code offers three ways to schedule recurring or one-off work:

16 

17| | [Cloud](/en/routines) | [Desktop](/en/desktop-scheduled-tasks) | [`/loop`](/en/scheduled-tasks) |

18| :------------------------- | :----------------------------- | :------------------------------------- | :---------------------------------- |

19| Runs on | Anthropic cloud | Your machine | Your machine |

20| Requires machine on | No | Yes | Yes |

21| Requires open session | No | No | Yes |

22| Persistent across restarts | Yes | Yes | Restored on `--resume` if unexpired |

23| Access to local files | No (fresh clone) | Yes | Yes |

24| MCP servers | Connectors configured per task | [Config files](/en/mcp) and connectors | Inherits from session |

25| Permission prompts | No (runs autonomously) | Configurable per task | Inherits from session |

26| Customizable schedule | Via `/schedule` in the CLI | Yes | Yes |

27| Minimum interval | 1 hour | 1 minute | 1 minute |

28 

29<Tip>

30 Use **cloud tasks** for work that should run reliably without your machine. Use **Desktop tasks** when you need access to local files and tools. Use **`/loop`** for quick polling during a session.

31</Tip>

32 

33<Note>

34 Par défaut, les tâches planifiées s'exécutent sur l'état actuel de votre répertoire de travail, y compris les modifications non validées. Activez le bouton bascule worktree lors de la création de la tâche pour donner à chaque exécution son propre worktree Git isolé, de la même manière que les [sessions parallèles](/fr/desktop#work-in-parallel-with-sessions) fonctionnent.

35</Note>

36 

37## Créer une tâche planifiée

38 

39Cliquez sur **Routines** dans la barre latérale, puis cliquez sur **New routine** et choisissez **Local**. Configurez ces champs :

40 

41| Champ | Description |

42| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

43| Name | Identifiant de la tâche. Converti en minuscules kebab-case et utilisé comme nom de dossier sur le disque. Doit être unique parmi vos tâches. |

44| Description | Résumé court affiché dans la liste des tâches. |

45| Instructions | Ce que Claude doit faire lorsque la tâche s'exécute. Écrivez ceci de la même manière que vous écriviriez n'importe quel message dans la boîte de prompt. L'entrée des instructions inclut des sélecteurs pour le mode de permission et le modèle, et en dessous vous sélectionnez le dossier de travail et si vous souhaitez exécuter dans un worktree isolé. |

46| Schedule | Fréquence d'exécution de la tâche. Voir [options de planification](#schedule-options) ci-dessous. |

47 

48Un dossier est requis avant de pouvoir enregistrer la tâche. Si vous n'avez pas encore approuvé ce dossier, Desktop vous invite à l'approuver avant d'enregistrer.

49 

50Vous pouvez également créer une tâche en décrivant ce que vous souhaitez dans n'importe quelle session. Par exemple, « configurer une révision de code quotidienne qui s'exécute chaque matin à 9h » crée une tâche récurrente, et « rappelle-moi à 15h demain de vérifier le déploiement » crée une tâche unique qui se désactive après son exécution.

51 

52## Options de planification

53 

54Choisissez un préréglage dans le contrôle Schedule :

55 

56* **Manual** : pas de planification, s'exécute uniquement lorsque vous cliquez sur **Run now**. Utile pour enregistrer un prompt que vous déclenchez à la demande

57* **Hourly** : s'exécute toutes les heures

58* **Daily** : affiche un sélecteur d'heure, par défaut 9h00 heure locale

59* **Weekdays** : identique à Daily mais ignore samedi et dimanche

60* **Weekly** : affiche un sélecteur d'heure et un sélecteur de jour

61 

62Pour les intervalles que le sélecteur n'offre pas, comme toutes les 15 minutes, le premier de chaque mois ou une exécution unique à un moment futur spécifique, demandez à Claude dans n'importe quelle session Desktop de définir la planification. Utilisez le langage naturel ; par exemple, « planifier une tâche pour exécuter tous les tests toutes les 6 heures ».

63 

64## Comment les tâches planifiées s'exécutent

65 

66Les tâches planifiées s'exécutent sur votre machine. Desktop vérifie la planification chaque minute lorsque l'application est ouverte et démarre une nouvelle session lorsqu'une tâche est due, indépendamment de toute session manuelle que vous avez ouverte. Chaque tâche reçoit un petit délai de quelques minutes après l'heure planifiée pour échelonner le trafic API. Le délai est déterministe : la même tâche démarre toujours au même décalage.

67 

68Lorsqu'une tâche s'active, vous recevez une notification de bureau et une nouvelle session apparaît sous une section **Scheduled** dans la barre latérale. Ouvrez-la pour voir ce que Claude a fait, examiner les modifications ou répondre aux invites de permission. La session fonctionne comme n'importe quelle autre : Claude peut modifier des fichiers, exécuter des commandes, créer des commits et ouvrir des pull requests.

69 

70Les tâches ne s'exécutent que lorsque l'application de bureau est en cours d'exécution et que votre ordinateur est actif. Si votre ordinateur se met en veille à une heure planifiée, l'exécution est ignorée. Pour empêcher la mise en veille inactive, activez **Keep computer awake** dans Paramètres sous **Desktop app → General**. Fermer le couvercle de l'ordinateur portable le met toujours en veille. Pour les tâches qui doivent s'exécuter même lorsque votre ordinateur est éteint, ou qui doivent être déclenchées par un appel API ou un événement GitHub, créez plutôt une [routine](/fr/routines) distante.

71 

72## Exécutions manquées

73 

74Lorsque l'application démarre ou que votre ordinateur se réveille, Desktop vérifie si chaque tâche a manqué des exécutions au cours des sept derniers jours. Si c'est le cas, Desktop démarre exactement une exécution de rattrapage pour l'heure la plus récemment manquée et rejette tout ce qui est plus ancien. Une tâche quotidienne qui a manqué six jours s'exécute une fois au réveil. Desktop affiche une notification lorsqu'une exécution de rattrapage démarre.

75 

76Gardez cela à l'esprit lors de la rédaction de prompts. Une tâche planifiée pour 9h peut s'exécuter à 23h si votre ordinateur était en veille toute la journée. Si le timing est important, ajoutez des garde-fous au prompt lui-même, par exemple : « Examinez uniquement les commits d'aujourd'hui. S'il est après 17h, ignorez la révision et publiez simplement un résumé de ce qui a été manqué. »

77 

78## Permissions pour les tâches planifiées

79 

80Chaque tâche a son propre mode de permission, que vous définissez lors de la création ou de la modification de la tâche. Les règles d'autorisation de `~/.claude/settings.json` s'appliquent également aux sessions de tâches planifiées. Si une tâche s'exécute en mode Ask et doit exécuter un outil pour lequel elle n'a pas de permission, l'exécution s'arrête jusqu'à ce que vous l'approuviez. La session reste ouverte dans la barre latérale pour que vous puissiez répondre plus tard.

81 

82Pour éviter les arrêts, cliquez sur **Run now** après avoir créé une tâche, surveillez les invites de permission et sélectionnez « always allow » pour chacune. Les exécutions futures de cette tâche approuvent automatiquement les mêmes outils sans demander. Vous pouvez examiner et révoquer ces approbations à partir de la page de détail de la tâche.

83 

84## Gérer les tâches planifiées

85 

86Cliquez sur une tâche dans la liste **Routines** pour ouvrir sa page de détail. À partir de là, vous pouvez :

87 

88* **Run now** : démarrer la tâche immédiatement sans attendre l'heure planifiée suivante

89* **Status** : basculer entre Active et Paused pour mettre en pause ou reprendre les exécutions planifiées sans supprimer la tâche

90* **Edit** : modifier les instructions, la planification, le dossier ou d'autres paramètres

91* **Review history** : voir chaque exécution passée, y compris les exécutions ignorées. Survolez une entrée ignorée pour voir pourquoi : votre ordinateur était en veille, l'exécution précédente était toujours en cours ou d'autres tâches planifiées s'exécutaient déjà. Cliquez sur **Show more** pour charger les entrées plus anciennes.

92* **Review allowed permissions** : voir et révoquer les approbations d'outils enregistrées pour cette tâche à partir du panneau **Always allowed**

93* **Delete** : supprimer la tâche et archiver toutes les sessions qu'elle a créées. Une case à cocher **Also delete files on disk** apparaît dans la boîte de dialogue de confirmation ; cochez-la pour supprimer également le fichier `SKILL.md` de la tâche et les données associées de `~/.claude/scheduled-tasks/`.

94 

95Vous pouvez également lister, créer, modifier et mettre en pause des tâches en demandant à Claude dans n'importe quelle session Desktop. Par exemple, « pause my dependency-audit task » ou « show me my scheduled tasks ». Pour supprimer une tâche, utilisez le bouton **Delete** sur sa page de détail.

96 

97Une tâche planifiée peut également modifier sa propre planification ou son prompt depuis une session en cours d'exécution à l'aide de l'outil MCP `update_scheduled_task`. Cela permet à une tâche de se replanifier en fonction de ce qu'elle trouve, par exemple, replanifier une révision de code pour s'exécuter plus tôt lorsqu'elle détecte qu'une branche de version a été créée.

98 

99Pour modifier le prompt d'une tâche sur le disque, ouvrez `~/.claude/scheduled-tasks/<task-name>/SKILL.md` (ou sous [`CLAUDE_CONFIG_DIR`](/fr/env-vars) si défini). Le fichier utilise le frontmatter YAML pour `name` et `description`, avec le prompt comme corps. Les modifications prennent effet à la prochaine exécution. La planification, le dossier, le modèle et l'état activé ne sont pas dans ce fichier : modifiez-les via le formulaire Edit ou demandez à Claude.

100 

101## Ressources connexes

102 

103* [Routines](/fr/routines) : exécuter des tâches sur l'infrastructure gérée par Anthropic selon un calendrier, via un appel API ou en réponse à des événements GitHub, même lorsque votre ordinateur est éteint

104* [Run prompts on a schedule](/fr/scheduled-tasks) : planification au niveau de la session avec `/loop` dans la CLI

105* [Claude Code GitHub Actions](/fr/github-actions) : exécuter Claude selon un calendrier dans CI au lieu de sur votre machine

106* [Use Claude Code Desktop](/fr/desktop) : le guide complet de l'application Desktop

env-vars.md +3 −1

Details

45| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | Remplacer la région AWS pour le modèle de classe Haiku lors de l'utilisation de Bedrock ou Bedrock Mantle |45| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | Remplacer la région AWS pour le modèle de classe Haiku lors de l'utilisation de Bedrock ou Bedrock Mantle |

46| `ANTHROPIC_VERTEX_BASE_URL` | Remplacer l'URL du point de terminaison Vertex AI. À utiliser pour les points de terminaison Vertex personnalisés ou lors du routage via une [passerelle LLM](/fr/llm-gateway). Voir [Google Vertex AI](/fr/google-vertex-ai) |46| `ANTHROPIC_VERTEX_BASE_URL` | Remplacer l'URL du point de terminaison Vertex AI. À utiliser pour les points de terminaison Vertex personnalisés ou lors du routage via une [passerelle LLM](/fr/llm-gateway). Voir [Google Vertex AI](/fr/google-vertex-ai) |

47| `ANTHROPIC_VERTEX_PROJECT_ID` | ID de projet GCP pour les requêtes Vertex AI. Remplacé par `GCLOUD_PROJECT`, `GOOGLE_CLOUD_PROJECT` ou le projet dans votre fichier d'identifiants `GOOGLE_APPLICATION_CREDENTIALS`. Voir [Google Vertex AI](/fr/google-vertex-ai) |47| `ANTHROPIC_VERTEX_PROJECT_ID` | ID de projet GCP pour les requêtes Vertex AI. Remplacé par `GCLOUD_PROJECT`, `GOOGLE_CLOUD_PROJECT` ou le projet dans votre fichier d'identifiants `GOOGLE_APPLICATION_CREDENTIALS`. Voir [Google Vertex AI](/fr/google-vertex-ai) |

48| `ANTHROPIC_WORKSPACE_ID` | ID d'espace de travail pour la [fédération d'identité de charge de travail](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Définissez ceci lorsque votre règle de fédération est limitée à plus d'un espace de travail pour que l'échange de jetons sache quel espace de travail cibler |

48| `API_TIMEOUT_MS` | Délai d'expiration pour les requêtes API en millisecondes (par défaut : 600 000, ou 10 minutes ; maximum : 2 147 483 647). Augmentez ceci lorsque les requêtes expirent sur les réseaux lents ou lors du routage via un proxy. Les valeurs au-dessus du maximum dépassent le minuteur sous-jacent et provoquent l'échec immédiat des requêtes |49| `API_TIMEOUT_MS` | Délai d'expiration pour les requêtes API en millisecondes (par défaut : 600 000, ou 10 minutes ; maximum : 2 147 483 647). Augmentez ceci lorsque les requêtes expirent sur les réseaux lents ou lors du routage via un proxy. Les valeurs au-dessus du maximum dépassent le minuteur sous-jacent et provoquent l'échec immédiat des requêtes |

49| `AWS_BEARER_TOKEN_BEDROCK` | Clé API Bedrock pour l'authentification (voir [Clés API Bedrock](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |50| `AWS_BEARER_TOKEN_BEDROCK` | Clé API Bedrock pour l'authentification (voir [Clés API Bedrock](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |

50| `BASH_DEFAULT_TIMEOUT_MS` | Délai d'expiration par défaut pour les commandes bash longues (par défaut : 120 000, ou 2 minutes) |51| `BASH_DEFAULT_TIMEOUT_MS` | Délai d'expiration par défaut pour les commandes bash longues (par défaut : 120 000, ou 2 minutes) |


138| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Remplacer le répertoire racine des plugins. Malgré le nom, ceci définit le répertoire parent, pas le cache lui-même : les places de marché et le cache des plugins se trouvent dans des sous-répertoires sous ce chemin. Par défaut `~/.claude/plugins` |139| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Remplacer le répertoire racine des plugins. Malgré le nom, ceci définit le répertoire parent, pas le cache lui-même : les places de marché et le cache des plugins se trouvent dans des sous-répertoires sous ce chemin. Par défaut `~/.claude/plugins` |

139| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Délai d'expiration en millisecondes pour les opérations git lors de l'installation ou de la mise à jour des plugins (par défaut : 120 000). Augmentez cette valeur pour les grands référentiels ou les connexions réseau lentes. Voir [Les opérations Git expirent](/fr/plugin-marketplaces#git-operations-time-out) |140| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Délai d'expiration en millisecondes pour les opérations git lors de l'installation ou de la mise à jour des plugins (par défaut : 120 000). Augmentez cette valeur pour les grands référentiels ou les connexions réseau lentes. Voir [Les opérations Git expirent](/fr/plugin-marketplaces#git-operations-time-out) |

140| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Définissez sur `1` pour conserver le cache de la place de marché existante lorsqu'un `git pull` échoue au lieu de l'effacer et de le re-cloner. Utile dans les environnements hors ligne ou isolés où le re-clonage échouerait de la même manière. Voir [Les mises à jour de la place de marché échouent dans les environnements hors ligne](/fr/plugin-marketplaces#marketplace-updates-fail-in-offline-environments) |141| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Définissez sur `1` pour conserver le cache de la place de marché existante lorsqu'un `git pull` échoue au lieu de l'effacer et de le re-cloner. Utile dans les environnements hors ligne ou isolés où le re-clonage échouerait de la même manière. Voir [Les mises à jour de la place de marché échouent dans les environnements hors ligne](/fr/plugin-marketplaces#marketplace-updates-fail-in-offline-environments) |

142| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Définissez sur `1` pour cloner les sources de plugin GitHub `owner/repo` sur HTTPS au lieu de SSH. Utile dans les exécuteurs CI, les conteneurs ou tout environnement sans clé SSH configurée pour `github.com` |

141| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Chemin d'accès à un ou plusieurs répertoires de seed de plugins en lecture seule, séparés par `:` sur Unix ou `;` sur Windows. Utilisez ceci pour regrouper un répertoire de plugins pré-rempli dans une image de conteneur. Claude Code enregistre les places de marché à partir de ces répertoires au démarrage et utilise les plugins pré-mis en cache sans re-cloner. Voir [Pré-remplir les plugins pour les conteneurs](/fr/plugin-marketplaces#pre-populate-plugins-for-containers) |143| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Chemin d'accès à un ou plusieurs répertoires de seed de plugins en lecture seule, séparés par `:` sur Unix ou `;` sur Windows. Utilisez ceci pour regrouper un répertoire de plugins pré-rempli dans une image de conteneur. Claude Code enregistre les places de marché à partir de ces répertoires au démarrage et utilise les plugins pré-mis en cache sans re-cloner. Voir [Pré-remplir les plugins pour les conteneurs](/fr/plugin-marketplaces#pre-populate-plugins-for-containers) |

142| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | Défini par les plates-formes hôtes qui intègrent Claude Code et gèrent le routage du fournisseur de modèles en son nom. Lorsqu'elle est définie, la sélection du fournisseur, le point de terminaison et les variables d'authentification telles que `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL` et `ANTHROPIC_API_KEY` dans les fichiers de paramètres sont ignorés pour que les paramètres utilisateur ne puissent pas remplacer le routage de l'hôte. L'opt-out automatique de la télémétrie pour Bedrock, Vertex et Foundry est également ignoré, de sorte que la télémétrie suit l'opt-out standard `DISABLE_TELEMETRY`. Voir [Comportements par défaut par fournisseur API](/fr/data-usage#default-behaviors-by-api-provider) |144| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | Défini par les plates-formes hôtes qui intègrent Claude Code et gèrent le routage du fournisseur de modèles en son nom. Lorsqu'elle est définie, la sélection du fournisseur, le point de terminaison et les variables d'authentification telles que `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL` et `ANTHROPIC_API_KEY` dans les fichiers de paramètres sont ignorés pour que les paramètres utilisateur ne puissent pas remplacer le routage de l'hôte. L'opt-out automatique de la télémétrie pour Bedrock, Vertex et Foundry est également ignoré, de sorte que la télémétrie suit l'opt-out standard `DISABLE_TELEMETRY`. Voir [Comportements par défaut par fournisseur API](/fr/data-usage#default-behaviors-by-api-provider) |

143| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | Définissez sur `1` pour permettre au proxy d'effectuer la résolution DNS au lieu de l'appelant. Opt-in pour les environnements où le proxy doit gérer la résolution du nom d'hôte |145| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | Définissez sur `1` pour permettre au proxy d'effectuer la résolution DNS au lieu de l'appelant. Opt-in pour les environnements où le proxy doit gérer la résolution du nom d'hôte |


152| `CLAUDE_CODE_SHELL` | Remplacer la détection automatique du shell. Utile lorsque votre shell de connexion diffère de votre shell de travail préféré (par exemple, `bash` vs `zsh`) |154| `CLAUDE_CODE_SHELL` | Remplacer la détection automatique du shell. Utile lorsque votre shell de connexion diffère de votre shell de travail préféré (par exemple, `bash` vs `zsh`) |

153| `CLAUDE_CODE_SHELL_PREFIX` | Préfixe de commande pour envelopper les commandes shell que Claude Code génère : appels d'outil Bash, commandes [hook](/fr/hooks) et commandes de démarrage du serveur MCP [stdio](/fr/mcp). Utile pour la journalisation ou l'audit. Exemple : la définition de `/path/to/logger.sh` exécute chaque commande en tant que `/path/to/logger.sh <command>` |155| `CLAUDE_CODE_SHELL_PREFIX` | Préfixe de commande pour envelopper les commandes shell que Claude Code génère : appels d'outil Bash, commandes [hook](/fr/hooks) et commandes de démarrage du serveur MCP [stdio](/fr/mcp). Utile pour la journalisation ou l'audit. Exemple : la définition de `/path/to/logger.sh` exécute chaque commande en tant que `/path/to/logger.sh <command>` |

154| `CLAUDE_CODE_SIMPLE` | Définissez sur `1` pour exécuter avec une invite système minimale et uniquement les outils Bash, lecture de fichier et édition de fichier. Les outils MCP de `--mcp-config` sont toujours disponibles. Désactive la découverte automatique des hooks, skills, plugins, serveurs MCP, mémoire automatique et CLAUDE.md. L'indicateur CLI [`--bare`](/fr/headless#start-faster-with-bare-mode) définit ceci |156| `CLAUDE_CODE_SIMPLE` | Définissez sur `1` pour exécuter avec une invite système minimale et uniquement les outils Bash, lecture de fichier et édition de fichier. Les outils MCP de `--mcp-config` sont toujours disponibles. Désactive la découverte automatique des hooks, skills, plugins, serveurs MCP, mémoire automatique et CLAUDE.md. L'indicateur CLI [`--bare`](/fr/headless#start-faster-with-bare-mode) définit ceci |

155| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Définissez sur `1` pour utiliser l'invite système minimale et les descriptions d'outils réduites sur Opus 4.7. N'a aucun effet sur les autres modèles. L'ensemble complet d'outils, les hooks, les serveurs MCP et la découverte CLAUDE.md restent activés |157| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Définissez sur `1` pour utiliser l'invite système minimale et les descriptions d'outils réduites sur n'importe quel modèle. Définissez sur `0`, `false`, `no` ou `off` pour refuser même sur les modèles où l'expérience ou la configuration du serveur l'activerait autrement. L'ensemble complet d'outils, les hooks, les serveurs MCP et la découverte CLAUDE.md restent activés |

156| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | Ignorer l'authentification côté client pour [Claude Platform on AWS](/fr/claude-platform-on-aws), pour les passerelles qui signent les requêtes elles-mêmes |158| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | Ignorer l'authentification côté client pour [Claude Platform on AWS](/fr/claude-platform-on-aws), pour les passerelles qui signent les requêtes elles-mêmes |

157| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Ignorer l'authentification AWS pour Bedrock (par exemple, lors de l'utilisation d'une passerelle LLM) |159| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Ignorer l'authentification AWS pour Bedrock (par exemple, lors de l'utilisation d'une passerelle LLM) |

158| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Ignorer l'authentification Azure pour Microsoft Foundry (par exemple, lors de l'utilisation d'une passerelle LLM) |160| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Ignorer l'authentification Azure pour Microsoft Foundry (par exemple, lors de l'utilisation d'une passerelle LLM) |

Details

156 156 

157### Utilisation de skills157### Utilisation de skills

158 158 

159L'entrée `prompt` accepte une [invocation de skill](/fr/skills) ainsi que du texte brut :

160 

161* Pour un skill dans le répertoire `.claude/skills/` de votre référentiel, exécutez `actions/checkout` avant l'étape d'action et passez `/skill-name`.

162* Pour un skill empaqueté dans un plugin, installez le plugin avec les entrées `plugin_marketplaces` et `plugins` et passez le `/plugin-name:skill-name` avec espace de noms.

163 

164Le flux de travail suivant installe le plugin `code-review` et exécute son skill sur chaque pull request nouvelle ou mise à jour :

165 

159```yaml theme={null}166```yaml theme={null}

160name: Code Review167name: Code Review

161on:168on:


168 - uses: anthropics/claude-code-action@v1175 - uses: anthropics/claude-code-action@v1

169 with:176 with:

170 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}177 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

171 prompt: "Review this pull request for code quality, correctness, and security. Analyze the diff, then post your findings as review comments."178 plugin_marketplaces: "https://github.com/anthropics/claude-code.git"

172 claude_args: "--max-turns 5"179 plugins: "code-review@claude-code-plugins"

180 prompt: "/code-review:code-review ${{ github.repository }}/pull/${{ github.event.pull_request.number }}"

173```181```

174 182 

175### Automatisation personnalisée avec prompts183### Automatisation personnalisée avec prompts


622Claude Code Action v1 utilise une configuration simplifiée :630Claude Code Action v1 utilise une configuration simplifiée :

623 631 

624| Paramètre | Description | Requis |632| Paramètre | Description | Requis |

625| ------------------- | ---------------------------------------------------------------------- | ------- |633| --------------------- | -------------------------------------------------------------------------------------- | ------- |

626| `prompt` | Instructions pour Claude (texte brut ou un nom de [skill](/fr/skills)) | Non\* |634| `prompt` | Instructions pour Claude (texte brut ou un nom de [skill](/fr/skills)) | Non\* |

627| `claude_args` | Arguments CLI passés à Claude Code | Non |635| `claude_args` | Arguments CLI passés à Claude Code | Non |

636| `plugin_marketplaces` | Liste séparée par des sauts de ligne des URL Git des places de marché de plugins | Non |

637| `plugins` | Liste séparée par des sauts de ligne des noms de plugins à installer avant l'exécution | Non |

628| `anthropic_api_key` | Clé API Claude | Oui\*\* |638| `anthropic_api_key` | Clé API Claude | Oui\*\* |

629| `github_token` | Token GitHub pour l'accès API | Non |639| `github_token` | Token GitHub pour l'accès API | Non |

630| `trigger_phrase` | Phrase de déclenchement personnalisée (par défaut : « @claude ») | Non |640| `trigger_phrase` | Phrase de déclenchement personnalisée (par défaut : « @claude ») | Non |

631| `use_bedrock` | Utiliser AWS Bedrock au lieu de l'API Claude | Non |641| `use_bedrock` | Utiliser Amazon Bedrock au lieu de l'API Claude | Non |

632| `use_vertex` | Utiliser Google Vertex AI au lieu de l'API Claude | Non |642| `use_vertex` | Utiliser Google Vertex AI au lieu de l'API Claude | Non |

633 643 

634\*Le prompt est optionnel - lorsqu'il est omis pour les commentaires d'issue/PR, Claude répond à la phrase de déclenchement\644\*Le prompt est optionnel - lorsqu'il est omis pour les commentaires d'issue/PR, Claude répond à la phrase de déclenchement\

glossary.md +1 −1

Details

70 70 

71### Checkpoint71### Checkpoint

72 72 

73Un instantané automatique de votre code capturé avant chaque modification que Claude apporte. Appuyez sur `Esc` deux fois ou exécutez `/rewind` pour restaurer le code, la conversation ou les deux à un point antérieur. Les checkpoints sont locaux à la session, séparés de git, et ne suivent pas les modifications apportées via l'outil Bash.73Un point de restauration créé à chaque invite que vous envoyez. Claude Code crée des instantanés des fichiers avant chaque modification afin qu'un checkpoint puisse les restaurer. Appuyez sur `Esc` deux fois ou exécutez `/rewind` pour restaurer le code, la conversation ou les deux à un point antérieur, ou pour résumer une partie de la conversation à partir d'un message sélectionné. Les checkpoints sont locaux à la session, séparés de git, et ne suivent pas les modifications apportées via l'outil Bash.

74 74 

75En savoir plus : [Checkpointing](/fr/checkpointing)75En savoir plus : [Checkpointing](/fr/checkpointing)

76 76 

goal.md +1 −1

Details

108 108 

109### Exécuter de manière non-interactive109### Exécuter de manière non-interactive

110 110 

111`/goal` fonctionne en [mode non-interactive](/fr/headless) et via [Remote Control](/fr/remote-control). Définir un objectif avec `-p` exécute la boucle jusqu'à l'achèvement en une seule invocation :111`/goal` fonctionne en [mode non-interactive](/fr/headless), dans l'[application de bureau](/fr/desktop), et via [Remote Control](/fr/remote-control). Définir un objectif avec `-p` exécute la boucle jusqu'à l'achèvement en une seule invocation :

112 112 

113```bash theme={null}113```bash theme={null}

114claude -p "/goal CHANGELOG.md has an entry for every PR merged this week"114claude -p "/goal CHANGELOG.md has an entry for every PR merged this week"

hooks.md +46 −6

Details

297| :-------------- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |297| :-------------- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

298| `type` | oui | `"command"`, `"http"`, `"mcp_tool"`, `"prompt"` ou `"agent"` |298| `type` | oui | `"command"`, `"http"`, `"mcp_tool"`, `"prompt"` ou `"agent"` |

299| `if` | non | Syntaxe de règle de permission pour filtrer quand ce hook s'exécute, comme `"Bash(git *)"` ou `"Edit(*.ts)"`. Le hook ne s'exécute que si l'appel d'outil correspond au modèle, ou si une commande Bash est trop complexe à analyser. Évalué uniquement sur les événements d'outil : `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest` et `PermissionDenied`. Sur les autres événements, un hook avec `if` défini ne s'exécute jamais. Utilise la même syntaxe que les [règles de permission](/fr/permissions) |299| `if` | non | Syntaxe de règle de permission pour filtrer quand ce hook s'exécute, comme `"Bash(git *)"` ou `"Edit(*.ts)"`. Le hook ne s'exécute que si l'appel d'outil correspond au modèle, ou si une commande Bash est trop complexe à analyser. Évalué uniquement sur les événements d'outil : `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest` et `PermissionDenied`. Sur les autres événements, un hook avec `if` défini ne s'exécute jamais. Utilise la même syntaxe que les [règles de permission](/fr/permissions) |

300| `timeout` | non | Secondes avant annulation. Valeurs par défaut : 600 pour command, 30 pour prompt, 60 pour agent |300| `timeout` | non | Secondes avant annulation. Valeurs par défaut : 600 pour `command`, `http` et `mcp_tool` ; 30 pour `prompt` ; 60 pour `agent`. [`UserPromptSubmit`](#userpromptsubmit) abaisse la valeur par défaut de `command`, `http` et `mcp_tool` à 30 |

301| `statusMessage` | non | Message de spinner personnalisé affiché pendant l'exécution du hook |301| `statusMessage` | non | Message de spinner personnalisé affiché pendant l'exécution du hook |

302| `once` | non | Si `true`, s'exécute une seule fois par session puis est supprimé. Honoré uniquement pour les hooks déclarés dans le [frontmatter des skills](#hooks-in-skills-and-agents) ; ignoré dans les fichiers de paramètres et le frontmatter des agents |302| `once` | non | Si `true`, s'exécute une seule fois par session puis est supprimé. Honoré uniquement pour les hooks déclarés dans le [frontmatter des skills](#hooks-in-skills-and-agents) ; ignoré dans les fichiers de paramètres et le frontmatter des agents |

303 303 


558 558 

559Les hooks de commande reçoivent les données JSON via stdin et communiquent les résultats via les codes de sortie, stdout et stderr. Les hooks HTTP reçoivent le même JSON que le corps de la requête POST et communiquent les résultats via le corps de la réponse HTTP. Cette section couvre les champs et le comportement communs à tous les événements. Chaque section d'événement sous [Événements de hook](#hook-events) inclut son schéma d'entrée spécifique et les options de contrôle de décision.559Les hooks de commande reçoivent les données JSON via stdin et communiquent les résultats via les codes de sortie, stdout et stderr. Les hooks HTTP reçoivent le même JSON que le corps de la requête POST et communiquent les résultats via le corps de la réponse HTTP. Cette section couvre les champs et le comportement communs à tous les événements. Chaque section d'événement sous [Événements de hook](#hook-events) inclut son schéma d'entrée spécifique et les options de contrôle de décision.

560 560 

561Sur macOS et Linux, les hooks de commande s'exécutent dans leur propre session sans terminal de contrôle à partir de v2.1.139. Le processus de hook et tous les processus enfants ne peuvent pas ouvrir `/dev/tty` ou envoyer des séquences d'échappement directement à l'interface Claude Code. Windows n'a pas de `/dev/tty`. Pour afficher un message à l'utilisateur sur n'importe quelle plateforme, retournez [`systemMessage`](#json-output) dans la sortie JSON. Pour déclencher une notification de bureau, définir un titre de fenêtre ou sonner la cloche, retournez [`terminalSequence`](#emit-terminal-notifications) à la place.

562 

561### Champs d'entrée communs563### Champs d'entrée communs

562 564 

563Les événements de hook reçoivent ces champs en JSON, en plus des champs spécifiques à l'événement documentés dans chaque section [événement de hook](#hook-events). Pour les hooks de commande, ce JSON arrive via stdin. Pour les hooks HTTP, il arrive dans le corps de la requête POST.565Les événements de hook reçoivent ces champs en JSON, en plus des champs spécifiques à l'événement documentés dans chaque section [événement de hook](#hook-events). Pour les hooks de commande, ce JSON arrive via stdin. Pour les hooks HTTP, il arrive dans le corps de la requête POST.


694* **`hookSpecificOutput`** est un objet imbriqué pour les événements qui ont besoin d'un contrôle plus riche. Il nécessite un champ `hookEventName` défini au nom de l'événement.696* **`hookSpecificOutput`** est un objet imbriqué pour les événements qui ont besoin d'un contrôle plus riche. Il nécessite un champ `hookEventName` défini au nom de l'événement.

695 697 

696| Champ | Par défaut | Description |698| Champ | Par défaut | Description |

697| :--------------- | :--------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- |699| :----------------- | :--------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

698| `continue` | `true` | Si `false`, Claude arrête complètement le traitement après l'exécution du hook. Prend précédence sur tous les champs de décision spécifiques à l'événement |700| `continue` | `true` | Si `false`, Claude arrête complètement le traitement après l'exécution du hook. Prend précédence sur tous les champs de décision spécifiques à l'événement |

699| `stopReason` | aucun | Message affiché à l'utilisateur lorsque `continue` est `false`. Non affiché à Claude |701| `stopReason` | aucun | Message affiché à l'utilisateur lorsque `continue` est `false`. Non affiché à Claude |

700| `suppressOutput` | `false` | Si `true`, masque stdout de la sortie du journal de débogage |702| `suppressOutput` | `false` | Si `true`, masque stdout de la sortie du journal de débogage |

701| `systemMessage` | aucun | Message d'avertissement affiché à l'utilisateur |703| `systemMessage` | aucun | Message d'avertissement affiché à l'utilisateur |

704| `terminalSequence` | aucun | Une séquence d'échappement de terminal pour Claude Code d'émettre en votre nom, comme une notification de bureau, un titre de fenêtre ou une cloche. Restreint aux OSC `0`/`1`/`2`/`9`/`99`/`777` et BEL. Si la valeur contient quelque chose en dehors de la liste blanche, le champ est ignoré. Utilisez ceci au lieu d'écrire sur `/dev/tty`, qui n'est pas disponible pour les hooks |

702 705 

703Pour arrêter Claude entièrement indépendamment du type d'événement :706Pour arrêter Claude entièrement indépendamment du type d'événement :

704 707 


706{ "continue": false, "stopReason": "Build failed, fix errors before continuing" }709{ "continue": false, "stopReason": "Build failed, fix errors before continuing" }

707```710```

708 711 

712#### Émettre des notifications de terminal

713 

714Le champ `terminalSequence` nécessite Claude Code v2.1.141 ou ultérieur.

715 

716Les hooks s'exécutent sans terminal de contrôle, donc écrire des séquences d'échappement directement sur `/dev/tty` échoue. À la place, retournez la séquence d'échappement dans le champ `terminalSequence` et Claude Code l'émet pour vous via son propre chemin d'écriture de terminal. C'est sans course, fonctionne à l'intérieur de tmux et GNU screen, et fonctionne sur Windows où il n'y a pas de `/dev/tty`.

717 

718Le champ accepte une chaîne d'une ou plusieurs séquences d'échappement en liste blanche :

719 

720* OSC `0`, `1`, `2` : titres de fenêtre et d'icône

721* OSC `9` : notifications iTerm2, ConEmu, Windows Terminal et WezTerm, y compris la progression de la barre des tâches `9;4`

722* OSC `99` : notifications Kitty

723* OSC `777` : notifications urxvt, Ghostty et Warp

724* BEL nu

725 

726Les séquences peuvent être terminées avec BEL ou avec ST. Tout ce qui est en dehors de la liste blanche, y compris les séquences de curseur CSI et les séquences de couleur, les séquences de palette OSC, les hyperliens OSC 8, les écritures de presse-papiers OSC 52 et OSC 1337, est rejeté et le champ est ignoré.

727 

728L'exemple ci-dessous déclenche une notification de bureau à partir d'un hook `Notification`. La séquence d'échappement est construite avec des échappements octaux `printf` afin que les octets de contrôle n'apparaissent jamais sur la ligne de commande shell, et `jq -n --arg` construit la sortie JSON afin que les guillemets, les barres obliques inverses et les sauts de ligne dans le message de notification soient correctement échappés :

729 

730```bash theme={null}

731#!/bin/bash

732# Hook de notification : ping le bureau lorsque Claude Code a besoin d'attention.

733input=$(cat)

734title="Claude Code'

735body=$(jq -r '.message // "Needs your attention"' <<<"$input")

736seq=$(printf '\033]777;notify;%s;%s\007' "$title" "$body")

737jq -nc --arg seq "$seq" '{terminalSequence: $seq}'

738```

739 

740La forme `{ "terminalSequence": "..." }` est la même à partir de n'importe quel shell ou langage. Sur Windows, construisez la chaîne d'échappement dans PowerShell ou un script et émettez le même objet JSON.

741 

742<Note>

743 `terminalSequence` est le remplacement pris en charge pour les hooks qui écrivaient précédemment des séquences d'échappement directement sur `/dev/tty`. La liste blanche est restreinte aux séquences qui ne peuvent pas déplacer le curseur ou modifier les couleurs, afin qu'un hook ne puisse jamais corrompre une invite à l'écran.

744</Note>

745 

709#### Ajouter du contexte pour Claude746#### Ajouter du contexte pour Claude

710 747 

711Le champ `additionalContext` transmet une chaîne de votre hook dans la fenêtre de contexte de Claude. Claude Code enveloppe la chaîne dans un rappel système et l'insère dans la conversation au point où le hook s'est déclenché. Claude lit le rappel lors de la prochaine demande du modèle, mais il n'apparaît pas comme un message de chat dans l'interface.748Le champ `additionalContext` transmet une chaîne de votre hook dans la fenêtre de contexte de Claude. Claude Code enveloppe la chaîne dans un rappel système et l'insère dans la conversation au point où le hook s'est déclenché. Claude lit le rappel lors de la prochaine demande du modèle, mais il n'apparaît pas comme un message de chat dans l'interface.


989 1026 

990S'exécute lorsque l'utilisateur soumet un prompt, avant que Claude ne le traite. Cela vous permet d'ajouter du contexte supplémentaire basé sur le prompt/conversation, de valider les prompts ou de bloquer certains types de prompts.1027S'exécute lorsque l'utilisateur soumet un prompt, avant que Claude ne le traite. Cela vous permet d'ajouter du contexte supplémentaire basé sur le prompt/conversation, de valider les prompts ou de bloquer certains types de prompts.

991 1028 

1029Les hooks `UserPromptSubmit` ont un délai d'expiration par défaut de 30 secondes pour les types `command`, `http` et `mcp_tool`, plus court que le délai par défaut de 600 secondes pour ces types sur d'autres événements. Parce que ce hook s'exécute avant chaque prompt et bloque le traitement du modèle jusqu'à son achèvement, un hook bloqué paralyse la session. Si votre hook a besoin de plus de temps, définissez le champ `timeout` dans l'entrée du hook.

1030 

992#### Entrée UserPromptSubmit1031#### Entrée UserPromptSubmit

993 1032 

994En plus des [champs d'entrée communs](#common-input-fields), les hooks UserPromptSubmit reçoivent le champ `prompt` contenant le texte que l'utilisateur a soumis.1033En plus des [champs d'entrée communs](#common-input-fields), les hooks UserPromptSubmit reçoivent le champ `prompt` contenant le texte que l'utilisateur a soumis.


2597 2636 

2598Lorsqu'un hook asynchrone se déclenche, Claude Code démarre le processus du hook et continue immédiatement sans attendre qu'il se termine. Le hook reçoit la même entrée JSON via stdin qu'un hook synchrone.2637Lorsqu'un hook asynchrone se déclenche, Claude Code démarre le processus du hook et continue immédiatement sans attendre qu'il se termine. Le hook reçoit la même entrée JSON via stdin qu'un hook synchrone.

2599 2638 

2600Après la sortie du processus en arrière-plan, si le hook a produit une réponse JSON avec un champ `systemMessage` ou `additionalContext`, ce contenu est livré à Claude comme contexte au tour de conversation suivant.2639Après la sortie du processus en arrière-plan, si le hook a produit une réponse JSON avec un champ `additionalContext`, ce contenu est livré à Claude comme contexte au tour de conversation suivant. Un champ `systemMessage` vous est montré, pas à Claude.

2601 2640 

2602Les notifications d'achèvement des hooks asynchrones sont supprimées par défaut. Pour les voir, activez le mode verbeux avec `Ctrl+O` ou démarrez Claude Code avec `--verbose`.2641Les notifications d'achèvement des hooks asynchrones sont supprimées par défaut. Pour les voir, activez le mode verbeux avec `Ctrl+O` ou démarrez Claude Code avec `--verbose`.

2603 2642 


2618 exit 02657 exit 0

2619fi2658fi

2620 2659 

2621# Exécutez les tests et rapportez les résultats via systemMessage2660# Exécutez les tests et rapportez les résultats à Claude via additionalContext

2622RESULT=$(npm test 2>&1)2661RESULT=$(npm test 2>&1)

2623EXIT_CODE=$?2662EXIT_CODE=$?

2624 2663 

2625if [ $EXIT_CODE -eq 0 ]; then2664if [ $EXIT_CODE -eq 0 ]; then

2626 echo "{\"systemMessage\": \"Tests passed after editing $FILE_PATH\"}"2665 MSG="Tests passed after editing $FILE_PATH"

2627else2666else

2628 echo "{\"systemMessage\": \"Tests failed after editing $FILE_PATH: $RESULT\"}"2667 MSG="Tests failed after editing $FILE_PATH: $RESULT"

2629fi2668fi

2669jq -nc --arg msg "$MSG" '{hookSpecificOutput: {hookEventName: "PostToolUse", additionalContext: $msg}}'

2630```2670```

2631 2671 

2632Ensuite, ajoutez cette configuration à `.claude/settings.json` dans la racine de votre projet. Le drapeau `async: true` permet à Claude de continuer à travailler pendant que les tests s'exécutent :2672Ensuite, ajoutez cette configuration à `.claude/settings.json` dans la racine de votre projet. Le drapeau `async: true` permet à Claude de continuer à travailler pendant que les tests s'exécutent :

hooks-guide.md +4 −1

Details

865### Limitations865### Limitations

866 866 

867* Les hooks de commande communiquent uniquement via stdout, stderr et les codes de sortie. Ils ne peuvent pas déclencher des commandes `/` ou des appels d'outils. Le texte retourné via `additionalContext` est injecté comme un rappel système que Claude lit en tant que texte brut. Les hooks HTTP communiquent via le corps de la réponse à la place.867* Les hooks de commande communiquent uniquement via stdout, stderr et les codes de sortie. Ils ne peuvent pas déclencher des commandes `/` ou des appels d'outils. Le texte retourné via `additionalContext` est injecté comme un rappel système que Claude lit en tant que texte brut. Les hooks HTTP communiquent via le corps de la réponse à la place.

868* Le délai d'expiration du hook est de 10 minutes par défaut, configurable par hook avec le champ `timeout` (en secondes).868* Les délais d'expiration du hook varient selon le type. Remplacez par hook avec le champ `timeout` en secondes.

869 * `command`, `http`, `mcp_tool` : 10 minutes. `UserPromptSubmit` les réduit à 30 secondes.

870 * `prompt` : 30 secondes.

871 * `agent` : 60 secondes.

869* Les hooks `PostToolUse` ne peuvent pas annuler les actions puisque l'outil a déjà été exécuté.872* Les hooks `PostToolUse` ne peuvent pas annuler les actions puisque l'outil a déjà été exécuté.

870* Les hooks `PermissionRequest` ne se déclenchent pas en [mode non-interactif](/fr/headless) (`-p`). Utilisez les hooks `PreToolUse` pour les décisions de permission automatisées.873* Les hooks `PermissionRequest` ne se déclenchent pas en [mode non-interactif](/fr/headless) (`-p`). Utilisez les hooks `PreToolUse` pour les décisions de permission automatisées.

871* Les hooks `Stop` se déclenchent chaque fois que Claude termine sa réponse, pas seulement à la fin de la tâche. Ils ne se déclenchent pas sur les interruptions de l'utilisateur. Les erreurs API déclenchent [StopFailure](/fr/hooks#stopfailure) à la place.874* Les hooks `Stop` se déclenchent chaque fois que Claude termine sa réponse, pas seulement à la fin de la tâche. Ils ne se déclenchent pas sur les interruptions de l'utilisateur. Les erreurs API déclenchent [StopFailure](/fr/hooks#stopfailure) à la place.

mcp.md +1 −1

Details

458 458 

459De nombreux serveurs MCP basés sur le cloud nécessitent une authentification. Claude Code supporte OAuth 2.0 pour les connexions sécurisées.459De nombreux serveurs MCP basés sur le cloud nécessitent une authentification. Claude Code supporte OAuth 2.0 pour les connexions sécurisées.

460 460 

461Claude Code marque un serveur distant comme nécessitant une authentification lorsque le serveur répond avec `401 Unauthorized` et un en-tête `WWW-Authenticate` pointant vers son serveur d'autorisation. Tout serveur personnalisé qui retourne cette réponse obtient le même flux d'authentification `/mcp` que tout autre serveur distant.461Claude Code marque un serveur distant comme nécessitant une authentification lorsque le serveur répond avec `401 Unauthorized` ou `403 Forbidden`. L'un ou l'autre code de statut signale le serveur dans `/mcp` afin que vous puissiez compléter le flux OAuth. Un serveur personnalisé qui retourne un en-tête `WWW-Authenticate` pointant vers son serveur d'autorisation obtient la même découverte automatique que tout autre serveur distant.

462 462 

463<Steps>463<Steps>

464 <Step title="Ajouter le serveur qui nécessite une authentification">464 <Step title="Ajouter le serveur qui nécessite une authentification">

Details

51 Drapeaux disponibles :51 Drapeaux disponibles :

52 52 

53 | Drapeau | Description |53 | Drapeau | Description |

54 | ----------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |54 | ----------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

55 | `--name "My Project"` | Définissez un titre de session personnalisé visible dans la liste des sessions sur claude.ai/code. |55 | `--name "My Project"` | Définissez un titre de session personnalisé visible dans la liste des sessions sur claude.ai/code. |

56 | `--remote-control-session-name-prefix <prefix>` | Préfixe pour les noms de session générés automatiquement lorsqu'aucun nom explicite n'est défini. Par défaut, le nom d'hôte de votre machine, produisant des noms comme `myhost-graceful-unicorn`. Définissez `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` pour le même effet. |56 | `--remote-control-session-name-prefix <prefix>` | Préfixe pour les noms de session générés automatiquement lorsqu'aucun nom explicite n'est défini. Par défaut, le nom d'hôte de votre machine, produisant des noms comme `myhost-graceful-unicorn`. Définissez `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` pour le même effet. |

57 | `--spawn <mode>` | Comment le serveur crée les sessions.<br />• `same-dir` (par défaut) : toutes les sessions partagent le répertoire de travail actuel, elles peuvent donc entrer en conflit si elles modifient les mêmes fichiers.<br />• `worktree` : chaque session à la demande obtient sa propre [git worktree](/fr/common-workflows#run-parallel-claude-code-sessions-with-git-worktrees). Nécessite un référentiel git.<br />• `session` : mode session unique. Sert exactement une session et rejette les connexions supplémentaires. Défini au démarrage uniquement.<br />Appuyez sur `w` à l'exécution pour basculer entre `same-dir` et `worktree`. |57 | `--spawn <mode>` | Comment le serveur crée les sessions.<br />• `same-dir` (par défaut) : toutes les sessions partagent le répertoire de travail actuel, elles peuvent donc entrer en conflit si elles modifient les mêmes fichiers.<br />• `worktree` : chaque session à la demande obtient sa propre [git worktree](/fr/worktrees). Nécessite un référentiel git.<br />• `session` : mode session unique. Sert exactement une session et rejette les connexions supplémentaires. Défini au démarrage uniquement.<br />Appuyez sur `w` à l'exécution pour basculer entre `same-dir` et `worktree`. |

58 | `--capacity <N>` | Nombre maximum de sessions concurrentes. La valeur par défaut est 32. Ne peut pas être utilisé avec `--spawn=session`. |58 | `--capacity <N>` | Nombre maximum de sessions concurrentes. La valeur par défaut est 32. Ne peut pas être utilisé avec `--spawn=session`. |

59 | `--verbose` | Afficher les journaux de connexion et de session détaillés. |59 | `--verbose` | Afficher les journaux de connexion et de session détaillés. |

60 | `--sandbox` / `--no-sandbox` | Activer ou désactiver le [sandboxing](/fr/sandboxing) pour l'isolation du système de fichiers et du réseau. Désactivé par défaut. |60 | `--sandbox` / `--no-sandbox` | Activer ou désactiver le [sandboxing](/fr/sandboxing) pour l'isolation du système de fichiers et du réseau. Désactivé par défaut. |


113 113 

114* **Ouvrez l'URL de la session** dans n'importe quel navigateur pour accéder directement à la session sur [claude.ai/code](https://claude.ai/code).114* **Ouvrez l'URL de la session** dans n'importe quel navigateur pour accéder directement à la session sur [claude.ai/code](https://claude.ai/code).

115* **Scannez le code QR** affiché à côté de l'URL de la session pour l'ouvrir directement dans l'application Claude. Avec `claude remote-control`, appuyez sur la barre d'espace pour basculer l'affichage du code QR.115* **Scannez le code QR** affiché à côté de l'URL de la session pour l'ouvrir directement dans l'application Claude. Avec `claude remote-control`, appuyez sur la barre d'espace pour basculer l'affichage du code QR.

116* **Ouvrez [claude.ai/code](https://claude.ai/code) ou l'application Claude** et trouvez la session par nom dans la liste des sessions. Les sessions Remote Control affichent une icône d'ordinateur avec un point d'état vert lorsqu'elles sont en ligne.116* **Ouvrez [claude.ai/code](https://claude.ai/code) ou l'application Claude** et trouvez la session par nom dans la liste des sessions. Dans l'application mobile Claude, appuyez sur **Code** dans la navigation pour accéder à la liste des sessions. Les sessions Remote Control affichent une icône d'ordinateur avec un point d'état vert lorsqu'elles sont en ligne.

117 117 

118Le titre de la session distante est choisi dans cet ordre :118Le titre de la session distante est choisi dans cet ordre :

119 119 


130 130 

131### Activer Remote Control pour toutes les sessions131### Activer Remote Control pour toutes les sessions

132 132 

133Par défaut, Remote Control ne s'active que lorsque vous exécutez explicitement `claude remote-control`, `claude --remote-control`, ou `/remote-control`. Pour l'activer automatiquement pour chaque session interactive, exécutez `/config` dans Claude Code et définissez **Enable Remote Control for all sessions** sur `true`. Définissez-le sur `false` pour le désactiver.133Par défaut, Remote Control ne s'active que lorsque vous exécutez explicitement `claude remote-control`, `claude --remote-control`, ou `/remote-control`. Pour l'activer automatiquement pour chaque session interactive, exécutez `/config` dans Claude Code et définissez **Enable Remote Control for all sessions** sur `true`. Définissez-le sur `false` pour le désactiver. Dans l'application Desktop, vous pouvez également basculer ceci depuis **Settings → Claude Code → Enable remote control by default**.

134 134 

135Avec ce paramètre activé, chaque processus Claude Code interactif enregistre une session distante. Si vous exécutez plusieurs instances, chacune obtient son propre environnement et sa propre session. Pour exécuter plusieurs sessions concurrentes à partir d'un seul processus, utilisez plutôt le mode serveur.135Avec ce paramètre activé, chaque processus Claude Code interactif enregistre une session distante. Si vous exécutez plusieurs instances, chacune obtient son propre environnement et sa propre session. Pour exécuter plusieurs sessions concurrentes à partir d'un seul processus, utilisez plutôt le [mode serveur](#start-a-remote-control-session).

136 136 

137## Connexion et sécurité137## Connexion et sécurité

138 138 


215 215 

216### « Remote Control is disabled by your organization's policy »216### « Remote Control is disabled by your organization's policy »

217 217 

218Cette erreur a trois causes distinctes. Exécutez d'abord `/status` pour voir quelle méthode de connexion et quel abonnement vous utilisez.218Cette erreur a quatre causes distinctes. Exécutez d'abord `/status` pour voir quelle méthode de connexion et quel abonnement vous utilisez.

219 219 

220* **Vous êtes authentifié avec une clé API ou un compte Console** : Remote Control nécessite OAuth claude.ai. Exécutez `/login` et choisissez l'option claude.ai. Si `ANTHROPIC_API_KEY` est défini dans votre environnement, désactivez-le.220* **Vous êtes authentifié avec une clé API ou un compte Console** : Remote Control nécessite OAuth claude.ai. Exécutez `/login` et choisissez l'option claude.ai. Si `ANTHROPIC_API_KEY` est défini dans votre environnement, désactivez-le.

221* **Votre administrateur Team ou Enterprise ne l'a pas activé** : Remote Control est désactivé par défaut sur ces plans. Un administrateur peut l'activer sur [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) en activant le bouton **Remote Control**. C'est un paramètre d'organisation côté serveur, pas une clé de [paramètres gérés](/fr/permissions#managed-only-settings).221* **Votre administrateur Team ou Enterprise ne l'a pas activé** : Remote Control est désactivé par défaut sur ces plans. Un administrateur peut l'activer sur [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) en activant le bouton **Remote Control**. Ce bouton est un paramètre d'organisation côté serveur.

222* **Le bouton d'administration est grisé** : votre organisation a une configuration de rétention des données ou de conformité incompatible avec Remote Control. Cela ne peut pas être modifié à partir du panneau d'administration. Contactez le support Anthropic pour discuter des options.222* **Le bouton d'administration est grisé** : votre organisation a une configuration de rétention des données ou de conformité incompatible avec Remote Control. Cela ne peut pas être modifié à partir du panneau d'administration. Contactez le support Anthropic pour discuter des options.

223* **L'erreur mentionne `disableRemoteControl`** : votre administrateur informatique a désactivé Remote Control sur cet appareil via les [paramètres gérés](/fr/settings#settings-files), indépendamment du bouton à l'échelle de l'organisation.

223 224 

224### « Remote credentials fetch failed »225### « Remote credentials fetch failed »

225 226 

sub-agents.md +6 −4

Details

158 158 

159C'est la méthode recommandée pour créer et gérer les sous-agents. Pour la création manuelle ou l'automatisation, vous pouvez également ajouter des fichiers de sous-agent directement.159C'est la méthode recommandée pour créer et gérer les sous-agents. Pour la création manuelle ou l'automatisation, vous pouvez également ajouter des fichiers de sous-agent directement.

160 160 

161Pour lister tous les sous-agents configurés à partir de la ligne de commande sans ouvrir la [vue agent](/fr/agent-view), redirigez la sortie de `claude agents`. Par exemple, `claude agents | cat` affiche les agents groupés par source et indique lesquels sont remplacés par des définitions de priorité plus élevée.

162 

163### Choisir la portée du sous-agent161### Choisir la portée du sous-agent

164 162 

165Les sous-agents sont des fichiers Markdown avec du frontmatter YAML. Stockez-les dans différents emplacements selon la portée. Lorsque plusieurs sous-agents partagent le même nom, l'emplacement de priorité plus élevée gagne.163Les sous-agents sont des fichiers Markdown avec du frontmatter YAML. Stockez-les dans différents emplacements selon la portée. Lorsque plusieurs sous-agents partagent le même nom, l'emplacement de priorité plus élevée gagne.


178 176 

179**Les sous-agents utilisateur** (`~/.claude/agents/`) sont des sous-agents personnels disponibles dans tous vos projets.177**Les sous-agents utilisateur** (`~/.claude/agents/`) sont des sous-agents personnels disponibles dans tous vos projets.

180 178 

179Claude Code analyse `.claude/agents/` et `~/.claude/agents/` de manière récursive, vous pouvez donc organiser les définitions dans des sous-dossiers tels que `agents/review/` ou `agents/research/`. Le chemin du sous-répertoire n'affecte pas la façon dont un sous-agent est identifié ou invoqué, car l'identité provient uniquement du champ frontmatter `name`. Gardez les valeurs `name` uniques dans tout l'arborescence : si deux fichiers dans une même portée déclarent le même nom, Claude Code en conserve un et rejette l'autre sans avertissement.

180 

181Les répertoires `agents/` des plugins sont également analysés de manière récursive. Contrairement aux portées de projet et utilisateur, un sous-dossier à l'intérieur du répertoire `agents/` d'un plugin devient partie de l'[identifiant limité](#invoke-subagents-explicitly) : un fichier à `agents/review/security.md` dans le plugin `my-plugin` s'enregistre comme `my-plugin:review:security`.

182 

181**Les sous-agents définis par CLI** sont passés en JSON lors du lancement de Claude Code. Ils n'existent que pour cette session et ne sont pas enregistrés sur le disque, ce qui les rend utiles pour les tests rapides ou les scripts d'automatisation. Vous pouvez définir plusieurs sous-agents dans un seul appel `--agents` :183**Les sous-agents définis par CLI** sont passés en JSON lors du lancement de Claude Code. Ils n'existent que pour cette session et ne sont pas enregistrés sur le disque, ce qui les rend utiles pour les tests rapides ou les scripts d'automatisation. Vous pouvez définir plusieurs sous-agents dans un seul appel `--agents` :

182 184 

183<Tabs>185<Tabs>


638 640 

639Votre message complet va toujours à Claude, qui écrit l'invite de tâche du sous-agent en fonction de ce que vous avez demandé. La @-mention contrôle quel sous-agent Claude invoque, pas quelle invite il reçoit.641Votre message complet va toujours à Claude, qui écrit l'invite de tâche du sous-agent en fonction de ce que vous avez demandé. La @-mention contrôle quel sous-agent Claude invoque, pas quelle invite il reçoit.

640 642 

641Les sous-agents fournis par un [plugin](/fr/plugins) activé apparaissent dans la saisie semi-automatique comme `<plugin-name>:<agent-name>`. Les sous-agents d'arrière-plan nommés actuellement en cours d'exécution dans la session apparaissent également dans la saisie semi-automatique, affichant leur statut à côté du nom. Vous pouvez également taper la mention manuellement sans utiliser le sélecteur : `@agent-<name>` pour les sous-agents locaux, ou `@agent-<plugin-name>:<agent-name>` pour les sous-agents de plugin.643Les sous-agents fournis par un [plugin](/fr/plugins) activé apparaissent dans la saisie semi-automatique sous leur nom délimité, comme `my-plugin:code-reviewer` ou `my-plugin:review:security` lorsque le plugin [organise les agents dans des sous-dossiers](#choose-the-subagent-scope). Les sous-agents d'arrière-plan nommés actuellement en cours d'exécution dans la session apparaissent également dans la saisie semi-automatique, affichant leur statut à côté du nom. Vous pouvez également taper la mention manuellement sans utiliser le sélecteur : `@agent-<name>` pour les sous-agents locaux, ou `@agent-` suivi du nom délimité pour les sous-agents de plugin, par exemple `@agent-my-plugin:code-reviewer`.

642 644 

643**Exécutez la session entière en tant que sous-agent.** Passez [`--agent <name>`](/fr/cli-reference) pour démarrer une session où le thread principal lui-même prend l'invite système, les restrictions d'outils et le modèle de ce sous-agent :645**Exécutez la session entière en tant que sous-agent.** Passez [`--agent <name>`](/fr/cli-reference) pour démarrer une session où le thread principal lui-même prend l'invite système, les restrictions d'outils et le modèle de ce sous-agent :

644 646 


650 652 

651Cela fonctionne avec les sous-agents intégrés et personnalisés, et le choix persiste lorsque vous reprenez la session.653Cela fonctionne avec les sous-agents intégrés et personnalisés, et le choix persiste lorsque vous reprenez la session.

652 654 

653Pour un sous-agent fourni par un plugin, passez le nom délimité : `claude --agent <plugin-name>:<agent-name>`.655Pour un sous-agent fourni par un plugin, passez le nom délimité : `claude --agent <plugin-name>:<agent-name>`. Si le plugin place l'agent dans un sous-dossier de son répertoire `agents/`, incluez le sous-dossier dans le nom délimité, par exemple `claude --agent my-plugin:review:security`.

654 656 

655Pour en faire la valeur par défaut pour chaque session dans un projet, définissez `agent` dans `.claude/settings.json` :657Pour en faire la valeur par défaut pour chaque session dans un projet, définissez `agent` dans `.claude/settings.json` :

656 658 

Details

16 16 

17La dictée vocale envoie votre audio enregistré aux serveurs d'Anthropic pour la transcription. L'audio n'est pas traité localement. Le service de reconnaissance vocale n'est disponible que lorsque vous vous authentifiez avec un compte Claude.ai, et n'est pas disponible lorsque Claude Code est configuré pour utiliser directement une clé API Anthropic, Amazon Bedrock, Google Vertex AI ou Microsoft Foundry. La transcription ne consomme pas de messages Claude ni de jetons et ne compte pas vers les limites affichées dans `/usage`. Consultez [utilisation des données](/fr/data-usage) pour savoir comment Anthropic traite vos données.17La dictée vocale envoie votre audio enregistré aux serveurs d'Anthropic pour la transcription. L'audio n'est pas traité localement. Le service de reconnaissance vocale n'est disponible que lorsque vous vous authentifiez avec un compte Claude.ai, et n'est pas disponible lorsque Claude Code est configuré pour utiliser directement une clé API Anthropic, Amazon Bedrock, Google Vertex AI ou Microsoft Foundry. La transcription ne consomme pas de messages Claude ni de jetons et ne compte pas vers les limites affichées dans `/usage`. Consultez [utilisation des données](/fr/data-usage) pour savoir comment Anthropic traite vos données.

18 18 

19La dictée vocale nécessite également un accès local au microphone, elle ne fonctionne donc pas dans les environnements distants tels que [Claude Code sur le web](/fr/claude-code-on-the-web) ou les sessions SSH. Dans WSL, la dictée vocale nécessite WSLg pour l'accès audio, qui est inclus avec WSL2 sur Windows 11. Sur Windows 10 ou WSL1, exécutez Claude Code en Windows natif à la place.19La dictée vocale nécessite également un accès local au microphone, elle ne fonctionne donc pas dans les environnements distants tels que [Claude Code sur le web](/fr/claude-code-on-the-web) ou les sessions SSH. Dans WSL, la dictée vocale nécessite WSLg pour l'accès audio. WSLg est inclus avec WSL2 lorsqu'il est installé à partir du Microsoft Store sur Windows 10 ou 11. Si WSLg n'est pas disponible, par exemple sur WSL1, exécutez Claude Code en Windows natif à la place.

20 20 

21L'enregistrement audio utilise un module natif intégré sur macOS, Linux et Windows. Sur Linux, si le module natif ne peut pas se charger, Claude Code revient à `arecord` d'ALSA utils ou `rec` de SoX. Si aucun n'est disponible, `/voice` affiche une commande d'installation pour votre gestionnaire de paquets.21L'enregistrement audio utilise un module natif intégré sur macOS, Linux et Windows. Sur Linux, si le module natif ne peut pas se charger, Claude Code revient à `arecord` d'ALSA utils ou `rec` de SoX. Si aucun n'est disponible, `/voice` affiche une commande d'installation pour votre gestionnaire de paquets.

22 22 


51}51}

52```52```

53 53 

54Lorsque la dictée vocale est activée, le pied de page d'entrée affiche un indice `hold Space to speak` lorsque l'invite est vide. Le texte d'indice est le même dans les deux modes, et il n'apparaît pas si vous avez une [ligne d'état personnalisée](/fr/statusline) configurée.54Lorsque la dictée vocale est activée, le pied de page d'entrée affiche un indice `hold Space to speak` lorsque l'invite est vide. L'indice reflète votre liaison `voice:pushToTalk` actuelle et se met à jour si vous [reliez la clé de dictée](#rebind-the-dictation-key). Le texte d'indice est le même dans les deux modes, et il n'apparaît pas si vous avez une [ligne d'état personnalisée](/fr/statusline) configurée.

55 55 

56La transcription est optimisée pour le vocabulaire de codage dans les deux modes. Les termes de développement courants comme `regex`, `OAuth`, `JSON` et `localhost` sont reconnus correctement, et le nom de votre projet actuel et le nom de la branche git sont ajoutés automatiquement comme indices de reconnaissance.56La transcription est optimisée pour le vocabulaire de codage dans les deux modes. Les termes de développement courants comme `regex`, `OAuth`, `JSON` et `localhost` sont reconnus correctement, et le nom de votre projet actuel et le nom de la branche git sont ajoutés automatiquement comme indices de reconnaissance.

57 57 


155* **`Voice mode requires a Claude.ai account`** : vous êtes authentifié avec une clé API ou un fournisseur tiers. Exécutez `/login` pour vous connecter avec un compte Claude.ai.155* **`Voice mode requires a Claude.ai account`** : vous êtes authentifié avec une clé API ou un fournisseur tiers. Exécutez `/login` pour vous connecter avec un compte Claude.ai.

156* **`Microphone access is denied`** : accordez la permission du microphone à votre terminal dans les paramètres système. Sur macOS, allez à Paramètres système → Confidentialité et sécurité → Microphone et activez votre application terminal, puis exécutez `/voice` à nouveau. Sur Windows, allez à Paramètres → Confidentialité et sécurité → Microphone et activez l'accès au microphone pour les applications de bureau, puis exécutez `/voice` à nouveau. Si votre terminal n'est pas répertorié dans les paramètres macOS, consultez [Terminal non répertorié dans les paramètres du microphone macOS](#terminal-not-listed-in-macos-microphone-settings).156* **`Microphone access is denied`** : accordez la permission du microphone à votre terminal dans les paramètres système. Sur macOS, allez à Paramètres système → Confidentialité et sécurité → Microphone et activez votre application terminal, puis exécutez `/voice` à nouveau. Sur Windows, allez à Paramètres → Confidentialité et sécurité → Microphone et activez l'accès au microphone pour les applications de bureau, puis exécutez `/voice` à nouveau. Si votre terminal n'est pas répertorié dans les paramètres macOS, consultez [Terminal non répertorié dans les paramètres du microphone macOS](#terminal-not-listed-in-macos-microphone-settings).

157* **`No audio recording tool found` sur Linux** : le module audio natif n'a pas pu se charger et aucun retour n'est installé. Installez SoX avec la commande affichée dans le message d'erreur, par exemple `sudo apt-get install sox`.157* **`No audio recording tool found` sur Linux** : le module audio natif n'a pas pu se charger et aucun retour n'est installé. Installez SoX avec la commande affichée dans le message d'erreur, par exemple `sudo apt-get install sox`.

158* **`Voice mode could not find a working audio recorder in WSL`** : WSLg achemine l'audio via PulseAudio plutôt qu'un périphérique ALSA, donc SoX a besoin que son backend PulseAudio soit installé explicitement. Exécutez `sudo apt install sox libsox-fmt-pulse`. L'installation de `sox` seul installe le backend ALSA, qui ne peut pas enregistrer sur WSL car il n'y a pas de périphérique `/dev/snd`.

159* **`Voice input is failing repeatedly and has been paused`** : la dictée vocale a rencontré plusieurs échecs de démarrage d'affilée et a cessé de tenter de nouvelles sessions jusqu'à ce qu'une réussisse. Cela signifie généralement que le microphone ou la pile audio sur cet hôte ne peut pas capturer l'audio, par exemple un serveur sans interface graphique, un shell distant sans passage audio, ou une permission de microphone refusée. Confirmez un périphérique d'entrée fonctionnant, corrigez la cause sous-jacente à partir des entrées ci-dessus, puis déclenchez à nouveau la voix.

158* **Rien ne se passe en maintenant `Space` en mode maintien** : regardez l'entrée d'invite pendant que vous maintenez. Si les espaces continuent à s'accumuler, la dictée vocale est probablement désactivée ; exécutez `/voice hold` pour l'activer. Si un ou deux espaces seulement apparaissent puis rien, la dictée vocale est activée mais la détection de maintien ne se déclenche pas. La détection de maintien nécessite que votre terminal envoie des événements de répétition des touches, elle ne peut donc pas détecter une touche maintenue si la répétition des touches est désactivée au niveau du système d'exploitation. Basculez vers le mode appui avec `/voice tap` pour éviter l'exigence de répétition des touches.160* **Rien ne se passe en maintenant `Space` en mode maintien** : regardez l'entrée d'invite pendant que vous maintenez. Si les espaces continuent à s'accumuler, la dictée vocale est probablement désactivée ; exécutez `/voice hold` pour l'activer. Si un ou deux espaces seulement apparaissent puis rien, la dictée vocale est activée mais la détection de maintien ne se déclenche pas. La détection de maintien nécessite que votre terminal envoie des événements de répétition des touches, elle ne peut donc pas détecter une touche maintenue si la répétition des touches est désactivée au niveau du système d'exploitation. Basculez vers le mode appui avec `/voice tap` pour éviter l'exigence de répétition des touches.

159* **Appuyer sur `Space` tape un espace au lieu d'enregistrer en mode appui** : le premier appui ne commence l'enregistrement que lorsque l'entrée d'invite est vide. Effacez d'abord l'entrée, ou vérifiez que vous êtes en mode appui en exécutant `/voice tap`.161* **Appuyer sur `Space` tape un espace au lieu d'enregistrer en mode appui** : le premier appui ne commence l'enregistrement que lorsque l'entrée d'invite est vide. Effacez d'abord l'entrée, ou vérifiez que vous êtes en mode appui en exécutant `/voice tap`.

160* **`No audio detected from microphone`** : l'enregistrement a commencé mais a capturé le silence. Confirmez que le périphérique d'entrée correct est défini comme valeur par défaut du système et que son niveau d'entrée n'est pas coupé ou proche de zéro. Sur Windows, ouvrez Paramètres → Système → Son → Entrée et sélectionnez votre microphone. Sur macOS, ouvrez Paramètres système → Son → Entrée.162* **`No audio detected from microphone`** : l'enregistrement a commencé mais a capturé le silence. Confirmez que le périphérique d'entrée correct est défini comme valeur par défaut du système et que son niveau d'entrée n'est pas coupé ou proche de zéro. Sur Windows, ouvrez Paramètres → Système → Son → Entrée et sélectionnez votre microphone. Sur macOS, ouvrez Paramètres système → Son → Entrée.