o que sobe e o que não sobe
Privacidade
Escrito para você conferir, não para você acreditar. Todo comando desta página roda na sua máquina e mostra exatamente o que está guardado.
O texto do seu prompt nunca sai daqui
O que o Batuta grava do seu turno é o hash do prompt, o número de caracteres e quantas palavras sobraram depois da limpeza. O texto, nunca.
E o hash é feito com um sal local — um número aleatório gerado uma vez na sua máquina, guardado em ~/.batuta/sal com permissão 0600, que nunca é enviado. Sem o sal, ninguém consegue testar um palpite de prompt contra o hash. Nem nós.
O que fica na sua máquina
| arquivo | o que é |
|---|---|
| ~/.batuta/sal | número aleatório criado uma vez, que nunca sai daí |
| ~/.batuta/indice.txt | nome, descrição e palavras das skills que você já tem |
| ~/.batuta/eventos.jsonl | uma linha por turno: hash do prompt, comprimento, skills sugeridas e se você usou alguma |
| ~/.batuta/config.txt | suas preferências |
Não fica gravado em lugar nenhum: o texto do seu prompt, a resposta do modelo, nome de arquivo do seu projeto, seu usuário, sua máquina.
O que sobe — se você deixar
Enviar dado é opt-in explícito. Vem desligado. Enquanto estiver desligado, nada sai da sua máquina — e o batuta report continua funcionando inteiro, offline. O valor local não é refém do upload.
Se você ligar, o que sobe é o resumo diário agregado por skill — nunca evento cru. 200 turnos por dia viram cerca de 20 linhas, mais ou menos assim:
{
"schema": "batuta.resumo_diario.v1",
"dia": "2026-08-24",
"instalacao": "9f2c1ab4de77e015",
"skills": [
{ "skill": "systematic-debugging", "rotas": 12, "ativacoes": 9,
"turnos_ok": 8, "custo_usd": 0.184, "fantasma": false }
]
}Sem prompt. Sem hash de prompt. Sem identificador de turno. Sem caminho de arquivo. O instalacao é derivado do próprio sal, então não carrega seu nome, sua máquina nem sua pasta — serve só para dizer “estas linhas vieram do mesmo lugar”.
Confira antes de decidir
batuta privacidade # o que está guardado, em português
batuta resumo # exatamente o que subiria, imprimido na sua tela
batuta config envio sim # só depois de ver o de cimaApagar tudo
rm -rf ~/.batutaÉ isso. Não tem conta, não tem login, não tem servidor guardando um espelho do seu histórico.
O holdout, declarado
Em 5% dos turnos o roteador se cala de propósito. Isso não é bug: é o grupo de controle que permite medir causa em vez de correlação. É declarado na primeira execução, é configurável e é desligável com batuta config holdout 0. Experimento escondido destrói o projeto — então ele não é escondido.