Séances
Pi enregistre les conversations sous forme de sessions afin que vous puissiez continuer à travailler, repartir des tours précédents et revisiter les chemins précédents.
Stockage de sessions
Les sessions sont automatiquement enregistrées dans ~/.pi/agent/sessions/, organisées par répertoire de travail. Chaque session est un fichier JSONL avec une arborescence.
pi -c # Continue most recent session
pi -r # Browse and select from past sessions
pi --no-session # Ephemeral mode; do not save
pi --name "my task" # Set session display name at startup
pi --session <path|id> # Use a specific session file or partial session ID
pi --fork <path|id> # Fork a session file or partial session ID into a new sessionUtilisez /session en mode interactif pour voir le fichier de session en cours, l'ID de session, le nombre de messages, les jetons et le coût.
Pour le format de fichier JSONL et SessionManager API, voir Session Format.
Commandes de session
| Commande | Description |
|---|---|
/resume |
Parcourir et sélectionner les sessions précédentes |
/new |
Démarrer une nouvelle session |
/name <name> |
Définir le nom d'affichage de la session en cours |
/session |
Afficher les informations sur la session |
/tree |
Naviguez dans le session tree actuel |
/fork |
Créer une nouvelle session à partir d'un message utilisateur précédent |
/clone |
Dupliquer la branche active actuelle dans une nouvelle session |
/compact [prompt] |
Résumer le contexte plus ancien; voir Compaction |
/export [file] |
Exporter la session au format HTML |
/share |
Télécharger en tant qu'essentiel GitHub privé avec un lien HTML partageable |
Reprise et suppression de sessions
/resume ouvre un sélecteur de session interactif pour le projet en cours. pi -r ouvre le même sélecteur au démarrage.
Dans le sélecteur, vous pouvez:
- rechercher en tapant
- basculer l'affichage du chemin avec Ctrl+P
- basculer le mode de tri avec Ctrl+S
- filtrer les sessions nommées avec Ctrl+N
- renommer avec Ctrl+R
- supprimer avec Ctrl+D, puis valider
Lorsqu'il est disponible, pi utilise le trash CLI pour la suppression au lieu de supprimer définitivement les fichiers.
Nommer les sessions
Utilisez /name <name> pour définir un nom de session lisible par l'homme:
/name Refactor auth moduleDéfinissez le nom au démarrage avec --name ou -n:
pi --name "Refactor auth module"
pi --name "CI audit" -p "Review this build failure"Les sessions nommées sont plus faciles à trouver dans /resume et pi -r.
Branchement avec /tree
Les sessions sont stockées sous forme d'arborescences. Chaque entrée a un id et un parentId, et la position actuelle est la feuille active. /tree vous permet de passer à n'importe quel point précédent et de continuer à partir de là sans créer de nouveau fichier.

Exemple de forme:
├─ user: "Hello, can you help..."
│ └─ assistant: "Of course! I can..."
│ ├─ user: "Let's try approach A..."
│ │ └─ assistant: "For approach A..."
│ │ └─ user: "That worked..." ← active
│ └─ user: "Actually, approach B..."
│ └─ assistant: "For approach B..."Contrôles de l'arborescence
| Clé | Action |
|---|---|
| ↑/↓ | Naviguer dans les entrées visibles |
| ←/→ | Page précédente/suivante |
| Ctrl+←/Ctrl+→ ou Alt+←/Alt+→ | Pliez/dépliez ou sautez entre les segments de branche |
| Maj+L | Définir ou effacer une étiquette sur l'entrée sélectionnée |
| Maj+T | Basculer les horodatages des étiquettes |
| Entrer | Sélectionner une entrée |
| Échap/Ctrl+C | Annuler |
| Ctrl+O | Mode de filtrage cyclique |
Les modes de filtrage sont: par défaut, sans outils, utilisateur uniquement, étiqueté uniquement et tous. Configurez la valeur par défaut avec treeFilterMode dans Settings.
Comportement de sélection
Sélection d'un utilisateur ou d'un message personnalisé:
- Déplace la feuille vers le parent du message sélectionné.
- Place le texte du message sélectionné dans l'éditeur.
- Vous permet de modifier et de soumettre à nouveau, en créant une nouvelle branche.
Sélection d'un assistant, d'un outil, d'un compactage ou d'une autre entrée non utilisateur:
- Déplace la feuille vers cette entrée.
- Laisse l'éditeur vide.
- Vous permet de continuer à partir de ce point.
La sélection du message de l'utilisateur root réinitialise la feuille vers une conversation vide et place l'invite d'origine dans l'éditeur.
/tree, /fork et /clone
| Fonctionnalité | /tree |
/fork |
/clone |
|---|---|---|---|
| Sortir | Même fichier de session | Nouveau fichier de session | Nouveau fichier de session |
| Voir | Arbre complet | Sélecteur de message utilisateur | Branche active actuelle |
| Utilisation typique | Explorer les alternatives en place | Démarrer une nouvelle session à partir d'une invite précédente | Dupliquer le travail en cours avant de continuer |
| Résumé | Résumé de branche facultatif | Aucun | Aucun |
Utilisez /tree lorsque vous souhaitez conserver les alternatives ensemble. Utilisez /fork ou /clone lorsque vous souhaitez un fichier de session séparé.
Sommaires des succursales
Lorsque /tree passe d'une branche à une autre, pi peut résumer la branche abandonnée et joindre ce résumé à la nouvelle position. Cela préserve le contexte important du chemin que vous avez quitté sans rejouer la branche entière.
Lorsque vous y êtes invité, choisissez l'une des options suivantes:
- pas de résumé
- résumer avec l'invite par défaut
- résumer avec des instructions de mise au point personnalisées
Voir Compaction pour les composants internes et les crochets d'extension branch summarization.
Format de la séance
Les fichiers de session sont JSONL et contiennent des entrées de message, des modifications de modèle, des changements de niveau de réflexion, des étiquettes, des compactages, des résumés de branche et des entrées d'extension.
Pour les analyseurs, les extensions, l'utilisation de SDK et le SessionManager complet API, voir Session Format.