Caveman learn e o Cave Score: como descobrir onde seus tokens estão vazando

O caveman learn é o comando que lê o histórico real do seu agente e devolve um relatório com o Cave Score mais os sumidouros de token ranqueados por fluxo, cada um com um fix de uma linha. O relatório também mostra quão fundo cada sessão entrou na janela de contexto, um replay do que os fixes teriam cortado no passado e uma ilustração de custo a preço de tabela em 30 dias. Roda local, somente leitura, sem conta. O caveman learn serve pra medir seu hábito, não pra prometer porcentagem
Numa sessão típica de cerca de 100 mil tokens, as respostas em prosa somam por volta de 6 mil tokens
Ou seja: o texto que o modelo escreve pra você, aquele que todo mundo tenta encurtar, é a menor parte da conta
O grosso está do outro lado, na entrada: histórico da conversa, conteúdo de arquivo, system prompt, tudo isso reenviado a cada turno
E aí entra o caveman learn, um comando que não chuta nada: ele escaneia o histórico real do agente, pontua e ranqueia os sumidouros de token, e devolve um relatório com o Cave Score na frente
Se você já tentou auditar o gasto de uma tarefa na mão, sabe o tamanho da chatice
A proposta aqui é essa mesma auditoria, só que automática e em cima do que VOCÊ já rodou
De skill de fala a motor de compressão: de onde vem o caveman
O caveman é um projeto open source de Julius Brussee, mantido no repositório JuliusBrussee/caveman
Ele nasceu como uma coisa quase de meme: uma skill que fazia o agente responder em estilo caveman (fala truncada, sem artigo, sem enrolação) pra cortar tokens de saída
Formação Claude Code
Domine Claude Code do absoluto zero até o avançado
- 114 aulas
- 4 projetos
- 9h 18min
A v2 mudou o alvo
Em vez de encurtar o que o modelo escreve, ela passou a comprimir o que o modelo LÊ: saídas de ferramenta, logs, código e JSON são comprimidos antes de entrarem no modelo
Faz sentido, né? Se o volume mora na entrada, é lá que o corte pesa
Os marcos recentes: a v2.1.0 saiu em 16 de agosto de 2026 e trouxe o context-depth report mais a vitrine do comando de diagnóstico no README
A v2.2.0 é a versão fixada no instalador
Tração o projeto tem de sobra: 98.774 estrelas no GitHub e 438.679 instalações em 18/08/2026
E tem outro detalhe que explica o pacote de hoje: caveman-code, cavekit e cavemem estão marcados como Frozen, com o desenvolvimento ativo movido pro repositório caveman
O núcleo de memória comprimida do cavemem passou a ser embarcado no caveman, o que importa mais adiante quando a gente falar de offload
Como instalar o caveman e rodar o primeiro diagnóstico
A instalação unificada é um one-liner de curl que roda o install.sh do repositório
- Inspecione antes de aplicar, com o dry-run:
curl -fsSL https://raw.githubusercontent.com/JuliusBrussee/caveman/v2.2.0/install.sh | bash -s -- --dry-run
O erro comum deste passo é o clássico: jogar um script da internet direto no bash sem olhar o que ele faz
O --dry-run existe pra isso, use ele
Com a inspeção feita, você repete a mesma linha sem a flag
- Se você quer instalar só pra um agente, use
--only <id>(por exemploclaude,geminioucodex)
O instalador é idempotente e pode ser reexecutado, então rodar de novo não quebra nada
O erro comum aqui é achar que reexecutar duplica config e sair caçando arquivo pra apagar na mão
- Dentro do Claude Code, tem o caminho de plugin pelo marketplace do próprio repositório:
/plugin marketplace add JuliusBrussee/caveman
/plugin install caveman@caveman
O erro comum: misturar os dois caminhos sem necessidade
Escolha um e siga
- Rode o diagnóstico:
caveman learn
O instalador detecta automaticamente os agentes presentes na máquina e roda o caminho de instalação nativo de cada um, com auto-detecção de mais de 30 agentes, entre eles Claude Code, Codex, Gemini CLI, Cursor, Windsurf, Cline, Copilot, Continue, Goose e Aider
O erro comum deste último passo é mental: gente que trava achando que precisa criar conta ou que o histórico vai ser enviado pra algum servidor
Não vai
O comando roda localmente, com acesso somente leitura ao histórico e sem exigir conta
O relatório vem com cinco blocos: o Cave Score, cada sumidouro ranqueado por fluxo com um fix de uma linha atrás de cada linha, quão fundo cada sessão entrou na janela de contexto, um replay do que os fixes teriam cortado nas sessões passadas e uma ilustração de custo a preço de tabela em 30 dias
Um aviso honesto: a escala do Cave Score e a fórmula da nota não estão documentadas nas fontes públicas
Então trate a primeira execução como SUA linha de base, não como uma nota universal pra comparar com o vizinho
As quatro classes de sumidouro: como interpretar cada linha do relatório
Aqui é onde a pontuação vira leitura acionável
Cada sumidouro do relatório vem etiquetado com uma classe, e a classe define o que fazer com ele
| Classe | O que significa | Exemplo | Ação correta |
|---|---|---|---|
| safe fix | Corte de baixo risco, dá pra tirar sem dor | CLAUDE.md inchado, skill que você nunca invoca |
Aplicar primeiro, é o ganho fácil |
| offload | Contexto que você recola toda sessão | Aquele bloco que você cola de novo em toda conversa | Mover pra memória do caveman quando o recall medir mais barato |
| habit | Padrão seu, não config | Jeito de trabalhar que infla a entrada | Ler os números e a sugestão suave, decidir você |
| load-bearing | Config que você precisa de verdade | Regra que sustenta seu fluxo | Não tocar, ela é contada no score e fica |
Se liga nessas duas últimas, que é onde a ferramenta ganha respeito
O habit vem com números MAIS uma sugestão suave, nunca uma ordem
E o load-bearing é contado no score e nunca é tocado, ou seja, a ferramenta não te empurra pra destruir a config que faz seu setup funcionar só pra melhorar a nota
Isso muda a leitura: um Cave Score que não é perfeito pode estar certíssimo
Do diagnóstico à mudança de hábito: implement e applied
Relatório bonito que ninguém aplica não economiza um token sequer, beleza?
Então tem o caminho de execução
- Entregue o plano ao seu próprio agente:
caveman learn implement
Esse comando usa a skill caveman-learn, que manda propor cada fix como diff, aplicar só com o seu sim, re-medir e reverter o que não baixou os tokens por turno
Repare no detalhe mais importante: a reversão automática do que não reduziu tokens por turno
É o oposto do "aplica tudo e reza"
O erro comum deste passo é sair dando sim em tudo sem ler o diff
O consentimento é por edição justamente pra você olhar
- Já arrumou uma coisa na mão? Registre:
caveman learn applied <sink_id>
As execuções seguintes indicam se o resultado melhorou, ficou igual, regrediu ou precisa de mais dados
Esse "precisa de mais dados" é uma resposta honesta e rara de se ver em ferramenta de otimização
O erro comum aqui é esperar veredito na execução seguinte, com duas sessões de amostra
- Use o context-depth report como termômetro entre uma rodada e outra
Ele mostra o pico de share da janela de contexto por sessão, agrupado em faixas, com contagem de sessões acima de 30% e acima de 50%
É um número que conversa direto com o tamanho da janela que você tem à disposição, e a régua muda MUITO de modelo pra modelo, como no caso do contexto de 1M de tokens do Gemini
Se suas sessões vivem acima de 50%, o problema não é a prosa da resposta
E tem a skill caveman-stats pra medir sem achismo: os números vêm do log JSONL da sessão em disco, o modelo não calcula nem estima
A saída é injetada pelo hook caveman-mode-tracker, que intercepta /caveman-stats
Quanto isso economiza de verdade
Agora a parte que interessa, e vou dar os dois lados
O número autodeclarado do projeto pro modo com proxy vem de um benchmark fixado: 54 execuções no Claude Code, 33,2% menos tokens de entrada reportados pelo provedor que o Claude Code direto, passando os 18 checks de resposta exata
Do outro lado, testes independentes bateram de frente com os 65% a 75% divulgados pra skill de fala caveman
Em teste pareado, a economia converge pra cerca de 8,5% em escala: de 592 mil pra 542 mil tokens de saída em 82 tarefas pareadas
8,5% contra 65%? Parece contradição, mas não é
São coisas DIFERENTES sendo medidas
A skill de fala corta prosa de saída, e a prosa é aquela fatia pequena que a gente citou lá em cima
Cortar boa parte de uma fatia pequena continua sendo pouco no total
Já o modo com proxy mexe na entrada, que é onde o volume mora, e por isso o número muda de patamar
E tem o custo do outro lado da conta, que quase ninguém lembra: as regras injetadas em toda requisição têm um overhead estimado, com padrão de 1.250 tokens por turno, sobrescrevível pela variável CAVEMAN_RULE_OVERHEAD_TOKENS
Em sessão curta, esse pedágio por turno pesa proporcionalmente mais
O que muda para quem usa Claude Code no dia a dia
O valor do caveman learn não é a porcentagem prometida, é a medição do SEU histórico
Ninguém consegue te dizer quanto você vai economizar sem olhar o que você faz, e é exatamente isso que o comando faz
Dois padrões que aparecem como custo fixo em TODO turno:
- CLAUDE.md inchado: cada linha que você escreveu lá viaja em toda requisição, pra sempre
- Skill que você nunca invoca: ocupa espaço no orçamento e não entrega nada
Esses são safe fix, o ganho fácil
Já aquele bloco de contexto que você recola toda santa sessão é candidato a offload, movido pra memória do caveman quando o recall medir mais barato que recolar
E olha, quem só quer o diagnóstico não é obrigado a comprar o pacote inteiro
Dá pra rodar o comando, ler o relatório, aplicar os fixes na mão e ignorar o resto
O que NÃO dá pra afirmar sem medir na sua máquina: quanto sobra no seu bolso
Os dois números que existem (os 33,2% do benchmark do projeto e os 8,5% do teste pareado independente) foram medidos em cenários específicos, com tarefas específicas
O seu fluxo é outro
Conclusão
O recado é simples: pare de tentar adivinhar onde o token vaza
Rode caveman learn uma vez, leia o Cave Score como linha de base, e comece só pelos safe fix (o CLAUDE.md inchado e a skill que você nunca chama)
Depois re-mede e compara, seja pelo caveman learn implement com diff e reversão automática, seja registrando na mão com caveman learn applied <sink_id>
Na sua próxima sessão, faça o teste: rode o comando ANTES de abrir a tarefa, olhe o context-depth report e veja quantas sessões suas passaram de 50% da janela
Se passaram várias, você acabou de achar seu vazamento 🙂
até o próximo post!
Perguntas frequentes
O caveman learn manda meu histórico de conversas pra algum servidor?
Não. O comando roda localmente, com acesso só de leitura ao histórico do agente, e não exige criação de conta. Nada do que ele lê sai da sua máquina.
Qual a diferença entre o Cave Score do caveman learn e a skill caveman-stats?
O caveman learn gera um diagnóstico completo com pontuação e sumidouros ranqueados. Já a caveman-stats lê o log JSONL da sessão em disco e reporta o consumo real de entrada e saída, sem o modelo calcular nem estimar nada.
A economia de tokens do caveman é mesmo de 65% a 75%, como o projeto divulga pra skill de fala caveman?
Testes independentes encontraram um número bem menor pra essa skill específica: em teste pareado, a economia converge pra cerca de 8,5% em escala, saindo de 592 mil pra 542 mil tokens de saída em 82 tarefas pareadas. Já o modo com proxy tem um benchmark fixado próprio, de 54 execuções no Claude Code, apontando 33,2% menos tokens de entrada frente ao Claude Code direto, passando os 18 checks de resposta exata.
Como funciona o comando caveman learn applied depois de aplicar um fix manualmente?
Você registra que aquele sumidouro específico foi corrigido rodando caveman learn applied <sink_id>. As execuções seguintes do diagnóstico comparam o resultado e indicam se melhorou, ficou igual, regrediu ou se ainda falta dado pra concluir.
Preciso rodar o caveman learn implement toda vez que uso o caveman learn?
Não, são passos separados. O caveman learn só diagnostica e ranqueia os sumidouros; quem aplica as mudanças é o caveman learn implement, que propõe cada fix como diff, só aplica com o seu sim e reverte sozinho o que não reduziu tokens por turno.
O que aconteceu com projetos antigos do mesmo autor, tipo cavemem e cavekit?
caveman-code, cavekit e cavemem estão marcados como Frozen no GitHub, e o desenvolvimento ativo migrou pro repositório caveman. O núcleo de memória comprimida do cavemem, inclusive, passou a ser embarcado direto no caveman, o que sustenta a parte de offload do relatório.
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Blog | Mais populares
Janela de 1 milhão de tokens do Ox Alpha: o que cabe de verdade em uma conversa?
O Ox Alpha 1 milhão de tokens surgiu sem dono declarado no OpenRouter e OpenCode. Veja contexto real, preço em preview e o que cabe numa conversa.
Print do erro ou texto colado: qual o custo de token de imagem, PDF e texto?
Entenda o custo de token de imagem: quantos tokens custam print de erro, PDF e texto colado no Claude, e a regra prática pra economizar em cada caso.
O que significa “ChatGPT network error” e como resolver
O “ChatGPT Network Error” é uma ocorrência frequente na rotina de muitos usuários do ChatGPT. Porém, poucos compreendem seu significado, quando esse erro surge, etc. […]
