Sessões
Pi salva conversas como sessões para que você possa continuar o trabalho, ramificar-se de turnos anteriores e revisitar caminhos anteriores.
Armazenamento de sessão
As sessões são salvas automaticamente em ~/.pi/agent/sessions/, organizadas por diretório de trabalho. Cada sessão é um arquivo JSONL com uma estrutura em árvore.
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 sessionUse /session no modo interativo para ver o arquivo da sessão atual, ID da sessão, contagem de mensagens, tokens e custo.
Para o formato de arquivo JSONL e SessionManager API, consulte Session Format.
Comandos de sessão
| Comando | Descrição |
|---|---|
/resume |
Navegue e selecione sessões anteriores |
/new |
Iniciar uma nova sessão |
/name <name> |
Defina o nome de exibição da sessão atual |
/session |
Mostrar informações da sessão |
/tree |
Navegue pelo session tree atual |
/fork |
Crie uma nova sessão a partir de uma mensagem de usuário anterior |
/clone |
Duplicar o branch ativo atual em uma nova sessão |
/compact [prompt] |
Resuma o contexto mais antigo; veja Compaction |
/export [file] |
Exportar sessão para HTML |
/share |
Carregar como essência GitHub privada com link HTML compartilhável |
Retomando e excluindo sessões
/resume abre um seletor de sessão interativo para o projeto atual. pi -r abre o mesmo seletor na inicialização.
No seletor você pode:
- pesquise digitando
- alternar exibição do caminho com Ctrl+P
- alterne o modo de classificação com Ctrl+S
- filtrar para sessões nomeadas com Ctrl+N
- renomear com Ctrl+R
- exclua com Ctrl+D e confirme
Quando disponível, pi usa trash CLI para exclusão em vez de remover arquivos permanentemente.
Nomeando Sessões
Use /name <name> para definir um nome de sessão legível:
/name Refactor auth moduleDefina o nome na inicialização com --name ou -n:
pi --name "Refactor auth module"
pi --name "CI audit" -p "Review this build failure"Sessões nomeadas são mais fáceis de encontrar em /resume e pi -r.
Ramificação com /tree
As sessões são armazenadas como árvores. Cada entrada possui id e parentId, e a posição atual é a folha ativa. /tree permite pular para qualquer ponto anterior e continuar a partir daí sem criar um novo arquivo.

Forma de exemplo:
├─ 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 árvore
| Chave | Ação |
|---|---|
| ↑/↓ | Navegue pelas entradas visíveis |
| ←/→ | Página para cima/para baixo |
| Ctrl+←/Ctrl+→ ou Alt+←/Alt+→ | Dobre/desdobre ou salte entre segmentos de ramificação |
| Shift+L | Definir ou limpar um rótulo na entrada selecionada |
| Mudança + T | Alternar carimbos de data/hora do rótulo |
| Digitar | Selecione a entrada |
| Escapar/Ctrl+C | Cancelar |
| Ctrl+O | Modo de filtro de ciclo |
Os modos de filtro são: padrão, sem ferramentas, somente usuário, somente rotulado e todos. Configure o padrão com treeFilterMode em Settings.
Comportamento de seleção
Selecionando um usuário ou mensagem personalizada:
- Move a folha para o pai da mensagem selecionada.
- Coloca o texto da mensagem selecionado no editor.
- Permite editar e reenviar, criando um novo branch.
Selecionando um assistente, ferramenta, compactação ou outra entrada que não seja do usuário:
- Move a folha para essa entrada.
- Deixa o editor vazio.
- Permite que você continue a partir desse ponto.
Selecionar a mensagem do usuário root redefine a folha para uma conversa vazia e coloca o prompt original no editor.
/tree, /fork e /clone
| Recurso | /tree |
/fork |
/clone |
|---|---|---|---|
| Saída | Mesmo arquivo de sessão | Novo arquivo de sessão | Novo arquivo de sessão |
| Visualizar | Árvore completa | Seletor de mensagens do usuário | Filial ativa atual |
| Uso típico | Explorar alternativas existentes | Iniciar uma nova sessão a partir de um prompt anterior | Duplique o trabalho atual antes de continuar |
| Resumo | Resumo da filial opcional | Nenhum | Nenhum |
Use /tree quando quiser manter as alternativas juntas. Use /fork ou /clone quando desejar um arquivo de sessão separado.
Resumos de filiais
Quando /tree muda de um ramo para outro, pi pode resumir o ramo abandonado e anexar esse resumo na nova posição. Isso preserva o contexto importante do caminho que você deixou sem repetir todo o branch.
Quando solicitado, escolha um dos seguintes:
- sem resumo
- resumir com o prompt padrão
- resumir com instruções de foco personalizadas
Veja Compaction para branch summarization internos e ganchos de extensão.
Formato de sessão
Os arquivos de sessão são JSONL e contêm entradas de mensagens, alterações de modelo, alterações de nível de pensamento, rótulos, compactações, resumos de ramificação e entradas de extensão.
Para analisadores, extensões, uso de SDK e o SessionManager API completo, consulte Session Format.