Le SDK Claude Code fournit des capacités de gestion de session pour gérer l’état des conversations, la persistance et la reprise. Ce guide couvre comment les sessions sont créées, gérées, persistées dans des fichiers et reprises au sein du SDK.
Le SDK Claude Code implémente un système de gestion de session basé sur des fichiers qui gère la persistance des conversations et la restauration d’état.
L’ID de session est fourni dans le message système initial lorsque vous démarrez une conversation. Vous pouvez le capturer pour une utilisation ultérieure :
Copy
Ask AI
import { query } from "@anthropic-ai/claude-code"let sessionId: string | undefinedconst response = query({ prompt: "Aidez-moi à construire une application web", options: { model: "claude-sonnet-4-20250514" }})for await (const message of response) { // Le premier message est un message d'init système avec l'ID de session if (message.type === 'system' && message.subtype === 'init') { sessionId = message.session_id console.log(`Session démarrée avec l'ID : ${sessionId}`) // Vous pouvez sauvegarder cet ID pour une reprise ultérieure } // Traiter les autres messages... console.log(message)}// Plus tard, vous pouvez utiliser le sessionId sauvegardé pour reprendreif (sessionId) { const resumedResponse = query({ prompt: "Continuer là où nous nous sommes arrêtés", options: { resume: sessionId } })}
import { query } from "@anthropic-ai/claude-code"// Reprendre une session précédente en utilisant son IDconst response = query({ prompt: "Continuer l'implémentation du système d'authentification là où nous nous sommes arrêtés", options: { resume: "session-xyz", // ID de session de la conversation précédente model: "claude-sonnet-4-20250514", allowedTools: ["Read", "Edit", "Write", "Glob", "Grep", "Bash"] }})// La conversation continue avec le contexte complet de la session précédentefor await (const message of response) { console.log(message)}
import { query } from '@anthropic-ai/claude-code'import { readFile } from 'fs/promises'import { homedir } from 'os'import { join } from 'path'// Vérifier si une session a été interrompueconst checkSessionStatus = async (sessionId: string) => { const metadataPath = join(homedir(), '.config/claude/sessions/sessions.json') const metadata = JSON.parse(await readFile(metadataPath, 'utf-8')) const session = metadata.find(s => s.id === sessionId) if (session?.status === 'interrupted') { console.log('La session a été interrompue. Prête pour la reprise...') // Le SDK gère le chargement de la transcription en interne return { canResume: true, sessionId: sessionId } } return { canResume: false }}// Reprendre une session interrompueconst resumeInterrupted = async (sessionId: string) => { const status = await checkSessionStatus(sessionId) if (status.canResume) { const response = query({ prompt: "Continuons là où nous nous sommes arrêtés", options: { resume: status.sessionId } }) for await (const message of response) { console.log(message) } }}
Le système de gestion de session du SDK Claude Code fournit une base robuste pour maintenir l’état des conversations et permettre la reprise transparente des tâches de développement, le tout grâce à une approche simple basée sur des fichiers qui ne nécessite aucune infrastructure externe.