Sesiones
Pi guarda conversaciones como sesiones para que puedas continuar trabajando, avanzar desde turnos anteriores y volver a visitar rutas anteriores.
Almacenamiento de sesiones
Las sesiones se guardan automáticamente en ~/.pi/agent/sessions/, organizadas por directorio de trabajo. Cada sesión es un archivo JSONL con una estructura de árbol.
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 sessionUtilice /session en modo interactivo para ver el archivo de sesión actual, el ID de sesión, el recuento de mensajes, los tokens y el costo.
Para el formato de archivo JSONL y SessionManager API, consulte Session Format.
Comandos de sesión
| Dominio | Descripción |
|---|---|
/resume |
Explorar y seleccionar sesiones anteriores |
/new |
Iniciar una nueva sesión |
/name <name> |
Establecer el nombre para mostrar de la sesión actual |
/session |
Mostrar información de la sesión |
/tree |
Navegar por el session tree actual |
/fork |
Crear una nueva sesión a partir de un mensaje de usuario anterior |
/clone |
Duplicar la rama activa actual en una nueva sesión |
/compact [prompt] |
Resumir el contexto anterior; ver Compaction |
/export [file] |
Exportar sesión a HTML |
/share |
Subir como GitHub privado con enlace HTML para compartir |
Reanudar y eliminar sesiones
/resume abre un selector de sesión interactivo para el proyecto actual. pi -r abre el mismo selector al inicio.
En el selector puedes:
- buscar escribiendo
- alternar visualización de ruta con Ctrl+P
- alternar el modo de clasificación con Ctrl+S
- filtrar a sesiones con nombre con Ctrl+N
- cambiar el nombre con Ctrl+R
- eliminar con Ctrl+D, luego confirmar
Cuando está disponible, pi usa trash CLI para eliminar en lugar de eliminar archivos permanentemente.
Sesiones de nombres
Utilice /name <name> para establecer un nombre de sesión legible por humanos:
/name Refactor auth moduleEstablezca el nombre al inicio con --name o -n:
pi --name "Refactor auth module"
pi --name "CI audit" -p "Review this build failure"Las sesiones con nombre son más fáciles de encontrar en /resume y pi -r.
Ramificando con /tree
Las sesiones se almacenan como árboles. Cada entrada tiene un id y un parentId, y la posición actual es la hoja activa. /tree te permite saltar a cualquier punto anterior y continuar desde allí sin crear un archivo nuevo.

Forma de ejemplo:
├─ 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..."Controles de árbol
| Llave | Acción |
|---|---|
| ↑/↓ | Navegar por entradas visibles |
| ←/→ | Página arriba/abajo |
| Ctrl+←/Ctrl+→ o Alt+←/Alt+→ | Doblar/desplegar o saltar entre segmentos de ramas |
| Mayús+L | Establecer o borrar una etiqueta en la entrada seleccionada |
| Mayús+T | Alternar marcas de tiempo de etiquetas |
| Ingresar | Seleccionar entrada |
| Esc/Ctrl+C | Cancelar |
| Ctrl+O | Modo de filtro de ciclo |
Los modos de filtro son: predeterminado, sin herramientas, solo para usuario, solo con etiquetas y todos. Configure el valor predeterminado con treeFilterMode en Settings.
Comportamiento de selección
Seleccionar un usuario o mensaje personalizado:
- Mueve la hoja al padre del mensaje seleccionado.
- Coloca el texto del mensaje seleccionado en el editor.
- Le permite editar y volver a enviar, creando una nueva rama.
Seleccionar un asistente, herramienta, compactación u otra entrada que no sea de usuario:
- Mueve la hoja a esa entrada.
- Deja el editor vacío.
- Le permite continuar desde ese punto.
Al seleccionar el mensaje del usuario raíz, la hoja se restablece a una conversación vacía y se coloca el mensaje original en el editor.
/tree, /fork y /clone
| Característica | /tree |
/fork |
/clone |
|---|---|---|---|
| Producción | Mismo archivo de sesión | Nuevo archivo de sesión | Nuevo archivo de sesión |
| Vista | árbol completo | Selector de mensajes de usuario | Rama activa actual |
| Uso típico | Explorar alternativas existentes | Iniciar una nueva sesión desde un mensaje anterior | Duplicar el trabajo actual antes de continuar |
| Resumen | Resumen de rama opcional | Ninguno | Ninguno |
Utilice /tree cuando desee mantener las alternativas juntas. Utilice /fork o /clone cuando desee un archivo de sesión independiente.
Resúmenes de sucursales
Cuando /tree cambia de una rama a otra, pi puede resumir la rama abandonada y adjuntar ese resumen en la nueva posición. Esto preserva el contexto importante del camino que dejaste sin volver a reproducir toda la rama.
Cuando se le solicite, elija uno de:
- sin resumen
- resumir con el mensaje predeterminado
- resumir con instrucciones de enfoque personalizadas
Consulte Compaction para ver branch summarization partes internas y ganchos de extensión.
Formato de sesión
Los archivos de sesión son JSONL y contienen entradas de mensajes, cambios de modelo, cambios de nivel de pensamiento, etiquetas, compactaciones, resúmenes de ramas y entradas de extensión.
Para analizadores, extensiones, uso de SDK y el SessionManager completo API, consulte Session Format.