1 avril 2026

7 min de lecture

Le 31 mars 2026, le code source complet de Claude Code a atterri sur le web ouvert. Non pas à cause d’un piratage, mais en raison d’une ligne de configuration oubliée dans un paquet NPM. Les 512 000 lignes de TypeScript, découvertes par le chercheur en sécurité Chaofan Shou dans le fichier de source map, dressent un tableau qui va bien au-delà d’un simple chatbot IA : Claude Code est une runtime d’agents à part entière avec un système d’outils, un modèle de permissions et une coordination multi-agents. L’analyse du code révèle non seulement comment Anthropic a construit son outil de développement le plus en vue, mais aussi comment fonctionne fondamentalement la prochaine génération d’architectures d’agents IA.

L’essentiel

  • Le paquet NPM @anthropic-ai/claude-code v2.1.88 contenait un fichier de source map de 59,8 Mo avec le code source TypeScript complet.
  • L’architecture repose sur Bun, TypeScript et React/Ink avec environ 40 outils intégrés et un système de permissions à quatre niveaux.
  • 44 indicateurs de fonctionnalités laissent entrevoir des fonctions non publiées : mode démon autonome (KAIROS), coordination multi-agents, contrôle vocal.
  • Anthropic confirme : « Erreur d’emballage due à une défaillance humaine. » Aucune donnée client ni clé API n’a été compromise.
  • Plus de 8 100 miroirs GitHub supprimés par DMCA, mais le code continue de circuler sur des plateformes décentralisées.

Ce qui s’est passé

Au matin du 31 mars, Chaofan Shou a publié sa découverte sur X. Shou est doctorant à l’UC Berkeley, cofondateur de la startup de sécurité blockchain Fuzzland et chercheur en bug bounty avec 1,9 million de dollars de vulnérabilités signalées à son actif. Sa constatation : la version 2.1.88 du paquet NPM officiel @anthropic-ai/claude-code contenait le fichier cli.js.map. Ce fichier de source map de 59,8 Mo contenait dans le champ sourcesContent le code source TypeScript complet de Claude Code – environ 1 900 fichiers avec 512 000 lignes de code de production.

La source map faisait également référence à une archive ZIP sur le bucket Cloudflare R2 d’Anthropic accessible au public. En quelques heures, le code a été dupliqué sur GitHub. Le dépôt le plus populaire a atteint plus de 41 500 forks avant que les avis DMCA d’Anthropic ne prennent effet et que GitHub ne désactive au total 8 100 dépôts.

512.000
lignes de code source

~1.900
fichiers TypeScript

8.100+
dépôts supprimés par DMCA

Le code reste disponible sur des plateformes décentralisées. Des projets dérivés – dont un portage Python et une réécriture en Rust – ont survécu aux mesures DMCA, car ils ne sont pas des copies directes. La cause probable : Anthropic utilise Bun comme runtime. Un bug ouvert de Bun (signalé le 11 mars 2026) documente que le bundler de Bun génère des source maps par défaut – même en mode production. Ni le fichier .npmignore ni le champ files dans package.json n’étaient configurés pour exclure les fichiers .map.

La communauté a réagi rapidement – et avec un certain sens de l’ironie : en moins de 24 heures, un portage Python (claw-code, 30 000 étoiles GitHub en un temps record) et une réécriture en Rust ont vu le jour. Sur Hacker News, un commentaire a dominé la discussion : « Anthropic commercialise Claude comme un outil d’écriture de code – et son propre code fuit à cause d’une entrée manquante dans .npmignore. »

À noter : il s’agissait du deuxième incident de sécurité chez Anthropic en l’espace d’une semaine. Quelques jours auparavant, environ 3 000 fichiers internes étaient apparus dans un cache accessible au public – dont des détails sur un modèle IA non publié portant le nom de code interne « Mythos ». Pour une entreprise qui vise une introduction en bourse avec une valorisation estimée à 380 milliards de dollars, le timing ne pouvait être plus mal choisi.

Pas une interface de chat – une runtime d’agents

L’analyse technique du code source confirme ce que beaucoup de développeurs cloud soupçonnaient : Claude Code n’est pas un chatbot avec une interface en terminal. Il s’agit d’une runtime d’agents modulaire qui entoure un grand modèle de langage avec une boîte à outils complète.

L’architecture de base : Bun au lieu de Node.js comme runtime (Anthropic a acquis la société mère du projet Bun). React avec Ink pour le rendu en terminal. Zod v4 pour la validation des schémas de tous les outils d’entrée et de sortie. OpenTelemetry et gRPC ne sont chargés qu’en cas de besoin pour minimiser le temps de démarrage – un modèle classique de lazy loading qui indique un focus sur l’expérience développeur.

Le système d’outils comprend environ 40 outils discrets et contrôlés par permissions : accès au système de fichiers, exécution Bash, récupération web, recherche Glob, intégration LSP et l’intégration de serveurs MCP externes (Model Context Protocol). Le moteur de requête seul – responsable des appels API, du streaming, du caching, de l’orchestration et du comptage des tokens – comprend 46 000 lignes de code.

Le modèle de permissions fonctionne sur quatre niveaux : Plan (lecture seule), Standard (avec dialogues de confirmation), Auto (autorisations génériques) et Bypass (accès complet). Un classificateur détermine quelles actions nécessitent quel niveau de permission. Une couche de validation Bash vérifie les commandes avant exécution pour détecter les indicateurs de risque. L’ensemble du système supporte le sandboxing au niveau du système d’exploitation pour le système de fichiers et le réseau.

« Plus tôt dans la journée, une version de Claude Code incluait une partie du code source interne. Aucune donnée client sensible ni identifiants n’ont été impliqués ou exposés. Il s’agissait d’un problème d’emballage de version causé par une erreur humaine, et non d’une faille de sécurité. »
– Anthropic, déclaration officielle, 31.03.2026

Le système de stockage est structuré en trois niveaux : un fichier compact MEMORY.md avec de courtes références constitue le premier niveau. Des notes de projet séparées sont chargées en fonction du contexte. Le troisième niveau recherche sélectivement les sessions passées au lieu de charger l’historique complet. Cette conception aborde un problème central des applications LLM : les fenêtres de contexte sont limitées, mais le contexte du projet croît de manière illimitée.

L’intégration IDE fonctionne via un pont bidirectionnel authentifié par JWT avec VS Code et JetBrains. Claude Code agit simultanément comme client et serveur MCP – il peut intégrer des outils externes et servir lui-même d’outil pour d’autres systèmes. Cette décision architecturale positionne Claude Code non pas comme un produit autonome, mais comme une couche d’intégration pour l’infrastructure de développement.

44 indicateurs de fonctionnalités révèlent la feuille de route

Les 44 indicateurs de fonctionnalités au moment de la compilation pour des fonctions non publiées sont particulièrement révélateurs. Ils montrent dans quelle direction Anthropic développe Claude Code :

KAIROS est un mode démon autonome qui fait fonctionner Claude Code comme un agent en arrière-plan permanent. Budget de blocage de 15 secondes par action, journaux quotidiens en append-only. Un sous-système nommé autoDream consolide les observations pendant les périodes d’inactivité et transforme des notes vagues en faits concrets. Plus de 150 mentions dans le code source indiquent un développement avancé – pas une simple expérimentation.

COORDINATOR_MODE implémente l’orchestration multi-agents : un agent Claude contrôle plusieurs agents travailleurs en parallèle. L’instruction du prompt système pour le coordinateur est : « Ne pas approuver automatiquement un travail médiocre. » Il s’agit ici de multi-agents non pas comme projet de recherche, mais comme architecture de production.

ULTRAPLAN est un mode de planification approfondie avec jusqu’à 30 minutes d’exécution côté serveur – un ordre de grandeur supérieur à ce que durent généralement les interactions LLM actuelles.

Par ailleurs, il existe VOICE_MODE (contrôle vocal push-to-talk dans le terminal), BRIDGE_MODE (télécommande d’une instance Claude Code par un processus externe) et BUDDY – un animal de compagnie virtuel de type Tamagotchi pour le terminal avec 18 espèces, des niveaux de rareté et cinq attributs (Debugging, Patience, Chaos, Wisdom, Snark). L’animal est généré à partir d’un hash de l’ID utilisateur et était apparemment prévu comme easter egg pour le 1er avril.

Deux détails techniques méritent une attention particulière : un mécanisme anti-distillation (indicateur : ANTI_DISTILLATION_CC) injecte de fausses définitions d’outils dans les requêtes API. Objectif : empoisonner les données d’entraînement des concurrents qui enregistrent le trafic API pour entraîner leurs propres modèles. Et un mode undercover supprime toutes les références à Anthropic lorsque Claude Code travaille dans des dépôts publics. L’instruction interne : « Vous opérez EN COUVERT dans un DÉPÔT PUBLIC/OPEN-SOURCE. Ne révélez pas votre couverture. »

Ce que cela signifie pour les architectures cloud

La fuite confirme une tendance que les architectes cloud devraient suivre de près : les outils de développement assistés par IA ne sont pas de simples wrappers d’API. Ce sont des systèmes de runtime à part entière avec leur propre infrastructure, gestion de la mémoire et logique d’orchestration.

Trois enseignements pour les équipes qui intègrent des outils IA dans leurs processus de développement :

La complexité sous la surface est considérable. 512 000 lignes de code pour un outil CLI illustrent l’effort d’ingénierie nécessaire pour intégrer de manière productive un LLM dans les workflows de développement. Le système d’outils, le modèle de permissions, le système de stockage – chaque couche est un composant logiciel indépendant. Ceux qui planifient des intégrations similaires en interne devraient évaluer le scope de manière réaliste.

Le multi-agent est une architecture de production. L’implémentation du mode Coordinator montre un modèle concret : un agent orchestrateur délègue des tâches à des workers parallèles, surveille leur qualité et consolide les résultats. Ce modèle est transposable aux architectures de microservices cloud-native – et il provient d’un système de production, pas d’un article.

Les source maps dans les paquets NPM restent un risque sous-estimé. La configuration de build par défaut de Bun génère automatiquement des source maps. Chaque équipe utilisant Bun dans ses pipelines CI/CD devrait vérifier si les fichiers .map se retrouvent dans les artefacts publiés. Un `npm pack –dry-run` avant chaque publication est la contre-mesure la plus simple. Que ce problème soit survenu trois fois chez Anthropic (v0.2.8, v0.2.28 et maintenant v2.1.88) montre que le contrôle manuel ne suffit pas. Une porte automatique dans la CI qui interrompt le build en présence de fichiers .map dans l’artefact est la solution appropriée.

Au-delà, la fuite soulève une question stratégique : si les agents IA doivent être pris au sérieux en tant que systèmes de runtime, leurs modèles de permissions et de sandboxing doivent répondre aux mêmes normes de sécurité que toute autre infrastructure de production. Six CVE documentées dans Claude Code avant la fuite – dont des fuites de clés API et des contournements de sandbox – indiquent que le secteur n’a pas encore atteint ce niveau de maturité de manière uniforme.

Questions fréquentes

Des données clients ou des clés API ont-elles été exposées ?

Non. Anthropic et des analyses de sécurité indépendantes confirment qu’aucune donnée client ni aucun identifiant d’accès n’étaient contenus dans le code source. Ce qui a été exposé, c’est le code applicatif de la CLI Claude Code, et non les modèles IA, les données d’entraînement ou les secrets opérationnels.

Qu’est-ce qu’une source map et pourquoi représente-t-elle un risque ?

Les source maps sont des fichiers JSON qui mappent le code JavaScript compilé au code source original. Elles contiennent un champ sourcesContent avec le texte source complet lisible. Dans les paquets de production, elles révèlent l’architecture, la logique interne et les points de terminaison. Des outils comme reverse-sourcemap reconstruisent à partir d’un seul fichier .map l’arborescence complète des répertoires.

Pourquoi Anthropic utilise-t-il Bun au lieu de Node.js ?

Anthropic a acquis la société mère de Bun. Bun offre des temps de démarrage plus rapides et une chaîne d’outils de bundling intégrée, ce qui est crucial pour les outils CLI. Cependant, le bundler de Bun génère des source maps par défaut – un bug documenté (signalé le 11 mars 2026) qui a contribué à la fuite.

Le code source est-il encore accessible ?

Sur GitHub, plus de 8 100 dépôts ont été désactivés par DMCA. Le code reste disponible sur des plateformes décentralisées comme Gitlawb. Des projets indépendants ont reconstruit l’architecture en Python et en Rust – en tant qu’implémentations autonomes, ils ne tombent pas sous le coup du DMCA.

Que signifient les indicateurs de fonctionnalités pour les utilisateurs de Claude Code ?

Les 44 indicateurs montrent des fonctions en développement actif. KAIROS (démon autonome), COORDINATOR_MODE (multi-agents) et VOICE_MODE (entrée vocale) laissent présager une extension significative. Quand et si ces fonctionnalités seront activées pour tous les utilisateurs reste incertain après la fuite – Anthropic pourrait ajuster ses feuilles de route internes.

Lectures recommandées par la rédaction

Source de l’image : Pexels / Markus Spiske (px:6190327)

Aussi disponible en

Un magazine de Evernine Media GmbH