Skip to content

Sessões e contexto

O Jarvis Code CLI persiste cada conversa como uma "sessão" — guardando o histórico de mensagens e os metadados para que você possa fechar o terminal e continuar exatamente de onde parou. Esta página cobre como retomar sessões, gerenciar contexto e exportar ou bifurcar sessões.

Armazenamento de sessões

Todas as sessões são salvas em $JARVIS_CODE_HOME/sessions/ (padrão: ~/.jarvis-code/sessions/), agrupadas por diretório de trabalho:

text
~/.jarvis-code/
├── config.toml
├── session_index.jsonl
└── sessions/
    └── <workDirKey>/
        └── <sessionId>/
            ├── state.json
            └── agents/
                ├── main/
                │   └── wire.jsonl
                └── <subagentId>/
                    └── wire.jsonl
  • state.json: metadados da sessão, como título e horário de criação.
  • agents/*/wire.jsonl: o fluxo de eventos do agente, usado para recuperação e replay da sessão. Ele também carrega um trace de requisição — os esquemas de ferramenta, os parâmetros de requisição e as listagens de ferramentas MCP enviadas ao modelo — para depuração.

WARNING

Não edite manualmente arquivos dentro do diretório sessions/ — fazer isso pode impedir que as sessões sejam restauradas corretamente.

Iniciar e retomar sessões

Toda vez que você executa jarvis diretamente, uma nova sessão é criada. Para retomar uma sessão anterior, use uma das opções abaixo:

Retomar a sessão mais recente do diretório atual:

sh
jarvis --continue

Retomar uma sessão específica pelo ID:

sh
jarvis --session abc123

Percorrer o histórico de sessões interativamente e escolher uma:

sh
jarvis --session

WARNING

--continue e --session são mutuamente exclusivos.

Trocar de sessão dentro da TUI

Você pode gerenciar sessões sem sair do terminal. Os comandos de barra a seguir só estão disponíveis quando o agente está em repouso:

  • /new (alias /clear): troca para uma nova sessão, descartando o contexto atual.
  • /sessions (alias /resume): percorre e retoma uma sessão anterior.
  • /fork: bifurca a sessão atual (veja abaixo).
  • /title <text> (alias /rename): define um título de sessão para identificá-la mais facilmente; sem argumentos, exibe o título atual.

Compactação de contexto

Conforme a conversa cresce, o Jarvis Code CLI compacta automaticamente o histórico de mensagens quando o contexto se aproxima do limite da janela, liberando espaço de tokens. Você também pode disparar a compactação manualmente a qualquer momento:

/compact

Você pode passar uma dica para dizer ao modelo o que priorizar ao compactar:

/compact Preserve a discussão sobre migrações de banco de dados

Bifurcar uma sessão

Para explorar uma direção nova sem atrapalhar a conversa atual, use /fork:

/fork

Bifurcar não muda você de lugar: você permanece na sessão original e a conversa continua intacta. A bifurcação é uma cópia independente para a qual você pode trocar a qualquer momento com /sessions. Uma meta salva com /goal não é copiada para a bifurcação. Inicie uma nova meta lá se quiser trabalho autônomo por meta.

Depois de bifurcar, o CLI imprime um comando pronto para executar que entra no diretório de trabalho e roda jarvis --resume <forkId> (também copiado para a área de transferência), para você entrar na bifurcação direto de um novo processo de terminal.

Exportar uma sessão

Use jarvis export para empacotar uma sessão como arquivo ZIP — útil para compartilhar, arquivar ou abrir um relatório de bug:

sh
jarvis export <sessionId>

Omitir sessionId exporta a sessão mais recente do diretório atual (com um prompt de confirmação interativo; adicione -y para pular). Use -o para especificar um caminho de saída:

sh
jarvis export <sessionId> -o ~/Desktop/minha-sessao.zip

A exportação inclui todos os arquivos do diretório da sessão, inclusive logs de diagnóstico. O log de diagnóstico global (~/.jarvis-code/logs/jarvis-code.log) também é incluído por padrão; adicione --no-include-global-log para excluí-lo.

Você também pode exportar de dentro da TUI, sem sair da sessão interativa:

  • /export-debug-zip: produz o mesmo ZIP de depuração que jarvis export, sempre incluindo o log de diagnóstico global.
  • /export-md (alias /export): exporta a conversa como um arquivo Markdown legível, adequado para compartilhar ou arquivar. Aceita um argumento opcional de caminho; sem ele, escreve em jarvis-export-<short-id>-<timestamp>.md no diretório de trabalho atual.

TIP

Arquivos exportados podem conter código, saída de comandos e caminhos de arquivo sensíveis. Revise o conteúdo antes de compartilhar.

Próximos passos

  • Locais de dados — layout completo de diretórios dos arquivos de sessão
  • Modo Tower — quando uma tarefa precisa de vários agentes em branches separados, em vez de uma única sessão
  • Comando jarvis — referência completa de parâmetros de --continue, --session, export e outros comandos