O que é o Caveman no OpenCode e quando vale a pena usar?

Caveman no OpenCode é uma skill/plugin open source que faz o agente responder em estilo telegráfico, tipo homem das cavernas, pra cortar tokens de saída sem mexer no conteúdo técnico: código, comandos e mensagens de erro continuam literais
O projeto vive no repositório JuliusBrussee/caveman, passa de 94 mil estrelas e ganhou suporte oficial ao OpenCode na v1.8.0, já ativo desde a primeira mensagem
A economia declarada hoje é de 65% de tokens de SAÍDA, medida num benchmark de 10 prompts do próprio repo
Entrada e raciocínio ficam intactos, então em conversa curta o saldo pode ser negativo
Fala aí, beleza? Apareceu um agente que responde feito homem das cavernas pra gastar menos token, e o projeto já é enorme no GitHub, mas o que ele faz de verdade dentro do OpenCode ainda aparece pouco explicado por aí
Aí bate a dúvida: isso é meme ou é ferramenta séria?
É ferramenta séria, com repositório, releases e até um documento de números honestos assumindo os próprios limites
Neste post eu te conto o que o Caveman faz de verdade, como ele encaixa no OpenCode, como instalar só nele e, principalmente, QUANDO vale a pena ligar (e quando ele só atrapalha)
Bora?
O que o Caveman faz com a resposta do agente
O Caveman é um projeto open source que funciona como uma camada de compressão da resposta do agente
A ideia é simples de entender: em vez de o modelo escrever "basically, what you really just need to do here is…", ele corta pro osso e entrega a substância
As regras do projeto mandam remover artigos, palavras de enchimento (just, really, basically, simply), gentilezas e hedging, aquele tom de "talvez, possivelmente, se eu não estiver enganado"
E o que NÃO pode ser tocado?
Formação Agentes de IA
Domine a criação de Agentes de IA e Venda para Empresas
- 402 aulas
- 32 projetos
- 38h 19min
Os termos técnicos e os trechos literais
Código, comandos e mensagens de erro seguem exatamente como são, porque comprimir isso seria destruir a resposta em vez de encurtar ela
É compressão de estilo, não de conteúdo
Se você conhece minificação de JS, a analogia é boa: sai espaço em branco e nome longo, fica o comportamento igualzinho
O repositório oficial é o JuliusBrussee/caveman, e ele já passa de 94 mil estrelas no GitHub
Não é métrica de qualidade, mas é sinal de tração e de que muita gente tá olhando pro problema de resposta verbosa
Por que isso encaixa no OpenCode
Antes de falar de ativação, vale situar o terreno
O OpenCode é um agente de codificação open source pra terminal, feito pelo time do SST, com repositório sst/opencode
E ele tem uma característica que faz toda a diferença aqui: implementa o padrão Agent Skills de forma nativa
"Como assim nativo?"
O OpenCode expõe uma ferramenta skill que lista as skills instaladas por nome e descrição logo na inicialização, e só carrega as instruções completas quando o modelo decide que aquela skill se aplica
Carregamento sob demanda, sem entupir o contexto de cara
Uma skill, no fim, é uma pasta com um SKILL.md dentro
Se você ainda tá decidindo quando usar skill ou MCP, esse é exatamente o tipo de caso que mora do lado da skill: comportamento e instrução, não integração com serviço externo
E tem o segundo caminho, que é onde o Caveman se agarra de verdade: no OpenCode as instruções também podem vir do AGENTS.md e de arquivos apontados no campo instructions do opencode.json (que aceita caminhos, globs e URLs)
Sem AGENTS.md na raiz do projeto, o OpenCode cai no CLAUDE.md
Ou seja: skill nativa pra carregar sob demanda, e arquivo de regras pra valer sempre
O Caveman usa os dois
O que muda no comportamento do agente depois de ativar
Aqui tá a parte que interessa no dia a dia
O suporte oficial ao OpenCode entrou na versão 1.8.0 do Caveman, e a ativação é automática por padrão
Traduzindo: o agente já responde em caveman desde a primeira mensagem, você não precisa ficar chamando /caveman a cada sessão nova
Os comandos reconhecidos dentro do OpenCode são estes:
/caveman/caveman-commit/caveman-review/caveman-compress
Além deles, o projeto aceita gatilhos em linguagem natural, então dá pra pedir a mudança de estado conversando mesmo
E por baixo do capô?
O plugin usa hooks do próprio OpenCode
O hook session.created grava o modo padrão em ~/.config/opencode/.caveman-active
Já o tui.prompt.append observa o que você digita e troca o estado quando vê os comandos
Então o "ligado/desligado" não é mágica, é um arquivinho de estado no disco mais dois ganchos do agente
Se você curte esse papo de mudar o comportamento padrão do agente sem ficar repetindo instrução, o modo YOLO no OpenCode segue a mesma lógica de configuração que passa a valer sozinha
Níveis do Caveman: lite, full e ultra (e as variantes wenyan)
O Caveman não é liga/desliga só
O SKILL.md do projeto lista níveis de intensidade, e o padrão é o full
| Nível | O que é | Pra quem serve |
|---|---|---|
lite | Intensidade mais leve da compressão | Quem quer cortar o enchimento mas ainda ler frase montada |
full | Nível padrão do projeto | Ponto de partida pra maioria, é o que vem ligado |
ultra | Intensidade mais agressiva | Quem quer resposta no osso, só o essencial na tela |
wenyan-lite | Variante wenyan do nível leve | Listada no SKILL.md do repositório |
wenyan-full | Variante wenyan do nível padrão | Listada no SKILL.md do repositório |
wenyan-ultra | Variante wenyan do nível agressivo | Listada no SKILL.md do repositório |
As variantes wenyan aparecem listadas no SKILL.md do repositório oficial, e é lá que dá pra conferir o comportamento de cada uma antes de sair alternando
E o número de economia que o projeto declara é UM só, global (já já eu chego nele), não uma tabelinha por intensidade
Como instalar o Caveman só no OpenCode
O instalador do Caveman cobre vários agentes, mas dá pra mirar só no OpenCode
- Rode a instalação apontando só pro OpenCode
npx -y github:JuliusBrussee/caveman -- --only opencode- Se preferir não usar
npx, clone o repositório e rode o instalador na mão
node bin/install.js --only opencodeO erro comum deste passo: rodar o instalador sem o --only opencode e ele sair mexendo em configuração de outros agentes que você nem queria tocar
- Confira o que o instalador mexeu no seu
opencode.json
Ele inclui ./plugins/caveman/plugin.js no array plugin
- Confira o
AGENTS.md
O instalador acrescenta o conjunto de regras usando comentários marcadores, e o ruleset sempre-ligado fica em ~/.config/opencode/AGENTS.md
Esse detalhe não é decoração: o ruleset mora ali justamente pra valer mesmo se o plugin não carregar
O erro comum deste passo é achar que o plugin sozinho garante o comportamento
Não garante
Plugin cuida do estado e dos comandos, o arquivo de regras é quem segura o comportamento quando o plugin falha
Instalou e não funcionou? O que a comunidade está relatando
Tome cuidado aqui, porque a instalação no OpenCode acumula relato de problema em issues abertas no repositório oficial
Sintomas que aparecem por lá:
- OpenCode não inicia depois de instalar (issue #422)
- Erro
ENOENTcopiandocaveman-compress.md, porque o arquivo está ausente no repositório (issues #426 e #482) - Instalação por
npxincompleta, sem criar~/.config/opencode/agentse~/.config/opencode/skills(issue #463)
E qual é a causa de fundo?
O próprio projeto conta na release v1.9.0, que tem o título "Rock pinned. Rock verified. opencode rock work now."
Até ali, o plugin do OpenCode simplesmente NUNCA carregava
O motivo é ótimo pra quem gosta de bastidor: o OpenCode roda plugins dentro de um binário Bun compilado, onde require() de arquivos em disco e import() de CJS falham em silêncio
Falha em silêncio é o pior tipo de falha, você jura que instalou e nada acontece
A v1.9.0 foi a primeira versão testada contra um runtime real do OpenCode
Depois disso veio a v1.9.1, a mesma release que se chama "65%, honestly" e unificou o número de economia do projeto
Ela consertou outro caso chato: instalar pra OpenCode com --force apagava um AGENTS.md legado em vez de migrar ele
Agora migra
Prevenção que vale pra todo mundo: use o repositório oficial e confira a versão antes de sair debugando
Existem ports e pacotes de terceiros circulando, como anthonystepvoy/caveman-opencode, dantesCode/caveman-opencode-plugin e o pacote npm @mumme-it/opencode-caveman
São repositórios e contas distintas de JuliusBrussee/caveman, então se você instalou de um deles e algo quebrou, o problema pode nem estar no projeto original
Quando usar o Caveman no OpenCode (e quando ele atrapalha)
Compensa quando:
- Você passa horas em sessão longa de terminal e a resposta gigante vira scroll infinito
- O modelo tá verboso demais pro seu gosto e você só quer o comando e o diagnóstico
- Leitura rápida importa mais que texto redondinho, tipo review e commit
Agora a parte que o próprio projeto documenta e que quase ninguém repete quando compartilha o link
O Caveman só encolhe tokens de SAÍDA
Entrada e raciocínio ficam intactos
E a própria skill soma cerca de 1 mil a 1,5 mil tokens de entrada por turno de overhead, porque as regras precisam estar no contexto pra valer
Sabe o que isso significa?
Em carga já enxuta, em conversa curtinha, o saldo pode ficar LÍQUIDO NEGATIVO
Você paga overhead de entrada pra economizar numa saída que já era pequena
O próprio projeto diz que, na prática, o ganho principal é legibilidade e velocidade
Economia é consequência, não a promessa
Vale a pena ativar o Caveman?
A economia declarada hoje pelo projeto é de 65% de redução média de tokens de saída
E olha a origem do número, que é o que interessa: ele vem de um benchmark de 10 prompts versionado no repositório
Dez prompts
É um sinal, não é lei da física pro seu projeto
Esse é justamente o valor que foi unificado na v1.9.1, a release "65%, honestly", o que já diz bastante sobre a postura do projeto com os próprios números
Meu veredito por perfil:
- Sessão longa e verbosa no terminal: liga, o ganho de leitura sozinho já paga
- Uso curto e pontual: provavelmente não compensa, você entra no cenário de saldo negativo que o projeto assume
- Ambiente de trabalho crítico: vá com calma, porque o histórico de instalação no OpenCode ainda tem issues abertas de plugin que não carrega e arquivo ausente
O risco de instalação instável é real e tem que ser declarado, não adianta pintar tudo de topzera
Mas repara que ele é reversível: no pior caso, você tira a entrada do array plugin e limpa o bloco entre os marcadores do AGENTS.md
Conclusão
Recapitulando o que ficou de pé:
O Caveman é um projeto open source que comprime o ESTILO da resposta do agente, cortando artigo, filler, gentileza e hedging, e preservando termo técnico, código e mensagem de erro
No OpenCode ele entrou oficialmente na v1.8.0, ativa por padrão, com comandos como /caveman e /caveman-review, hooks session.created e tui.prompt.append, e o ruleset sempre-ligado em ~/.config/opencode/AGENTS.md
Os 65% são de saída, num benchmark de 10 prompts, com overhead de entrada assumido pelo próprio projeto
Próximo passo concreto se você quiser testar: instala só no OpenCode com --only opencode e alterna entre lite, full e ultra até achar o ponto de leitura confortável pro SEU jeito de trabalhar
E acompanha as releases do repositório oficial, porque esse é daqueles projetos que muda rápido e a versão que você instalou hoje pode ser exatamente a que consertou o seu problema 😀
Até o próximo post!
Perguntas frequentes
Quanto de token o Caveman realmente economiza no OpenCode?
O número declarado pelo projeto é 65% de redução média de tokens de saída, medido sobre um benchmark de 10 prompts que fica versionado no próprio repositório. Esse percentual foi unificado na release v1.9.1, a mesma que se chama ‘65%, honestly’ e que também passou a migrar o AGENTS.md legado na instalação com –force. É economia de output, não do pacote inteiro da conversa.
O Caveman compensa em conversas curtas dentro do OpenCode?
Nem sempre. A própria skill soma cerca de 1 mil a 1,5 mil tokens de entrada por turno como overhead, e o projeto documenta que esse custo pode deixar o saldo negativo em cargas já enxutas. Em sessões longas e verbosas o corte tende a compensar mais que em trocas rápidas de mensagem.
Como troco o nível do Caveman sem reiniciar a sessão no OpenCode?
Dá pra usar os comandos reconhecidos dentro do OpenCode, como /caveman, /caveman-commit, /caveman-review e /caveman-compress, além de pedir a troca em linguagem natural. Por baixo do capô, o hook tui.prompt.append observa o que você digita e atualiza o estado gravado em ~/.config/opencode/.caveman-active.
Quais problemas de instalação do Caveman no OpenCode já foram relatados?
O repositório oficial acumula issues abertas sobre isso: a #422 relata o OpenCode não iniciando após a instalação, as #426 e #482 apontam erro ENOENT ao copiar o caveman-compress.md (arquivo ausente no repositório), e a #463 descreve instalação via npx incompleta, sem criar as pastas ~/.config/opencode/agents e ~/.config/opencode/skills. Vale checar essas issues antes de instalar em máquina de produção.
Existe versão oficial do Caveman para OpenCode fora do repositório JuliusBrussee/caveman?
Não. O repositório oficial é o JuliusBrussee/caveman, e o suporte ao OpenCode entrou nele na versão 1.8.0. Pacotes como anthonystepvoy/caveman-opencode, dantesCode/caveman-opencode-plugin e o pacote npm @mumme-it/opencode-caveman são projetos de terceiros, com contas e repositórios distintos do oficial.
O Caveman muda o código ou só o texto que o agente escreve ao redor dele?
Só o texto ao redor. As regras do projeto mandam remover artigo, filler, gentileza e hedging da explicação, mas código, comandos e mensagens de erro seguem literais, sem compressão. A ideia é cortar o enchimento da fala do agente sem tocar na substância técnica da resposta.
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Blog | Mais populares

As diferenças de var, let e const

Como fazer redirecionamento com PHP
Neste artigo você vai aprender a como fazer redirecionamento com PHP, utilizaremos abordagens fáceis de entender e de aplicar Fala programador(a), beleza? Bora aprender mais […]

ChatGPT: o que é, como usar, dicas e como acessar login
ChatGPT é uma ferramenta de processamento de linguagem natural (NLP) baseada na arquitetura GPT-3.5, desenvolvida pela OpenAI. Sua criação representa um marco significativo no campo […]
