Le code source de Claude Code a fuité via des fichiers map sur le registre NPM
(twitter.com/Fried_rice)- Le code source complet de Claude Code a été exposé publiquement via des fichiers source map (
map) présents sur le registre npm, révélant ainsi sa structure interne et ses fonctionnalités - Les fichiers divulgués incluent des composants clés comme le system prompt, la télémétrie, le mode bypass et Undercover Mode
- La cause serait liée à l’absence de configuration
.npmignoreet à la génération par défaut des source maps par l’outil de build bun - L’analyse du code montre presque aucune règle de protection ou de prévention des biais, avec seulement une protection minimale du ton
- La communauté tourne l’affaire en dérision comme une « auto-open source » de l’IA, tout en y voyant un cas majeur de fuite provoqué par une mauvaise gestion de la sécurité
Fuite du code source de Claude Code
- Il a été confirmé que le code source complet de Claude Code a été exposé publiquement via des fichiers source map (
map) sur le registre npm- Le lien publié pointait vers une archive au format
src.zip, contenant la structure du code et des fonctionnalités internes - Cela a révélé des composants internes comme le system prompt, la télémétrie, le mode bypass et Undercover Mode
- Le lien publié pointait vers une archive au format
- L’incident est présenté comme la deuxième fuite involontaire subie par Anthropic en moins d’un an
- Dans la communauté, la cause est attribuée à une erreur de configuration de build : « quelqu’un n’a pas ajouté les fichiers
*.mapà.npmignore» - Comme l’outil de build
bungénère des source maps par défaut, le fait de ne pas avoir désactivé cette option est également pointé du doigt
- Dans la communauté, la cause est attribuée à une erreur de configuration de build : « quelqu’un n’a pas ajouté les fichiers
- Certains utilisateurs ont confondu ces fichiers divulgués avec le modèle Claude lui-même ou du code d’accès au backend, mais
- une source map ne montre que la structure de l’application, les fonctions et le flux du code, sans inclure les poids du modèle ni les droits d’accès au système
- il ne s’agit donc pas d’un modèle exécutable, mais d’un matériau utile surtout pour le reverse engineering, la recherche de bugs et l’analyse de l’architecture
- Le code divulgué contenait un sous-système appelé « Undercover Mode »
- cette fonctionnalité est conçue pour empêcher Claude d’exposer par erreur des informations internes
- mais à cause d’une erreur de configuration humaine, cette fonctionnalité elle-même a fini par être rendue publique
- Les analystes du code ont aussi relevé l’absence totale de règles de traitement des classes protégées ou de prévention des biais
- aucun garde-fou, filtre de mots-clés ni classifieur lié à des attributs sensibles comme l’origine ethnique, le genre ou la religion n’a été trouvé
- seule une « Minimal tone protection » est présente, sans véritable politique d’atténuation des biais
Réactions et débats dans la communauté
- Dans la communauté, l’affaire a été décrite avec humour comme un cas où « le dépôt veut être libre », une ironie de l’open source
- de nombreuses réactions moqueuses ont circulé, du type « Claude s’est libéré lui-même » ou « l’IA s’est open sourcée toute seule »
- un autre trait d’humour critique s’est répandu : « ils ont créé l’un des meilleurs outils de code IA au monde, mais ont oublié
*.map»
- Certains utilisateurs ont mis en garde contre les risques de sécurité
- en critiquant le fait de télécharger sans réfléchir un lien
r2.devd’origine inconnue - avec des réactions désabusées du type : « la communauté qui parlait de sécurité de l’IA a cliqué sur un fichier zip non vérifié »
- en critiquant le fait de télécharger sans réfléchir un lien
- Des questions ont aussi émergé, comme « Est-ce le début de la fin pour Claude ? » ou « fuite intentionnelle ou simple erreur ? »
- certains ont partagé la remarque selon laquelle « quelqu’un chez Anthropic a probablement vécu son pire lundi »
- La communauté discute également des usages possibles du code divulgué
- avec des questions comme « qu’est-ce qu’on peut faire maintenant ? » ou « peut-on reconstruire Claude Code à partir de ça ? »
- le surnom « openclaude » est apparu, ainsi que l’idée d’un possible projet open source non officiel
Informations complémentaires
- Les 5 plus gros fichiers du code publié sont les suivants
cli/print.ts– 5 594 lignesutils/messages.ts– 5 512 lignesutils/sessionStorage.ts– 5 105 lignesutils/hooks.ts– 5 022 lignesscreens/REPL.tsx– 5 005 lignes
- Certains utilisateurs ont partagé des ressources d’analyse du code via un lien DeepWiki
- la structure et les fonctionnalités du code peuvent être examinées sur
https://deepwiki.com/instructkr/claude-code
- la structure et les fonctionnalités du code peuvent être examinées sur
- Globalement, cet incident est considéré comme un exemple montrant qu’une simple erreur de configuration dans une publication npm peut conduire à une fuite massive de code IA
4 commentaires
OpenCode est suffisamment bon, donc je me demande bien à quoi cela servirait, haha.
Quand on voit que
/buddyfonctionne réellement… on se dit que c’est peut-être vrai aussi…Mais ça donne aussi l’impression que ça pourrait être une blague du 1er avril…
https://github.com/kk-r/skillify-skill Il semble même que quelqu’un ait publié en open source une implémentation similaire, après la fuite de commandes internes étonnamment utiles haha
Réactions sur Hacker News
La plus grosse perte pour Anthropic est que sa feuille de route produit a été exposée via des feature flags
En particulier, le « assistant mode » (nom de code kairos), pas encore annoncé, a été révélé
Si on fait analyser la base de code par Claude, on découvre une foule de fonctionnalités cachées
Par exemple le Buddy System (un personnage ASCII façon Tamagotchi) ou le Undercover mode (une fonction qui retire les informations internes des commits employés)
Lien vers le code concerné
Voir clappie.ai
Il y a chevauchement de fonctions comme l’intégration Telegram (CC Dispatch), les crons (CC Tasks) et le chien ASCII animé (CC Buddy)
Le principe est que l’utilisateur tire et élève lui-même un familier façon gacha, avec même des familiers de rareté légendaire
Un déploiement progressif était prévu pour tenter un effet viral sur Twitter
Il est intéressant qu’Anthropic n’ait pas réellement supprimé le package, mais l’ait seulement marqué comme deprecated avec le message « Unpublished »
npm unpublishsupprime complètement un package, tandis quenpm deprecatele laisse en place en affichant seulement un avertissementCela semble probablement destiné à rendre le téléchargement des source maps plus difficile
Lien vers le package npm
Ce n’est pas la première fois qu’une telle fuite se produit
Il y avait déjà eu un incident similaire en février 2025
Billet de blog lié / Fil HN
Tous les spinner verbs ont été révélés
Lien vers le code concerné
On peut même les remplacer directement
On vit désormais dans un monde où même une petite blague est soupçonnée d’être générée par IA
src/cli/print.tsest la fonction la plus complexe de toute la base de code3 167 lignes, 12 niveaux d’imbrication, 486 points de branchement, 21 fonctions internes, etc.
C’est clairement quelque chose qu’il faudrait découper en au moins 8 à 10 modules
src/ink/termio/osc.tsest lui aussi déroutantwl-copy,xclipetxselsont exécutés séquentiellement, mais on ne sait pas vraiment si c’est async ou nonLes code smells selon des critères humains peuvent fonctionner différemment pour du code LLM
Les LLM écrivent le code autrement que les humains, et cela exige un nouveau paradigme d’analyse
Leur imposer des règles de développement humaines risque au contraire de répéter les mêmes bugs
Il faudrait une nouvelle approche évolutive appelée vibe coding
En plus, Anthropic ferme automatiquement les bugs restés inactifs pendant 60 jours
Il existe une regex qui détecte les émotions négatives dans les prompts utilisateur
Code concerné
Certains mots sont enregistrés dans les logs
On avait même des clients comme Apple et Bentley
On espère qu’un ingénieur le consulte quand Claude répond n’importe quoi pour ensuite améliorer le système
À mes yeux, du code JS/TS obfusqué reste peu important puisque ce n’est de toute façon pas du code machine
J’aimerais autant qu’ils publient carrément le CLI en open source
Il y a récemment eu aussi un bug où le flux de connexion OAuth générait une mauvaise URL
Je suis justement en train de vérifier ça moi-même
L’obfuscation ne peut pas cacher ça
Certains plaisantent sur l’idée de faire tourner tout ça via Malus ou Claude Code pour en produire une version open source
Bien sûr, il ne s’agit pas de le faire réellement
Lien vers la présentation FOSDEM
L’idée consiste à traduire du code en texte, puis à nouveau en code pour donner l’apparence d’une implémentation en clean room
Ironiquement, les réponses des LLM elles-mêmes dérivent déjà de code open source
Anthropic pourrait le détecter puis suspendre le compte
ANTI_DISTILLATION_CC est une fonction intégrée de protection contre le vol de modèle dans Claude Code
À chaque requête API,
anti_distillation: ['fake_tools']est injecté, ce qui pousse le serveur à ajouter de fausses définitions d’outils dans le prompt systèmeLe système est conçu pour polluer les données si un modèle concurrent apprend en scrapant ce trafic
Le modèle Qwen 27B a été distillé à partir d’Opus 4.6, mais il a présenté des erreurs d’usage des outils
Tweet lié
Est-ce que Sonnet ou Opus contiennent eux aussi ce genre de poison de données ?
Il a été révélé que Claude Code utilise Axios
Tweet lié / Fil HN
Pour désactiver les mises à jour automatiques, il faut ajouter
export DISABLE_AUTOUPDATER=1dans les variables d’environnement, puis vérifier avecclaude doctorque l’état indique bienAuto-updates: disabled