Sesiones
Pi guarda las conversaciones como sesiones para que puedas continuar el trabajo, ramificar desde turnos anteriores y revisar rutas previas.
Almacenamiento de sesiones
Sección titulada «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 estructura de árbol.
pi -c # Continuar la sesión más recientepi -r # Explorar y seleccionar sesiones anteriorespi --no-session # Modo efímero; no guardarpi --name "my task" # Establecer nombre de sesión al iniciarpi --session <path|id> # Usar un archivo de sesión o ID parcialpi --fork <path|id> # Bifurcar sesión en una nueva sesiónUsa /session en modo interactivo para ver el archivo de sesión actual, ID de sesión, recuento de mensajes, tokens y coste.
Para el formato de archivo JSONL y la API SessionManager, consulta Session Format.
Comandos de sesión
Sección titulada «Comandos de sesión»| Comando | Descripción |
|---|---|
/resume | Explorar y seleccionar sesiones anteriores |
/new | Iniciar una nueva sesión |
/name <name> | Establecer el nombre de visualización de la sesión actual |
/session | Mostrar información de sesión |
/tree | Navegar el árbol de sesión actual |
/fork | Crear nueva sesión desde un mensaje de usuario anterior |
/clone | Duplicar la rama activa actual en una nueva sesión |
/compact [prompt] | Resumir contexto antiguo; ver Compaction |
/export [file] | Exportar sesión a HTML |
/share | Subir como gist privado de GitHub con enlace HTML compartible |
Reanudar y eliminar sesiones
Sección titulada «Reanudar y eliminar sesiones»/resume abre un selector interactivo de sesiones para el proyecto actual. pi -r abre el mismo selector al iniciar.
En el selector puedes:
- buscar escribiendo
- alternar visualización de ruta con Ctrl+P
- alternar modo de orden con Ctrl+S
- filtrar a sesiones con nombre con Ctrl+N
- renombrar con Ctrl+R
- eliminar con Ctrl+D, luego confirmar
Cuando está disponible, pi usa el CLI trash para eliminar en lugar de borrar archivos permanentemente.
Nombrar sesiones
Sección titulada «Nombrar sesiones»Usa /name <name> para establecer un nombre legible:
/name Refactor auth moduleEstablece el nombre al iniciar 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.
Ramificación con /tree
Sección titulada «Ramificación con /tree»Las sesiones se almacenan como árboles. Cada entrada tiene id y 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 del árbol
Sección titulada «Controles del árbol»| Tecla | Acción |
|---|---|
| ↑/↓ | Navegar entradas visibles |
| ←/→ | Página arriba/abajo |
| Ctrl+←/Ctrl+→ o Alt+←/Alt+→ | Plegar/desplegar o saltar entre segmentos de rama |
| Shift+L | Establecer o borrar etiqueta en la entrada seleccionada |
| Shift+T | Alternar marcas de tiempo de etiquetas |
| Enter | Seleccionar entrada |
| Escape/Ctrl+C | Cancelar |
| Ctrl+O | Alternar modo de filtro |
Los modos de filtro son: default, no-tools, user-only, labeled-only y all. Configura el predeterminado con treeFilterMode en Settings.
Comportamiento de selección
Sección titulada «Comportamiento de selección»Al seleccionar un mensaje de usuario o personalizado:
- Mueve la hoja al padre del mensaje seleccionado.
- Coloca el texto del mensaje seleccionado en el editor.
- Permite editar y reenviar, creando una nueva rama.
Al seleccionar asistente, herramienta, compactación u otra entrada no de usuario:
- Mueve la hoja a esa entrada.
- Deja el editor vacío.
- Permite continuar desde ese punto.
Seleccionar el mensaje de usuario raíz restablece la hoja a una conversación vacía y coloca el prompt original en el editor.
/tree, /fork y /clone
Sección titulada «/tree, /fork y /clone»| Función | /tree | /fork | /clone |
|---|---|---|---|
| Salida | 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 in situ | Nueva sesión desde prompt anterior | Duplicar trabajo actual antes de continuar |
| Resumen | Resumen de rama opcional | Ninguno | Ninguno |
Usa /tree cuando quieras mantener alternativas juntas. Usa /fork o /clone cuando quieras un archivo de sesión separado.
Resúmenes de rama
Sección titulada «Resúmenes de rama»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 contexto importante de la ruta que dejaste sin reproducir toda la rama.
Cuando se te pregunte, elige una de:
- sin resumen
- resumir con el prompt predeterminado
- resumir con instrucciones de enfoque personalizadas
Consulta Compaction para detalles internos de resumen de rama y hooks de extensión.
Formato de sesión
Sección titulada «Formato de sesión»Los archivos de sesión son JSONL y contienen entradas de mensajes, cambios de modelo, cambios de nivel de razonamiento, etiquetas, compactaciones, resúmenes de rama y entradas de extensión.
Para parsers, extensiones, uso de SDK y la API completa de SessionManager, consulta Session Format.