Ponytail para Claude Code: instalação, ajustes e o que muda
Ponytail é um prompt gratuito sob licença MIT que empurra o Claude Code para «a menor mudança que resolve a tarefa de verdade»: esse código precisa existir, o repositório já tem algo parecido, a biblioteca padrão dá conta — e só então escrever. Aqui estão a instalação, o que cada nível faz e o que o benchmark do próprio autor realmente mediu.
Ponytail em resumo
- O núcleo é um único prompt: skills/ponytail/SKILL.md traz todas as regras, e o plugin do Claude Code só o carrega automaticamente em cada sessão.
- A instalação são dois prompts separados, nesta ordem: /plugin marketplace add DietrichGebert/ponytail e depois /plugin install ponytail@ponytail.
- Três níveis — lite, full (padrão) e ultra — trocados com /ponytail lite ou /ponytail ultra e desligados com /ponytail off.
- Não é só escrever menos: /ponytail-review revisa um diff, /ponytail-audit ordena o repositório inteiro e /ponytail-debt recolhe os atalhos que você adiou.
DietrichGebert/ponytail — README
FonteGitHubchecked 2026-11-12
skills/ponytail/SKILL.md — the prompt itself
FonteGitHubchecked 2026-11-12
INSTALL.md — per-agent install steps
FonteGitHubchecked 2026-11-12
skills/ponytail-help/SKILL.md — levels, band, defaults
FonteGitHubchecked 2026-11-12
benchmarks/results/2026-10-07-agentic.md
FonteGitHubchecked 2026-11-12
dsh-ponytail — DeepSeek Harness port (unofficial)
Fontedeepseekharnessplugins.comchecked 2026-11-12
Todos os comandos, nomes de nível, chaves de configuração e números desta página foram lidos do repositório original em 2026-11-12. Os comandos com barra ficam sem tradução de propósito: um comando traduzido não executa.
Dados do repositório via API do GitHub em 2026-11-12: 189,276 estrelas, 10,531 forks, criado em 2026-06-12, última versão v5.3.3 publicada em 2026-10-29. As estrelas mudam todo dia: trate como um retrato, não como constante.
Instalar e usar o Ponytail passo a passo
- 1
Saiba o que está instalando
Ponytail é um conjunto de regras para agentes de código, publicado por Dietrich Gebert sob licença MIT em github.com/DietrichGebert/ponytail. O núcleo é um único arquivo de prompt, skills/ponytail/SKILL.md; todo o resto do repositório existe para carregar esse prompt em um agente específico. O plugin do Claude Code é o caminho «sempre ativo»: depois de instalado, vale em toda sessão e acrescenta um selo na statusline e uma série de comandos /ponytail-*.
O README é explícito: a escada é aplicada depois que o agente entende o problema, não no lugar disso. Preguiçoso com a solução, nunca com a leitura do código.
- 2
Verifique os pré-requisitos
Você precisa de um Claude Code com o comando /plugin e de Node.js no PATH. O plugin executa dois pequenos hooks de ciclo de vida em Node.js; sem o node os skills continuam funcionando, mas cada chamada de hook imprime um inofensivo node: command not found. Usuários de Nix e nvm: o node precisa estar no PATH do shell não interativo, não só no interativo.
Comandos
node --versionSe /plugin nem é reconhecido, seu Claude Code está desatualizado. Atualize e reinicie antes de seguir.
- 3
Adicionar o marketplace — primeiro prompt
Envie isto dentro do Claude Code. O comando registra o repositório como marketplace de plugins chamado ponytail; nada é instalado ainda.
Comandos
/plugin marketplace add DietrichGebert/ponytailO repositório traz seu próprio .claude-plugin/marketplace.json, por isso basta owner/repo: sem URL e sem caminho local.
- 4
Instalar o plugin — segundo prompt
Isto precisa ser enviado em um prompt separado. O formato é plugin@marketplace, então ponytail@ponytail significa «o plugin ponytail do marketplace ponytail». O INSTALL.md diz sem rodeios: é preciso enviar dois prompts separados para a instalação funcionar, e juntá-los em uma mensagem é a causa mais comum de a instalação não fazer nada.
Comandos
/plugin install ponytail@ponytailNo app de desktop do Claude Code, aba Code, dá para digitar os mesmos dois comandos na caixa de prompt, ou usar o botão + → Plugins → Add plugin para navegar pelos marketplaces configurados.
- 5
Confirmar que está mesmo ativo
Execute /ponytail sem argumento. Se o Ponytail estiver desligado, ele liga no nível padrão; se já estiver ligado, informa o nível atual. O modo ativo também aparece no texto de início e de troca de nível, e o selo da statusline o mostra pelo resto da sessão.
Comandos
/ponytailTeste funcional rápido: peça algo que claramente convida a sobreengenharia, como um seletor de data, e veja se o agente procura primeiro um componente Input existente e o seletor nativo do navegador antes de escrever qualquer coisa.
- 6
Escolher um nível
lite constrói exatamente o que foi pedido e nomeia em uma linha a opção menor, para você decidir. full é o padrão: a escada, um teste pequeno onde a lógica exige e uma resposta que nomeia o que foi deixado de fora. ultra ainda contesta o próprio pedido antes de construir. O nível fica até você mudá-lo ou a sessão terminar.
Comandos
/ponytail lite/ponytail full/ponytail ultra/ponytail offOutras duas saídas: dizer stop ponytail ou normal mode em linguagem normal, ou executar /ponytail off.
- 7
Revisar um diff com as mesmas regras
/ponytail-review não é um linter. Ele lê o código que a mudança toca, não só o diff, e relata nesta ordem: correto, seguro, aguenta carga real, testado, rápido, sem gordura. Cada achado precisa dizer o que o código faz, o que quebra, como corrigir e o que acontece se você não corrigir. Dá para estreitar ou ampliar o alvo com palavras simples.
Comandos
/ponytail-review/ponytail-review staged/ponytail-review branchSem alvo, ele revisa as mudanças não commitadas, ou o último commit se não houver nenhuma.
- 8
Auditar o repositório e recolher a dívida
/ponytail-audit roda as mesmas checagens no repositório inteiro: primeiro mapeia pontos de entrada e fluxo de dados, assume um nível de carga e diz qual, depois ordena os achados para você saber o que corrigir primeiro. /ponytail-debt recolhe num registro os comentários shortcut: que o agente deixou de propósito, para que «depois» não vire silenciosamente «nunca».
Comandos
/ponytail-audit/ponytail-debtO formato do comentário é fixo: shortcut: <o limite>, <quando atualizar>. É justamente por ser fixo que a colheita funciona.
- 9
Definir um padrão e manter atualizado
Há dois jeitos de mudar o nível com que cada sessão nova começa: a variável de ambiente PONYTAIL_DEFAULT_MODE ou o campo defaultMode em ~/.config/ponytail/config.json. A ordem de resolução é variável de ambiente, depois arquivo de configuração, depois full. Para atualizar, ative uma vez o auto-update em /plugin → Marketplaces → ponytail, ou atualize manualmente e recarregue os plugins.
Comandos
export PONYTAIL_DEFAULT_MODE=ultra/plugin marketplace update ponytail/reload-pluginsPara remover, rode primeiro o node scripts/uninstall.js do plugin e depois /plugin remove ponytail — o script é um arquivo do próprio plugin, então remover o plugin antes o apaga.
A escada: o que o Ponytail realmente muda
Toda a mudança de comportamento é uma escada de decisão. Antes de escrever código, o agente para no primeiro degrau que funciona por completo:
- 1Isso precisa existir? Recursos, opções e flexibilidade que ninguém pediu são descartados e nomeados em uma linha. Um pedido vago («faça um X») recebe a menor versão que faz o trabalho central.
- 2Já existe neste código — um helper, um componente, um serviço, um padrão? Então usa como o código ao redor usa.
- 3A biblioteca padrão ou um recurso da plataforma resolve? Então usa, a menos que o projeto tenha um componente próprio melhor que o widget nativo.
- 4Está numa dependência já instalada? Então usa. Nunca adiciona dependência por algumas linhas.
- 5Cabe em uma linha que se entende de relance? Uma linha.
- 6Senão: o mínimo de código que funciona — mais um teste pequeno ou autoverificação com assert se houver ramo, laço, parser, dinheiro ou segurança.
O que ele explicitamente nunca corta
A regra é «escreva só o que a tarefa precisa», não «escreva o mínimo possível». O prompt nomeia cinco coisas que ficam em qualquer nível:
- Validação nas fronteiras de confiança.
- Tratamento de erro que evita perda de dados.
- Segurança.
- Acessibilidade.
- Tudo que o usuário pediu explicitamente, mais a calibração que hardware real exige.
A outra metade da mudança está na resposta. Toda resposta termina com uma ou duas linhas nomeando o que foi omitido ou não verificado, e o risco que você precisa saber. É isso que torna o diff menor revisável em vez de suspeito.
Todos os comandos e o que cada um faz
O Ponytail acrescenta oito comandos. Os quatro últimos são os que passam batido em quem instala esperando só um estilo de escrita.
/ponytail [lite | full | ultra | off]Definir a intensidade ou desligar. Sem argumento, liga o Ponytail no nível padrão se estiver desligado; se já estiver ligado, informa o nível atual./ponytail band [on | off]Somente Claude Code: ocultar ou mostrar a faixa acima do prompt. Sem argumento alterna; o nível não muda./ponytail band importSomente Claude Code: adiciona suas sessões passadas do Claude Code ao painel local, com custo, tempo de agente e tokens./ponytail-reviewRevisa o diff atual como o sênior que é chamado quando quebra: bugs, segurança, carga real, código arriscado sem teste, caminhos lentos e o que dá para cortar. Aceita um alvo em palavras simples: uncommitted, staged, branch ou um link de PR./ponytail-auditAs mesmas checagens no repositório inteiro, do mais importante para o menos./ponytail-debtRecolhe num registro os comentários shortcut: adiados, para que «depois» não vire «nunca»./ponytail-gainMostra o placar de impacto medido do benchmark do autor./ponytail-helpUm cartão de referência de uso único sobre níveis, skills e comandos. Não muda o modo nem grava nada.
Outros agentes e o port para DeepSeek Harness
O prompt é portátil, e o repositório traz adaptadores para uma longa lista de hosts. Os três que mais importam:
- 1Codex: codex plugin marketplace add DietrichGebert/ponytail, depois codex plugin add ponytail@ponytail, então abra /hooks no Codex, confie nos dois hooks de ciclo de vida e inicie uma thread nova. No Codex os comandos são skills com namespace, invocados como $ponytail:ponytail-review.
- 2Cursor: faça git clone do repositório e rode node ponytail/scripts/cursor-hooks.js install. Isso funde dois hooks nativos em ~/.cursor/hooks.json e deixa seus hooks existentes intactos. O nível é trocado enviando uma mensagem normal como /ponytail lite; subagentes nunca recebem as regras porque o subagentStart do Cursor não injeta contexto.
- 3Qualquer outro agente: npx skills add DietrichGebert/ponytail copia os seis skills para a pasta de skills do agente, e copiar AGENTS.md para o projeto dá as regras permanentes sem nenhuma maquinaria de plugin.
- 4Quem usa DeepSeek Harness tem um port não oficial, o dsh-ponytail, cujos skills são adaptados deste mesmo repositório sob MIT. É uma adaptação de terceiros, não algo que Dietrich Gebert publique, então o comportamento é responsabilidade de quem portou.
Os números publicados e como lê-los
O README abre com reduções grandes. Todas vêm de um único arquivo do repositório, benchmarks/results/2026-10-07-agentic.md, e descrevem uma só configuração: Claude Code headless, Opus 5.5, effort padrão, Claude Code CLI 2.1.288, 39 tarefas, 5 execuções por tarefa e braço, 585 sessões. Não se reivindica aqui replicação independente.
- 1Linhas de código: -53% contra sem skill, com intervalo bootstrap de 95% de -63% a -41%. Tokens de saída -45%, custo -26%, tempo -41%.
- 2A correção não mudou: nas 18 tarefas com checagens ocultas, o Ponytail 5 passa 87 de 90 contra 86 de 90 sem skill. Nas seis tarefas de segurança, os três braços passam 30 de 30.
- 3Os testes aumentaram, não diminuíram: um teste onde a lógica exige apareceu em 98% das células contra 68% sem a skill, e os testes do próprio agente pegaram 66% dos bugs injetados contra 46%.
- 4As respostas foram preferidas em comparação cega, 110 a 67 contra a versão anterior, julgando se a resposta conta ao revisor tudo que ele precisa saber.
- 5A mistura de tarefas importa: 12 tickets de funcionalidade num repositório real de FastAPI + React, 18 tarefas cirúrgicas com checagens ocultas, 6 pedidos de «faça um app pequeno» e 3 de «mostre um exemplo». O Bash foi desligado em todos os braços, então se mede o que o agente escreve, não o que ele sabe depurar.
Leia esses números como «o autor mediu a própria ferramenta no próprio conjunto de tarefas». É um benchmark bem documentado — tabelas por tarefa, intervalos e uma nota específica sobre um defeito de isolamento do primeiro harness — mas não é auditoria de terceiros, e não promete os mesmos percentuais no seu repositório.
Limites honestos antes de instalar
Ponytail é um prompt. Nada o impõe, e várias coisas vale saber antes que ele entre num repositório de time.
- 1É um projeto de terceiros, não um produto da Anthropic. Licença MIT, mantido por uma pessoa; o README avisa que ele nunca distribui arquivos .exe ou .dll e que uma cópia que traga esses arquivos não é dele.
- 2É orientação, não portão. O modelo ainda pode construir demais, e numa tarefa cuja solução mínima já é óbvia a diferença fica perto de zero. A escada paga onde o agente, sem ela, inventaria estrutura.
- 3A faixa e o painel são só do Claude Code, exigem Claude Code 2.1.290 ou mais novo e não aparecem no painel de chat do VS Code, em sessões na nuvem nem em claude -p. Os dados de sessão ficam locais em ~/.config/ponytail/band/ a menos que você mesmo configure o webhook opcional.
- 4Alguns hosts perdem recursos. Sem hooks de ciclo de vida o nível não persiste entre sessões (Gemini CLI, Qwen, Antigravity, Goose); subagentes do Cursor nunca recebem as regras; os adaptadores de «só arquivo de regras» não têm comandos.
- 5Ele deixa estado fora da pasta do plugin: um arquivo de modo, ~/.config/ponytail/config.json, uma cópia do script de statusline e talvez uma entrada statusLine em ~/.claude/settings.json. Remover só o plugin deixa o selo mostrando o último modo.
Nada disso impede a instalação: significa que vale testar numa tarefa real do seu repositório e ler os primeiros diffs para calibrar quanto ele está cortando antes de levar para o time.
