Le jour où Anthropic a accidentellement publié les entrailles de Claude Code

Le 31 mars 2026 au matin, alors que la Silicon Valley n'avait pas encore fini son premier café, l'un des plus grands accidents industriels de l'histoire récente de l'IA était déjà consommé. L'intégralité du code source de Claude Code — l'outil de développement assisté par IA le plus populaire du moment, générant à lui seul 2,5 milliards de dollars de revenus annuels — venait d'être exposé au monde entier via un vulgaire fichier de débogage oublié dans un package npm.

Il aura fallu une configuration manquée, un chercheur en sécurité matinal et environ trente minutes pour que l'affaire devienne incontrôlable.


Comment une erreur de packaging a tout déclenché

L'histoire commence de la façon la plus banale qui soit. Lors de la publication de la version 2.1.88 du package @anthropic-ai/claude-code sur le registre npm — la plateforme par laquelle des millions de développeurs téléchargent et mettent à jour leurs outils JavaScript — un fichier source map de 59,8 Mo baptisé cli.js.map a été inclus par inadvertance. Ces fichiers, normalement réservés au débogage interne, servent de pont entre le code minifié distribué en production et le code source original. Ils ne sont jamais censés voir la lumière du jour.

Ce fichier ne contenait pas directement le code source, mais pointait vers une archive ZIP hébergée sur un bucket Cloudflare R2 appartenant à Anthropic — un espace de stockage cloud qui s'est avéré être accessible au public. Personne n'a eu besoin de forcer quoi que ce soit : le fichier était simplement là, en libre accès.

À 4h23 du matin (heure de la côte Est), Chaofan Shou, un stagiaire chez Solayer Labs et chercheur en sécurité, a repéré l'anomalie et l'a annoncée sur X avec un lien de téléchargement direct. Son post a rapidement accumulé près de 29 millions de vues et 1 500 commentaires. En quelques heures, l'archive avait été téléchargée, décompressée et republiée sur GitHub par des dizaines de développeurs. Le dépôt miroir principal a dépassé les 84 000 étoiles et 82 000 forks avant qu'Anthropic ne commence à envoyer des demandes de retrait DMCA.

Le butin ? Environ 1 900 fichiers TypeScript, totalisant plus de 512 000 lignes de code. L'intégralité de la machinerie qui fait tourner Claude Code : le moteur d'appels API, le système d'orchestration multi-agents, les outils internes, les prompts système, les feature flags, la télémétrie — tout y était.


Le deuxième incident en une semaine

Le timing est particulièrement cruel pour Anthropic. Cinq jours plus tôt, le 26 mars, Fortune révélait que près de 3 000 fichiers internes avaient été découverts dans un cache CMS accessible au public. Parmi eux figurait un brouillon de billet de blog décrivant un modèle d'IA encore non annoncé, connu en interne sous les noms de code "Mythos" et "Capybara", que la fuite décrivait comme présentant des risques sans précédent en matière de cybersécurité.

Deux fuites majeures en moins d'une semaine pour l'entreprise qui se présente comme le "laboratoire de la sécurité" de l'IA — l'ironie n'a échappé à personne. Sur Twitter et Hacker News, certains se sont même demandé si un employé mécontent n'agissait pas de l'intérieur, même si l'explication la plus probable reste une série de défaillances banales dans les processus de publication.

Et il y a un détail encore plus ironique : c'est la deuxième fois exactement que la même erreur se produit. Un incident quasi identique avait déjà exposé une version antérieure de Claude Code via un source map en février 2025, soit treize mois plus tôt.


L'ironie suprême : le mode "Undercover"

Parmi les découvertes les plus commentées figure un sous-système entier baptisé "Undercover Mode" (mode sous couverture), contenu dans un fichier undercover.ts d'environ 90 lignes. Sa fonction ? Empêcher Claude Code de laisser fuiter des informations internes d'Anthropic lorsqu'il est utilisé pour contribuer à des projets open source.

Quand ce mode est activé, le prompt système de Claude Code reçoit des instructions explicites et catégoriques : ne jamais mentionner de noms de code internes comme "Capybara" ou "Tengu", ne jamais référencer de canaux Slack internes, de noms de dépôts propriétaires, ni même la phrase "Claude Code" elle-même. Les messages de commits et les descriptions de pull requests doivent être expurgés de toute trace d'IA.

Autrement dit, Anthropic a construit tout un système pour empêcher ses secrets de fuiter… puis a publié l'intégralité de ce système, et de tous les autres, dans un fichier .map oublié. Comme l'a résumé un commentaire viral sur Hacker News : « Rien ne crie "futur agentique" comme expédier son code source par accident. »

La révélation du mode Undercover a aussi soulevé des questions éthiques plus profondes. Elle confirme que les employés d'Anthropic utilisent Claude Code pour contribuer à des dépôts open source publics — sans aucune indication que le code a été écrit par une IA. Si cacher des noms de code internes est raisonnable, l'absence totale d'attribution IA dans des contributions publiques est un sujet qui divise la communauté des développeurs.


KAIROS : le futur agent autonome qui ne dort jamais

La découverte la plus significative sur le plan produit est sans doute KAIROS — un nom dérivé du concept grec ancien signifiant "le moment opportun". Mentionné plus de 150 fois dans le code source, KAIROS représente un changement fondamental dans la philosophie de Claude Code.

Aujourd'hui, Claude Code est un outil essentiellement réactif : l'utilisateur donne une instruction, l'agent la traite. KAIROS transformerait Claude Code en un démon autonome fonctionnant en arrière-plan en permanence. L'agent pourrait surveiller les fichiers, détecter et corriger des erreurs de manière proactive, exécuter des tâches sans attendre d'instruction humaine, et même envoyer des notifications push.

Mais le composant le plus fascinant de KAIROS est un processus appelé autoDream. Lorsque l'utilisateur est inactif, Claude Code entrerait dans un mode de "consolidation mémorielle" — fusionnant des observations disparates, éliminant les contradictions logiques, et convertissant des impressions vagues en faits exploitables. Le tout exécuté par un sous-agent forké, spécifiquement pour éviter que ces opérations de maintenance ne "polluent" le fil de pensée principal de l'agent.

C'est essentiellement un agent qui rêve pendant que vous dormez — d'où le nom. L'implémentation révèle une approche d'ingénierie mature pour un problème que tous les constructeurs d'agents IA connaissent : comment maintenir un contexte propre et pertinent sur de longues sessions de travail.


Une architecture mémoire à trois couches qui fascine les ingénieurs

L'un des enseignements techniques les plus commentés concerne la façon dont Anthropic a résolu ce que les développeurs appellent "l'entropie de contexte" — la tendance des agents IA à devenir confus ou à halluciner lorsque les sessions de travail s'allongent et se complexifient.

Le code révèle un système de mémoire sophistiqué à trois couches qui rompt avec l'approche traditionnelle du "tout stocker". Au cœur du système se trouve un fichier MEMORY.md, un index léger composé de pointeurs d'environ 150 caractères par ligne, chargé en permanence dans le contexte. Cet index ne stocke pas de données : il stocke des emplacements. La connaissance du projet est distribuée dans des "fichiers thématiques" chargés à la demande, tandis que les transcriptions brutes ne sont jamais relues intégralement, mais parcourues via grep pour des identifiants spécifiques.

Le système impose une "discipline d'écriture stricte" : l'agent ne peut mettre à jour son index qu'après une écriture de fichier réussie, ce qui empêche le modèle de polluer son contexte avec des tentatives échouées. Et surtout, le code confirme que les agents d'Anthropic sont instruits de traiter leur propre mémoire comme un simple "indice" — le modèle doit vérifier les faits contre le codebase réel avant de procéder.

Pour les concurrents, ce blueprint est précieux : il décrit comment construire un agent dont la mémoire se soigne elle-même.


Anti-distillation : quand Anthropic empoisonne ses propres données

L'une des découvertes qui a le plus fait réagir la communauté Hacker News concerne les mécanismes anti-distillation. Dans le fichier claude.ts (lignes 301-313), un flag appelé ANTI_DISTILLATION_CC déclenche, lorsqu'il est activé, l'injection silencieuse de fausses définitions d'outils dans les requêtes API.

L'idée est simple et ingénieuse : si un concurrent enregistre le trafic API de Claude Code pour entraîner son propre modèle, les faux outils polluent les données d'entraînement, rendant le modèle résultant potentiellement défectueux. Un second mécanisme, dans betas.ts, va encore plus loin : l'API met en mémoire tampon le raisonnement de l'assistant entre les appels d'outils, le résume, et retourne le résumé avec une signature cryptographique. Si vous enregistrez le trafic API, vous n'obtenez que les résumés, pas la chaîne de raisonnement complète.

Cependant, les développeurs qui ont analysé le code ont rapidement noté que ces protections sont facilement contournables. Un proxy intercepteur qui supprime le champ anti_distillation des requêtes suffirait, et le mécanisme ne s'active de toute façon que pour les sessions CLI de première partie. Comme l'a observé un commentateur, la vraie protection d'Anthropic contre la distillation est probablement juridique, pas technique.


"Buddy" : un Tamagotchi caché dans votre terminal

Parmi les découvertes les plus légères mais les plus virales, il y a le système "Buddy" — un compagnon virtuel de type Tamagotchi caché derrière un feature flag. Chaque utilisateur se voit attribuer une créature déterministe parmi 18 espèces (incluant, oui, un capybara), avec des tiers de rareté allant de "commun" (60%) à "légendaire" (1%), une chance de 1% d'obtenir une version "shiny", et des statistiques de RPG incluant DEBUGGING, PATIENCE, CHAOS, WISDOM et SNARK.

L'espèce est déterminée par un générateur pseudo-aléatoire Mulberry32 seedé à partir du hash de l'identifiant utilisateur. Les noms des espèces sont encodés via String.fromCharCode() pour échapper aux recherches de chaînes dans le code. Le rendu utilise des sprites ASCII de 5 lignes de haut sur 12 caractères de large, avec plusieurs frames d'animation et un effet de cœur flottant.

La fenêtre de déploiement prévue dans le code source était du 1er au 7 avril 2026 — ce qui en faisait vraisemblablement le poisson d'avril d'Anthropic, accidentellement révélé un jour trop tôt.


Le DRM des appels API : attestation cryptographique au niveau Zig

Le code a également révélé un mécanisme d'attestation client sophistiqué, essentiellement un DRM pour les appels API. Dans system.ts, les requêtes API incluent un placeholder cch=00000 dans un en-tête de facturation. Avant que la requête ne quitte le processus, la couche HTTP native de Bun — écrite en Zig — remplace ces cinq zéros par un hash calculé. Le serveur valide ensuite ce hash pour confirmer que la requête provient d'un vrai binaire Claude Code, et non d'un client usurpé.

Le placeholder est de même longueur que le hash final pour éviter de modifier l'en-tête Content-Length ou de nécessiter une réallocation de buffer. Le calcul se fait en dessous du runtime JavaScript, invisible pour tout code s'exécutant dans la couche JS.

C'est l'application technique derrière le conflit juridique récent avec OpenCode, un outil tiers qui utilisait les API internes de Claude Code pour accéder à Opus aux tarifs d'abonnement plutôt qu'au tarif à l'usage. Anthropic ne se contente pas de demander poliment aux outils tiers de ne pas utiliser ses API — le binaire lui-même prouve cryptographiquement qu'il est le vrai client Claude Code.


Le modèle Capybara : roadmap interne et taux de fausses affirmations

Le code a confirmé plusieurs noms de code internes pour les modèles d'Anthropic : "Capybara" pour une variante de Claude 4.6, "Fennec" pour Opus 4.6, et "Numbat" pour un modèle encore en test. Des commentaires internes dans le code révèlent qu'Anthropic itère déjà sur la version 8 de Capybara, mais que le modèle fait face à des obstacles significatifs.

Les données les plus frappantes : la v8 de Capybara affiche un taux de fausses affirmations de 29 à 30%, en régression par rapport aux 16,7% de la v4. Le code mentionne aussi un "contrepoids d'assertivité" conçu pour empêcher le modèle d'être trop agressif dans ses refactorisations. Pour les concurrents, ces métriques sont précieuses — elles fournissent un benchmark du "plafond" des performances agentiques actuelles et mettent en lumière les faiblesses spécifiques qu'Anthropic peine encore à résoudre.

Un chercheur en sécurité de LayerX Security a observé que le code suggère qu'Anthropic pourrait lancer une version "rapide" et une version "lente" du nouveau modèle, basées sur une fenêtre de contexte élargie.


La détection de frustration : 187 verbes de spinner et des regex de jurons

Parmi les détails plus anecdotiques mais révélateurs, les développeurs ont découvert un système de télémétrie qui analyse les prompts des utilisateurs à la recherche de sentiments négatifs. Le code contient un filtre regex extensif incluant de nombreux jurons et insultes, utilisé non pas pour censurer mais pour détecter quand un utilisateur est frustré par l'outil.

Un commentaire interne dans le code révèle l'ampleur du problème de fiabilité à l'échelle : au 10 mars 2026, 1 279 sessions avaient enregistré plus de 50 échecs consécutifs (jusqu'à 3 272), gaspillant environ 250 000 appels API par jour au niveau mondial.

Les fameux "spinner verbs" — ces petites phrases affichées pendant que Claude Code travaille — ont aussi fait le bonheur de la communauté. 187 verbes différents, parfois poétiques, parfois absurdes, témoignant d'une culture interne qui sait garder un certain sens de l'humour.


L'attaque supply chain d'axios : le pire timing possible

La fuite a coïncidé avec un événement de sécurité distinct mais connexe : une attaque supply chain sur le package npm axios, une bibliothèque HTTP utilisée par des millions de projets — et par Claude Code lui-même comme dépendance.

Entre 00h21 et 03h29 UTC le 31 mars, des versions malveillantes d'axios (1.14.1 et 0.30.4) contenant un cheval de Troie d'accès à distance (RAT) multi-plateformes ont été publiées sur npm. Tout développeur ayant installé ou mis à jour Claude Code via npm pendant cette fenêtre a pu télécharger la version infectée. Les experts en sécurité recommandent de vérifier immédiatement les fichiers de verrouillage (package-lock.json, yarn.lock ou bun.lockb) et de considérer toute machine touchée comme potentiellement compromise.

En réponse, Anthropic a désigné son installateur natif (un binaire autonome indépendant de la chaîne npm) comme méthode d'installation recommandée.

Par-dessus tout cela, des attaquants opportunistes ont commencé à publier des packages npm avec des noms imitant les noms de packages internes d'Anthropic — une technique de typosquatting visant les développeurs qui tenteraient de compiler le code source fuité. Un chercheur en sécurité a noté que ces packages étaient pour l'instant vides, « mais c'est comme ça que ces attaques fonctionnent — on squatte le nom, on attend les téléchargements, puis on pousse une mise à jour malveillante. »


Pourquoi le bug de Bun rend l'incident encore plus embarrassant

Un détail technique rend cette affaire encore plus piquante. Anthropic a acquis Bun — le runtime JavaScript ultra-rapide — fin 2025, et Claude Code est construit dessus. Or, un bug Bun (oven-sh/bun#28001), signalé le 11 mars 2026, rapporte que les source maps sont servies en mode production alors que la documentation de Bun indique explicitement qu'elles devraient être désactivées. Ce bug était encore ouvert au moment de la fuite.

Si c'est bien ce bug qui a causé la fuite, cela signifie que le propre outil d'Anthropic — le runtime qu'elle a elle-même racheté — contenait un défaut connu qui a exposé le code source de son propre produit phare. L'ironie est presque trop parfaite.


Les conséquences stratégiques : un coup de PR involontaire ?

Certains observateurs, en particulier sur les forums de développeurs, ont émis l'hypothèse provocatrice que cette fuite pourrait être un coup marketing déguisé. L'argument : la fuite a donné une visibilité massive à la sophistication technique de Claude Code, démontrant que l'outil est bien plus qu'un simple wrapper autour d'un modèle de langage. Elle a révélé un système d'exploitation logiciel à part entière pour l'ingénierie, avec une orchestration multi-agents, une mémoire persistante, et des fonctionnalités que la plupart des concurrents n'ont pas encore annoncées.

Mais cette théorie se heurte à plusieurs réalités. L'exposition de la roadmap stratégique — KAIROS, les mécanismes anti-distillation, les noms de code des modèles — est un dommage concurrentiel qui ne peut pas être annulé. Comme l'a noté un commentateur, « on peut refactorer du code en une semaine, on ne peut pas "dé-fuiter" une roadmap. » Le chevauchement avec l'attaque sur axios n'apporte aucun bénéfice et ajoute du risque réel pour les utilisateurs. Et l'incident précédant immédiatement une potentielle introduction en bourse — avec la mention embarrassante dans un futur S-1 que « nous avons publié notre code source sur npm » — n'est dans l'intérêt de personne.

L'explication la plus probable reste la plus simple : une erreur humaine. Un .npmignore mal configuré. Un bug Bun que personne n'avait classé comme critique. Un bucket R2 qui aurait dû être privé. Trois défaillances de configuration qui se sont combinées en catastrophe.


L'impact sur l'industrie et la concurrence

Le revenu annualisé d'Anthropic est estimé à 19 milliards de dollars en mars 2026, dont 2,5 milliards pour Claude Code seul. 80% de ces revenus proviennent de clients entreprise qui paient en partie pour la conviction que la technologie propulsant leurs workflows est propriétaire et protégée. Cette conviction a pris un sérieux coup.

Pour les concurrents — de géants établis comme Google et OpenAI aux rivaux plus agiles comme Cursor — la fuite fournit un blueprint détaillé de la façon dont on construit un agent de code IA à haute autonomie, fiable et commercialement viable. Les patterns d'architecture, les systèmes de permissions, l'orchestration multi-agents, les ponts vers les IDE, la mémoire persistante : tout est désormais étudié, documenté et discuté publiquement.

Des développeurs ont déjà commencé à réécrire Claude Code en Rust et en Python, sous forme de réimplémentations "en salle blanche" pour contourner les problèmes de propriété intellectuelle. Le premier uploadeur a d'ailleurs rapidement remplacé le code fuité par un port Python de sa propre conception, craignant d'être poursuivi pour hébergement de propriété intellectuelle d'Anthropic.

Anthropic a émis des avis de retrait DMCA, mais le code est désormais si largement distribué que le contrôle est illusoire. Comme le note un expert, « le code est sorti, il a été mirroité sur tout Internet, et aucune notice de retrait ne le remettra dans la boîte. »


Ce que la fuite ne contient pas

Il est important de noter ce que la fuite n'a pas exposé. Les poids du modèle Claude — le cœur de la propriété intellectuelle d'Anthropic — ne sont pas concernés. Aucune donnée utilisateur ni aucun identifiant n'ont été compromis. Le code exposé est celui du "harnais agentique" — la couche logicielle qui entoure le modèle d'IA et lui indique comment utiliser d'autres outils, lui fournit des garde-fous et des instructions régissant son comportement. C'est un composant crucial, mais ce n'est pas le modèle lui-même.

Comme l'a rappelé un utilisateur de Cybernews, « le fait que le source soit désormais "disponible" ne signifie PAS qu'il est open source. Vous enfreignez une licence si vous copiez ou redistribuez le code source, ou si vous utilisez leurs prompts dans votre prochain projet. »


Le verdict

La fuite du code source de Claude Code ne coulera pas Anthropic, mais elle laisse des traces qui dépassent l'embarrassement technique. Elle offre à chaque concurrent une formation gratuite en ingénierie sur la construction d'un agent de code de production, et elle révèle exactement sur quels outils se concentrer. Elle expose une roadmap produit que l'entreprise n'avait jamais eu l'intention de publier. Et elle pose une question qui reviendra régulièrement : comment l'entreprise qui se vend comme le champion de la sécurité IA peut-elle échouer à sécuriser ses propres systèmes, deux fois en treize mois ?

Pour la communauté des développeurs, le code fuité est un trésor d'enseignements. L'architecture mémoire à trois couches, le concept de mémoire "auto-réparatrice", le mode de rêve autonome, l'orchestration multi-agents — ces patterns définiront probablement la prochaine génération d'outils de développement assistés par IA, qu'ils soient construits par Anthropic ou par ceux qui ont désormais son blueprint entre les mains.

Comme l'a écrit un développeur sur Hacker News, avec un mélange de respect et d'amusement : « Ils ont construit un mode Undercover entier pour empêcher leurs secrets de fuiter. Et ils ont tout envoyé dans un .map. Probablement par Claude lui-même. »