Flamerix AI reduz em até 26% custo do Claude Code com script
Ferramenta open source cria gancho em timers do Claude Code para bloquear resumos automáticos de agentes em segundo plano, que podem consumir até 26% da cota de uso.

Tecnologia
Solução open source otimiza o uso do Claude Code, diminuindo custos ao bloquear processos automáticos que consomem recursos.
Leia também: Upwind rejeita oferta da Datadog e capta US$ 400 mi em Série C
Um script open source criado pela Flamerix AI promete reduzir de forma significativa o consumo de recursos do Claude Code ao desativar, no lado do cliente, os resumos automáticos de agentes em segundo plano — mecanismo interno que, segundo medições independentes, pode responder por até um quarto do gasto de uso do ambiente.
Resumo automático pesa até 26% no uso
O Claude Code mantém, a cada cerca de 30 segundos, um ciclo em que envia todo o histórico de cada agente em background para o modelo configurado (geralmente a variante mais potente) com uma instrução simples: descrever a ação mais recente em 3 a 5 palavras. Essa resposta é usada apenas para atualizar a linha de status do agente na interface, sem interferir na conversa principal.
Não há configuração oficial para desligar esse comportamento, que está ativado por padrão nas versões mais recentes do Claude Code. Nas medições citadas pela Flamerix AI, o fluxo identificado como agent_summary nos dados de observabilidade passou a consumir entre 18% e 26% da estimativa de custo por requisição. Em assinaturas, esse gasto não aparece diretamente na fatura, mas reduz a folga de limite de uso de cada usuário.
A anomalia foi detectada ao agrupar eventos de API do Claude Code pelo campo query_source em exportações de OpenTelemetry. Em alguns cenários, o custo estimado de agent_summary superou o da própria sessão principal de conversa.
Como funciona o no-agent-summary.js
Para contornar o problema, a Flamerix AI lançou o no-agent-summary.js, um arquivo de preload para o runtime Bun, com cerca de 80 linhas de código. Em vez de alterar o binário do Claude Code, o script intercepta chamadas a setTimeout e setInterval e examina o código-fonte da função de callback.
Quando o texto dessa função contém um “marcador” específico associado ao temporizador de resumo — por exemplo, uma linha de log que menciona [AgentSummary] — o preload devolve um identificador inerte, sem armar o timer. Na prática, o ciclo de resumo é impedido de disparar. Todos os outros timers, ligados a funcionalidades normais do programa, seguem funcionando.
O mecanismo explora um detalhe do Bun: mesmo quando o módulo principal do cliente é entregue em bytecode pré-compilado, o método Function.prototype.toString ainda retorna uma representação textual da função. Isso permite ao gancho reconhecer o timer de resumo por um trecho de string embutido no callback.
Para garantir que o timer nunca seja executado, o handle “inativo” usa um atraso de exatamente 2³¹−1 milissegundos. Valores maiores são tratados pelo Bun (e por runtimes compatíveis, como o Node) como 1 ms, o que faria um “timer infinito” disparar imediatamente — comportamento que o script evita.
Instalação exige Bun preload global
O arquivo no-agent-summary.js precisa ser salvo em um caminho estável no sistema, com o caminho absoluto usado na configuração. A recomendação é definir a variável de ambiente BUN_OPTIONS globalmente, de forma que todo processo do Claude Code seja iniciado já com o preload carregado.
Isso pode ser feito ajustando o ambiente de shell ou criando um wrapper chamado claude colocado antes do binário oficial no PATH. O wrapper apenas injeta o BUN_OPTIONS adequado antes de delegar a execução ao binário original, mantendo o processo idempotente mesmo quando uma instância do Claude Code lança outra.
Depois da configuração, é necessário reiniciar o daemon do Claude Code e todas as sessões em andamento, garantindo que os novos processos herdem a variável de ambiente com o preload ativado.
Como verificar se o resumo foi desativado
Para checar se o gancho está ativo, o autor do script sugere iniciar o Claude Code em um ambiente com BUN_OPTIONS configurado e observar o log de inicialização. Em modo correto, deve aparecer uma mensagem indicando o preload em modo active com mode=off para os resumos. A ausência desse trecho indica que a variável não chegou ao processo ou que o caminho do arquivo não é absoluto.
Outra forma de teste é definir CC_AGENT_SUMMARY_LOG apontando para um arquivo temporário, rodar um subagente em segundo plano por alguns minutos e analisar o log. Em cenário esperado, o arquivo registra a supressão do primeiro temporizador de resumo (por exemplo, Timer #1 suppressed (setTimeout, delay=30000)) e o status do agente na interface deixa de ser atualizado periodicamente.
Em ambientes com OpenTelemetry, a verificação mais abrangente é acompanhar os eventos de API com query_source = agent_summary. Se o script estiver funcionando, esse contador deve permanecer em zero, mesmo com agentes em background ativos.
Entenda o contexto
O cliente de linha de comando do Claude Code distribui binários estáticos, incluindo uma versão para Linux x64 empacotada em um pacote npm. A partir de determinada versão, o mecanismo de resumo em segundo plano passou a ser ativado por padrão para mais usuários, o que se refletiu em um salto na parcela de consumo atribuída ao agent_summary nas semanas seguintes.
Nos dados da própria Flamerix AI, a fatia desse fluxo no total de “spend” semanal — a estimativa interna de custo em dólar por requisição — saiu de algo entre 3,5% e 7% em um período inicial para 7,3% na semana em que uma atualização do cliente foi adotada, chegando a cerca de 16% em meados de outubro.
Testes de campo conduzidos pela desenvolvedora indicam que carregar o preload sem ativar o modo de bloqueio não altera o comportamento do Claude Code. Já com o modo “off” ligado, os eventos de fork associados ao resumo automático deixam de ser emitidos.
Riscos, licença e limites
O no-agent-summary.js é distribuído sob licença MIT, com a ressalva de que é fornecido “no estado em que se encontra”, sem qualquer garantia. A Flamerix AI afirma não se responsabilizar por danos, perdas de dados ou medidas em contas de terceiros decorrentes do uso do script.
O projeto também alerta que modificar o comportamento de tempo de execução de um cliente pode conflitar com os termos de uso do serviço em questão. Cabe ao próprio usuário verificar as regras da plataforma antes de adotar a solução.
Por depender de correspondência de texto no callback do temporizador, o gancho é sensível a mudanças internas do cliente do Claude Code: se uma atualização alterar o código-fonte associado ao timer de resumo e remover ou alterar o “marcador” esperado, o script deixa de reconhecer o alvo e os resumos voltam silenciosamente. Por isso, a recomendação é repetir o procedimento de verificação sempre que o cliente for atualizado.
No material de divulgação, a Flamerix AI reforça ainda que o projeto é independente, não tem vínculo oficial nem é endossado pela Anthropic, dona das marcas registradas “Claude” e “Claude Code”.


