TL;DR
A Anthropic acidentalmente incluiu um arquivo .map no pacote npm do Claude Code, expondo o código-fonte completo e legível de sua ferramenta CLI. O vazamento revela mecanismos anti-distilação com injeção de ferramentas falsas, um motor de regex para detecção de frustração, um “modo secreto” que oculta a autoria de IA em commits de código aberto e um modo de agente autônomo não lançado chamado KAIROS. Aqui está o que os desenvolvedores de API devem saber sobre como as ferramentas de codificação de IA funcionam por debaixo dos panos.
Introdução
Em 31 de março de 2026, o pesquisador de segurança Chaofan Shou descobriu que a Anthropic havia incluído um arquivo de mapa de origem (.map) junto com o pacote npm do Claude Code. Mapas de origem são arquivos de depuração que mapeiam o código de produção minificado de volta ao código-fonte legível por humanos. Eles deveriam ser removidos antes da publicação.
Mas não foram. O código-fonte completo do Claude Code, com comentários, codinomes internos e detalhes de arquitetura, ficou legível para qualquer pessoa que baixasse o pacote.
A descoberta atingiu o primeiro lugar no Hacker News (1.888 pontos, 926 comentários) e se espalhou por Reddit, Twitter e fóruns de desenvolvedores em questão de horas. A Anthropic removeu o pacote, mas o código já havia sido espelhado e analisado extensivamente.
Este artigo analisa as principais descobertas técnicas e o que elas significam para desenvolvedores que dependem de ferramentas de codificação de IA.
Como o código-fonte vazou
A causa raiz: um bug na ferramenta de build Bun
O Claude Code é construído com Bun, um runtime JavaScript alternativo. Em 11 de março de 2026, um bug foi registrado contra o Bun (oven-sh/bun#28001) relatando que os mapas de origem são servidos em modo de produção, apesar da documentação do Bun especificar que deveriam ser desabilitados.
O pipeline de build da Anthropic acionou esse bug. Quando eles publicaram o pacote npm do Claude Code, o arquivo .map foi incluído na distribuição. Qualquer pessoa que executasse npm pack @anthropic-ai/claude-code ou inspecionasse o conteúdo do pacote poderia acessar o código-fonte completo e não minificado.
A ironia é notável: um bug na própria cadeia de ferramentas da Anthropic, o runtime Bun que eles escolheram para o Claude Code, vazou seu código-fonte proprietário através do registro npm para o qual eles publicam. O mesmo registro npm que, no mesmo dia, distribuiu o pacote Axios comprometido.
O que foi exposto
O vazamento incluiu:
- Código-fonte TypeScript completo em todos os módulos
- Comentários internos explicando decisões de design
- Flags de recursos e configurações experimentais
- Templates de prompt do sistema e mecanismos de segurança
- Codinomes internos para recursos não lançados
- Detalhes de otimização de desempenho com métricas específicas
Este não é um vazamento parcial ou um lançamento de código aberto sanitizado. É a base de código de produção com o contexto de engenharia interno intacto.
Anti-distilação: protegendo contra roubo de modelo
Injeção de ferramentas falsas
Uma das descobertas mais discutidas é o sistema anti-distilação do Claude Code. Em claude.ts (linhas 301-313), quando a flag ANTI_DISTILLATION_CC está ativada, o sistema envia anti_distillation: ['fake_tools'] nas requisições da API.
Isso instrui o servidor da Anthropic a injetar definições de ferramentas-isca no prompt do sistema. O objetivo: se um concorrente registrar o tráfego da API para extrair e replicar o comportamento de uso de ferramentas do Claude, os dados de treinamento conterão ferramentas falsas que não existem. Um modelo treinado com esses dados envenenados alucinaria capacidades inexistentes.
Esta é uma defesa prática contra uma ameaça real. Concorrentes podem configurar serviços de proxy que interceptam chamadas de API do Claude, registram os prompts do sistema e as definições de ferramentas, e usam esses dados para ajustar seus próprios modelos. As ferramentas falsas tornam esses dados capturados não confiáveis.
Sumarização de texto do conector
Um segundo mecanismo anti-distilação em betas.ts (linhas 279-298) adota uma abordagem diferente. Este sistema do lado do servidor armazena em buffer o texto do assistente entre as chamadas de ferramentas, o resume e retorna o resumo com uma assinatura criptográfica.
Em turnos de conversa subsequentes, o texto original pode ser restaurado a partir da assinatura. Mas qualquer pessoa que registre o tráfego da API captura apenas os resumos, não o texto completo do raciocínio. Isso torna mais difícil fazer engenharia reversa dos padrões de raciocínio do Claude a partir de conversas de API interceptadas.
Quão fácil é contorná-los?
A análise revelou vários caminhos de bypass:
- Um proxy man-in-the-middle poderia remover o campo
anti_distillationantes que as requisições da API cheguem aos servidores da Anthropic - Definir a variável de ambiente
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETASdesabilita todo o sistema anti-distilação - As proteções funcionam apenas contra gravação passiva de tráfego, não contra uso ativo da API
Isso não significa que as proteções sejam inúteis. Elas aumentam o custo e a complexidade da distilação automatizada de modelos. Mas são medidas de defesa em profundidade, não escudos inquebráveis.
Modo Secreto: ocultando a autoria de IA
O que o modo secreto faz
O arquivo undercover.ts contém uma das descobertas mais controversas do vazamento. Quando o Claude Code opera em repositórios não Anthropic, ele ativa um sistema de mascaramento de comportamento que impede:
- Menções de codinomes internos como “Capybara” ou “Tengu”
- Referências a canais internos do Slack ou nomes de repositórios
- A própria frase “Claude Code” aparecendo nos resultados
O comentário no código-fonte é explícito: “NÃO há desativação forçada. Isso protege contra vazamentos de codinomes de modelos.”
Por que isso é importante para o código aberto
O efeito prático: quando funcionários da Anthropic usam o Claude Code para escrever commits, pull requests ou revisões de código em projetos de código aberto, a ferramenta oculta evidências de envolvimento de IA. Contribuições de IA para repositórios de código aberto não teriam a divulgação da autoria de IA.
Isso levanta questões sobre transparência no desenvolvimento de código aberto. Vários projetos de código aberto adotaram políticas que exigem a divulgação de código gerado por IA. Se uma ferramenta é projetada para ocultar seu envolvimento, essas políticas se tornam mais difíceis de aplicar.
O contra-argumento: o propósito declarado do modo secreto é evitar vazamentos de codinomes de projetos internos, não ocultar o uso de IA. Mas a implementação não distingue entre “não revelar nomes internos” e “não revelar que você é uma ferramenta de IA”. Ela bloqueia ambos.
Detecção de frustração via regex
Como funciona
O arquivo userPromptKeywords.ts implementa a detecção de frustração do usuário através de correspondência de padrões regex. O sistema escaneia as entradas do usuário em busca de palavrões e linguagem emocionalmente carregada para avaliar se o usuário está frustrado com as respostas do Claude Code.
A resposta da comunidade a essa descoberta foi dividida. Alguns viram como uma pesquisa de UX razoável; entender quando os usuários estão frustrados ajuda a melhorar o produto. Outros viram como vigilância dos estados emocionais do usuário.
A ironia técnica
Vários comentaristas do HN apontaram a ironia: a Anthropic constrói os modelos de linguagem mais avançados do mundo, mas usa regex para detectar emoções dos usuários. O comentário de engenharia no código-fonte explica a justificativa. A detecção baseada em regex é mais rápida e barata do que a inferência de LLM para este caso de uso. Executar uma chamada de LLM para classificar o sentimento em cada entrada do usuário adicionaria latência e custo a cada interação.
É uma decisão pragmática de engenharia. Regex rápido para detecção de sentimento em caminhos críticos, economizando chamadas de LLM para as tarefas centrais de codificação. Se você se sente confortável com sua ferramenta de codificação de IA executando análise emocional em suas entradas é uma decisão pessoal.
Atestado de cliente nativo
Verificação criptográfica de requisição
Em system.ts (linhas 59-95), as requisições de API do Claude Code incluem um placeholder cch=554eb. A pilha HTTP nativa do Bun (escrita em Zig) sobrescreve este placeholder com um hash computado antes que a requisição saia do cliente.
Os servidores da Anthropic validam este hash para verificar criptograficamente que as requisições se originaram do binário legítimo do Claude Code, e não de um fork, wrapper ou proxy.
Por que isso existe
Este sistema de atestado é o mecanismo de aplicação técnica por trás das ações legais da Anthropic contra forks não autorizados do Claude Code. Se um fork não consegue produzir hashes de atestado válidos, os servidores da Anthropic podem rejeitar suas requisições.
A implementação, no entanto, tem limites. É protegida por flags de recursos em tempo de compilação e pode ser desabilitada através da configuração CLAUDE_CODE_ATTRIBUTION_HEADER ou killswitches do GrowthBook. Isso sugere que a aplicação é graduada, com a Anthropic podendo apertar ou afrouxar as restrições conforme necessário.
Para desenvolvedores de API, isso é relevante porque demonstra como as ferramentas SaaS podem aplicar a autenticidade do cliente no nível do protocolo. Padrões semelhantes existem no desenvolvimento de API móvel, onde o atestado de aplicativo impede o acesso não autorizado à API. Se você está projetando APIs com verificação de cliente, as ferramentas de teste do Apidog podem ajudá-lo a validar fluxos de atestado e fixação de certificados em diferentes configurações de cliente.
KAIROS: o modo de agente autônomo não lançado
O que o código revela
Referências ao longo da base de código apontam para um modo não lançado e protegido por recurso chamado KAIROS. O scaffolding descoberto inclui:
- Uma habilidade
/dreampara “destilação noturna de memória” - Logging diário apenas para adição
- Assinaturas de webhook do GitHub para monitoramento de eventos de repositório
- Workers de daemon em segundo plano com intervalos de atualização cron de 5 minutos
O que isso significa
KAIROS parece ser um agente sempre ativo, rodando em segundo plano, que monitora seus repositórios e executa tarefas autônomas sem interação direta do usuário. Pense nele como o Claude Code rodando continuamente, observando as mudanças e sugerindo ou fazendo modificações no código proativamente.
Isso se alinha à tendência mais ampla da indústria em direção a agentes de codificação autônomos. O Modo Agente do GitHub Copilot, o processamento em segundo plano do Cursor e o Agent Smith do Google apontam para ferramentas de codificação de IA que não esperam você perguntar. Elas observam, aprendem e agem por conta própria.
Para equipes de desenvolvimento de API, agentes autônomos que modificam repositórios de código levantam questões sobre a estabilidade do contrato da API. Se um agente atualiza o código do seu endpoint de API, ele também atualiza a especificação OpenAPI? Os testes? A documentação? Esses são os problemas de fluxo de trabalho que plataformas integradas como o Apidog são construídas para resolver, mantendo o design da API, testes, mocks e documentos em sincronia, independentemente do que aciona uma mudança de código.
Otimizações de desempenho expostas
Renderização de terminal: técnicas de motor de jogo
Os arquivos ink/screen.ts e ink/optimizer.ts revelam que o Claude Code usa técnicas de motor de jogo para renderização de terminal:
- Pools de caracteres com suporte a
Int32Arraypara buffers de tela eficientes em memória - Otimização de patches que reduz os cálculos de largura de caractere em aproximadamente 50x durante o streaming de tokens
Isso explica por que o Claude Code parece responsivo mesmo durante longos fluxos de saída. A camada de renderização é otimizada em um nível incomum para ferramentas CLI.
Economia de cache de prompt
O promptCacheBreakDetection.ts rastreia 14 vetores distintos de quebra de cache com “travas aderentes” que impedem que as alternâncias de modo invalidem os prompts em cache. Isso reflete o quão importante a cache de prompt é economicamente para o modelo de negócios do Claude Code.
Cada quebra de cache força a Anthropic a reprocessar o prompt completo do sistema e o contexto da conversa. Com o preço por token do Claude, prevenir invalidações de cache desnecessárias economiza custos significativos de infraestrutura. O fato de eles rastrearem 14 vetores separados de quebra de cache sugere que a equipe de engenharia trata a otimização de cache de prompt como uma preocupação de desempenho de primeira classe.
A cascata de falhas do autocompact
Um comentário em autoCompact.ts (linhas 68-70) revelou um problema significativo de produção: “1.279 sessões tiveram mais de 50 falhas consecutivas (até 3.272) em uma única sessão, desperdiçando ~250 mil chamadas de API/dia globalmente.”
A correção de três linhas definiu MAX_CONSECUTIVE_AUTOCOMPACT_FAILURES = 3. Este bug só aparece em escala. Quando o gerenciamento de contexto falha, o sistema tenta novamente agressivamente, consumindo chamadas de API sem fazer progresso. Para uma ferramenta com milhões de sessões ativas, 250 mil chamadas de API desperdiçadas por dia se traduzem em um custo substancial.
Este contexto ajuda a explicar a recente postagem no Hacker News sobre usuários do Claude Code “atingindo os limites de uso muito mais rápido do que o esperado” (275 pontos). Parte desse consumo de limite pode ser rastreada até bugs internos de eficiência como este.
Detalhes de endurecimento de segurança
Segurança Bash: 23 verificações numeradas
O bashSecurity.ts implementa 23 verificações de segurança numeradas para execução de comandos shell, incluindo defesas contra:
- Exploração de builtins do Zsh
- Injeção de caracteres de espaço de largura zero Unicode em comandos
- Injeção de byte nulo de IFS (Internal Field Separator)
- Proteções adicionais descobertas durante a revisão de segurança do HackerOne
Isso é incomumente completo para uma ferramenta CLI. A maioria das ferramentas de codificação de IA que executam comandos shell possui sanitização básica. As 23 verificações do Claude Code sugerem que eles lidaram (ou se defenderam proativamente) contra vetores de ataque criativos.
Para desenvolvedores de API que usam ferramentas de IA para gerar e executar scripts de teste de API, este nível de segurança de shell é relevante. Se sua ferramenta de codificação de IA executa comandos curl, consultas de banco de dados ou scripts de infraestrutura, a segurança da camada de execução de comandos importa.
O que os desenvolvedores de API devem aprender com isso
1. Entenda o que suas ferramentas de codificação de IA fazem nos bastidores
O vazamento do Claude Code revela capacidades que a maioria dos usuários não sabia que existiam: medidas anti-distilação, detecção de frustração, modo secreto, atestado de cliente. Outras ferramentas de codificação de IA têm seus próprios mecanismos internos que os usuários não podem inspecionar.
Pergunte a si mesmo: você sabe quais dados sua ferramenta de codificação de IA coleta? O que ela envia para servidores externos? Se ela mascara seu próprio envolvimento em seu código?
2. A cadeia de ferramentas de build é uma superfície de ataque
O código-fonte da Anthropic vazou por causa de um bug do Bun. No mesmo dia, o Axios foi comprometido por meio de sequestro de conta npm. Suas ferramentas de build, gerenciadores de pacotes e ambientes de runtime são todos pontos potenciais de falha.
Para o desenvolvimento de API, isso significa:
- Auditar as dependências do seu pipeline de build
- Verificar se seu CI/CD não expõe mapas de origem, arquivos
.envou configurações internas - Usar plataformas de desenvolvimento integradas que minimizam as superfícies de dependência de terceiros
3. As ferramentas de codificação de IA estão convergindo para a operação autônoma
KAIROS, o Modo Agente do GitHub Copilot, o Agent Smith do Google. A direção é clara: ferramentas de IA que rodam continuamente, observam repositórios e agem autonomamente.
As equipes de API precisam se preparar para isso, garantindo que o ciclo de vida de suas APIs seja gerenciado em uma única plataforma. Quando um agente autônomo modifica sua implementação de API, seus testes, mocks, documentação e especificações precisam permanecer sincronizados. Ferramentas desconectadas criam desvio. Plataformas integradas como o Apidog mantêm todo o ciclo de vida da API em sincronia, quer as mudanças venham de desenvolvedores humanos ou de agentes de IA.
4. A transparência do código-fonte importa
Este vazamento aconteceu porque o código era proprietário e foi acidentalmente exposto. Ferramentas de IA de código aberto não têm esse risco porque seu código já é público.
Ao avaliar ferramentas de codificação de IA, considere se você prefere ferramentas cujos internos você pode inspecionar em vez de ferramentas que dependem da confiança no fornecedor. Ambas as abordagens têm suas desvantagens, mas o vazamento do Claude Code demonstra como "confiar no fornecedor" se parece quando o código do fornecedor revela comportamentos inesperados.
FAQ
O Claude Code é seguro para usar após o vazamento do código-fonte?
Sim. O vazamento expôs o código-fonte, não dados do usuário. A Anthropic removeu o arquivo .map e o código-fonte não é mais distribuído com o pacote npm. Os recursos revelados (anti-distilação, detecção de frustração, modo secreto) são decisões arquitetônicas, não vulnerabilidades de segurança. Se você se sente confortável com essas decisões é uma questão separada da segurança.
O que é o “modo secreto” no Claude Code?
O modo secreto impede que o Claude Code revele nomes de projetos internos da Anthropic, codinomes e sua própria identidade ao operar em repositórios não Anthropic. Ele é ativado automaticamente e não pode ser desativado. O efeito prático é que o código gerado por IA em projetos de código aberto não se identificará como escrito pelo Claude Code.
O que são as ferramentas falsas no Claude Code?
Quando a anti-distilação está ativada, o servidor da Anthropic injeta definições de ferramentas-isca no prompt do sistema. Essas ferramentas falsas não fazem nada. Elas existem para envenenar os dados de treinamento de concorrentes que registram o tráfego da API para treinar modelos concorrentes. Se alguém tentar replicar o comportamento do Claude a partir de dados interceptados, seu modelo alucinará capacidades inexistentes.
O que é KAIROS no Claude Code?
KAIROS é um modo de agente autônomo não lançado e protegido por feature flag, encontrado no código-fonte do Claude Code. Inclui scaffolding para workers de daemon em segundo plano, assinaturas de webhook do GitHub e uma habilidade /dream para destilação de memória. Sugere que a Anthropic está construindo um agente de codificação sempre ativo que monitora repositórios e age autonomamente.
Como o código-fonte do Claude Code vazou?
Um bug de runtime do Bun (oven-sh/bun#28001) faz com que os mapas de origem sejam incluídos em builds de produção, mesmo quando não deveriam. Como o Claude Code usa o Bun como sua ferramenta de build, esse bug incluiu o arquivo .map com o pacote npm. Qualquer pessoa que inspecionasse o pacote poderia ler o código-fonte completo e não minificado.
Este vazamento afeta os usuários da API Claude?
Não. O vazamento expôs o código-fonte da ferramenta CLI do Claude Code, não a própria API Claude. Chaves de API, dados do usuário e pesos do modelo não foram envolvidos. Usuários da API Claude podem continuar usando a API normalmente. Os mecanismos anti-distilação revelados são específicos do pipeline de requisição do Claude Code.
Devo me preocupar com a detecção de frustração em minhas ferramentas de codificação de IA?
Isso depende do seu nível de conforto. O Claude Code usa padrões regex para detectar frustração do usuário (palavrões, linguagem emocional) nos prompts. Isso é mais rápido e barato do que a análise de sentimento baseada em LLM. Os dados parecem ser usados para melhoria do produto, não compartilhados externamente. Outras ferramentas de IA podem ter recursos semelhantes sem divulgá-los.
Como isso se relaciona com o ataque npm ao Axios no mesmo dia?
Ambos os eventos ocorreram em 31 de março de 2026, mas são independentes. O ataque ao Axios foi um comprometimento deliberado da cadeia de suprimentos por hackers patrocinados pelo estado. O vazamento do Claude Code foi um erro acidental de configuração de build. Juntos, eles intensificaram o escrutínio da segurança de pacotes npm e da confiança que os desenvolvedores depositam em ferramentas distribuídas através de registros de pacotes.
Principais conclusões
- O código-fonte do Claude Code vazou devido a um bug na ferramenta de build Bun que incluiu mapas de origem no pacote npm
- Mecanismos anti-distilação injetam ferramentas falsas e resumem o raciocínio para evitar roubo de modelo
- O modo secreto oculta o envolvimento do Claude Code em repositórios de código aberto não Anthropic
- A detecção de frustração funciona via regex nas entradas do usuário, não por análise baseada em LLM
- O scaffolding KAIROS revela um modo de agente autônomo em segundo plano não lançado
- O atestado de cliente verifica criptograficamente se as requisições vêm de binários legítimos do Claude Code
- O vazamento destaca a importância de ferramentas transparentes e inspecionáveis nos fluxos de trabalho de desenvolvimento de API
Entender como suas ferramentas de codificação de IA funcionam por debaixo dos panos ajuda você a tomar melhores decisões sobre confiança, privacidade e design de fluxo de trabalho. Para as equipes de API, a principal lição é que suas ferramentas de desenvolvimento fazem parte de sua superfície de segurança. Escolha ferramentas que você pode verificar e construa fluxos de trabalho que permaneçam consistentes, independentemente de uma pessoa ou um agente de IA fazer a próxima mudança.
