Reprendre une session
Les sessions sont enregistrées en continu dans les fichiers de transcription locaux au fur et à mesure que vous travaillez, ce qui vous permet de revenir à l’une d’elles après avoir quitté ou exécuté/clear. Utilisez ces points d’entrée :
| Commande | Ce qu’elle fait |
|---|---|
claude --continue | Reprend la session la plus récente dans le répertoire courant |
claude --resume | Ouvre le sélecteur de sessions |
claude --resume <name> | Reprend directement la session nommée |
claude --from-pr <number> | Reprend la session liée à cette demande de tirage |
/resume | Bascule vers une conversation différente depuis une session active |
claude -p ou le SDK Agent n’apparaissent pas dans le sélecteur de sessions, mais vous pouvez toujours en reprendre une en passant son ID de session à claude --resume <session-id>. Exécutez ceci depuis le répertoire dans lequel la session a été démarrée : la recherche d’ID de session est limitée au répertoire de projet courant et à ses git worktrees, donc une session créée ailleurs signale No conversation found with session ID: <session-id>.
Où le sélecteur de sessions cherche
Les sessions sont stockées par répertoire de projet. Par défaut, le sélecteur de sessions affiche les sessions interactives du worktree courant, ainsi que les sessions démarrées ailleurs qui ont ajouté le répertoire courant avec/add-dir. Utilisez Ctrl+W pour élargir à tous les worktrees du référentiel ou Ctrl+A pour élargir à chaque projet sur cette machine.
À partir de la v2.1.169, le déplacement d’une session avec /cd la réinstalle dans le stockage de projet du nouveau répertoire, ce qui la fait apparaître dans le sélecteur de ce répertoire par la suite. À partir de la v2.1.196, une session déplacée reste absente du sélecteur de l’ancien répertoire même après un plantage ou une fermeture forcée. Sur les versions antérieures, elle pouvait aussi réapparaître dans la liste de l’ancien répertoire après une fermeture qui n’était pas propre lorsque l’ancien chemin contenait des caractères spéciaux tels que des traits de soulignement.
La sélection d’une session d’un autre worktree du même référentiel la reprend sur place. La sélection d’une session d’un projet non lié copie une commande cd et de reprise dans votre presse-papiers à la place.
La reprise par nom se résout dans le référentiel courant et ses worktrees. Les deux formes recherchent une correspondance exacte et la reprennent directement même si elle se trouve dans un worktree différent :
| Commande | Correspondance exacte | Nom ambigu |
|---|---|---|
claude --resume <name> | Reprend directement | Ouvre le sélecteur de sessions avec le nom pré-rempli comme terme de recherche |
/resume <name> | Reprend directement | Signale une erreur ; exécutez /resume sans argument pour ouvrir le sélecteur de sessions |
Nommer vos sessions
Donnez aux sessions des noms descriptifs pour qu’elles soient trouvables dans le sélecteur de sessions et reprises par nom. Cela est particulièrement important lorsque vous travaillez sur plusieurs tâches en parallèle.| Quand | Comment définir le nom |
|---|---|
| Au démarrage | claude -n auth-refactor |
| Pendant une session | /rename auth-refactor. Le nom apparaît également dans la barre d’invite |
| À partir du sélecteur de sessions | Mettez en surbrillance une session et appuyez sur Ctrl+R |
| À l’acceptation du plan | L’acceptation d’un plan en mode plan nomme la session à partir du contenu du plan sauf si vous en avez déjà défini un |
claude --resume <name> ou /resume <name>. Voir Reprendre une session pour savoir comment la résolution des noms se comporte entre les worktrees.
Les sessions interactives que vous ne nommez jamais reçoivent quand même un nom d’affichage par défaut au démarrage. Nécessite Claude Code v2.1.196 ou version ultérieure. Le nom par défaut combine le nom du répertoire de travail avec un suffixe de deux caractères, par exemple my-app-3f, et identifie la session dans les listes de sessions en cours d’exécution, telles que la vue agent et la sortie claude agents --json.
Le nom par défaut n’est pas un handle de reprise : claude --resume <name>, /resume <name> et le sélecteur de sessions ne correspondent qu’aux noms que vous avez définis. Nommer la session remplace le nom par défaut.
Utiliser le sélecteur de sessions
Exécutez/resume à l’intérieur d’une session, ou claude --resume sans arguments, pour ouvrir le sélecteur de sessions interactif. Utilisez ces raccourcis clavier pour naviguer, rechercher et élargir la liste :
| Raccourci | Action |
|---|---|
↑ / ↓ | Naviguer entre les sessions |
→ / ← | Développer ou réduire les sessions groupées |
Enter | Reprendre la session mise en surbrillance |
Space | Prévisualiser le contenu de la session. Ctrl+V fonctionne également sur les terminaux qui ne le capturent pas comme collage |
Ctrl+R | Renommer la session mise en surbrillance |
/ ou tout caractère imprimable autre que Space | Entrer en mode recherche et filtrer les sessions. Collez une URL de demande de tirage ou de fusion GitHub, GitHub Enterprise, GitLab ou Bitbucket pour trouver la session qui l’a créée |
Ctrl+A | Afficher les sessions de tous les projets sur cette machine. Appuyez à nouveau pour revenir au référentiel courant |
Ctrl+W | Afficher les sessions de tous les worktrees du référentiel courant. Appuyez à nouveau pour revenir au worktree courant. Affiché uniquement dans les référentiels multi-worktrees |
Ctrl+B | Filtrer les sessions de la branche git courante. Appuyez à nouveau pour afficher toutes les branches |
Esc | Quitter le sélecteur de sessions ou le mode recherche |
Ctrl+A.
Les sessions créées avec /branch, /rewind ou --fork-session sont groupées sous leur session racine. Appuyez sur → pour développer un groupe.
Créer une branche d’une session
La création d’une branche crée une copie de la conversation jusqu’à présent et vous y bascule, laissant l’original intact. Utilisez-la pour essayer une approche différente sans perdre le chemin sur lequel vous étiez. À partir d’une session, exécutez/branch avec un nom optionnel :
--continue ou --resume avec --fork-session :
/branch imprime deux ID de session : la nouvelle branche dans laquelle vous êtes maintenant et l’original. Pour revenir à l’original, passez son ID à /resume, utilisez le sélecteur de sessions ou exécutez /resume <original-name>. Les autorisations que vous avez approuvées avec « autoriser pour cette session » ne sont pas reportées à la nouvelle branche. Si vous reprenez la même session dans deux terminaux sans créer de branche, les messages des deux s’entrelacent dans une seule transcription.
Pour la rembobinage basé sur les points de contrôle au sein d’une seule session, voir Points de contrôle.
Gérer le contexte au sein d’une session
Ces commandes contrôlent ce qui se trouve dans la fenêtre de contexte sans quitter la session :/clear: recommencer avec un contexte vide. La conversation précédente est enregistrée et reprendre/compact [instructions]: remplacer l’historique par un résumé, optionnellement axé sur ce que vous spécifiez/context: afficher ce qui consomme actuellement le contexte
Exporter et localiser les données de session
Exécutez/export pour ouvrir un menu qui vous permet de copier la conversation courante dans votre presse-papiers ou de l’enregistrer en tant que fichier texte brut, avec les messages et les sorties d’outils rendus sous forme de texte lisible. Passez un nom de fichier pour ignorer le menu et écrire directement dans ce fichier.
Accéder aux conversations à partir de scripts
/export produit une transcription rendue pour qu’une personne la lise. Les interfaces ci-dessous produisent des données structurées pour qu’un script les analyse : un résultat JSON d’une exécution, le chemin vers le fichier de transcription d’une session, ou un flux en direct d’événements. Choisissez en fonction de ce qui déclenche le script :
- Exécuter Claude une fois et capturer le résultat : invoquez
claude -pavec--output-format jsonoustream-jsonpour capturer le résultat, l’ID de session, l’utilisation et le coût d’une exécution non interactive sous forme de JSON structuré. - Poser une question à une session existante : passez un ID de session à
claude -p --resumepour envoyer une invite de suivi, comme une demande de résumé, et capturer la réponse structurée. - Réagir aux événements de session : lisez le champ
transcript_pathque les hooks et les commandes de ligne d’état reçoivent en entrée. Un hookSessionEndpeut archiver la transcription lorsqu’une session se termine. - Intégrer Claude dans une application TypeScript ou Python : utilisez le Agent SDK pour recevoir chaque message par programmation.
jq :
Où les transcriptions sont stockées
Par défaut, les transcriptions sont stockées en JSONL à~/.claude/projects/<project>/<session-id>.jsonl, où <project> est votre chemin de répertoire de travail avec les caractères non alphanumériques remplacés par -. Chaque ligne est un objet JSON pour un message, une utilisation d’outil ou une entrée de métadonnées. Le format d’entrée est interne à Claude Code et change entre les versions, donc les scripts qui analysent directement ces fichiers peuvent se casser à chaque version. Pour construire sur les données de session, utilisez /export ou les interfaces de script à la place.
L’emplacement, la rétention et le comportement d’écriture sont configurables :
| Pour | Définir | Où |
|---|---|---|
Déplacer le stockage hors de ~/.claude | CLAUDE_CONFIG_DIR | Variable d’environnement |
| Modifier la rétention de 30 jours | cleanupPeriodDays | settings.json |
| Supprimer les écritures de transcription dans tous les modes | CLAUDE_CODE_SKIP_PROMPT_HISTORY | Variable d’environnement |
| Supprimer les écritures pour une exécution non interactive | --no-session-persistence | Drapeau CLI avec claude -p |
Voir aussi
Ces pages couvrent les mécaniques de session et de parallélisme connexes :- Worktrees : exécuter des sessions parallèles isolées sur des branches séparées
- Points de contrôle : rembobiner le code et la conversation à un point antérieur
- Fenêtre de contexte : ce qui remplit le contexte et ce qui survit à la compaction
- Mode non interactif : comportement de la session sous
claude -p