Configuração, personalização, ajustes de plataforma e referências de API para Pi.

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 session

Use /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 module

Defina 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.

Tree View

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:

  1. Move a folha para o pai da mensagem selecionada.
  2. Coloca o texto da mensagem selecionado no editor.
  3. Permite editar e reenviar, criando um novo branch.

Selecionando um assistente, ferramenta, compactação ou outra entrada que não seja do usuário:

  1. Move a folha para essa entrada.
  2. Deixa o editor vazio.
  3. 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:

  1. sem resumo
  2. resumir com o prompt padrão
  3. 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.