Останнього дня березня моєю стрічкою прокотилася історія, від якої я не міг відірватися. Суть: увесь вихідний код Claude Code нібито витік через криво налаштований npm-пакет — 512 000 рядків TypeScript — і десь у шарі збору даних лежить файл, який логує щоразу, коли ви лаєтеся в терміналі. Я зняв про це відео. Пів інтернету повірило. Ось чесна частина про телеметрію Claude Code, витік вихідного коду й чому паніка зайшла так глибоко, хоча сам витік був виставою.

Історія, яку надто хотілося не перевіряти

Наратив був ідеальною приманкою. Файл userPromptKeywords.ts. Regex, що ловить WTF, FFS, «piece of shit», «fucking broken» — позначає кожне is_negative: true — і відправляє в аналітику разом з вашим user ID, email, session ID і UUID організації. А далі — бонусні викриття: «undercover-режим», що вичищає згадки Anthropic зі згенерованого коду, завжди увімкнений фоновий агент, який робить «консолідацію памʼяті», поки ви спите, і фейкові інструменти, що підсовують отруєні дані всім, хто намагається дистилювати конкурентну модель.

Чудова історія. І в деталях — вигадка. Провокація від 31 березня, вбрана під злам. Немає ні злитого дампа на 512K рядків, ні regex-стукача з вашим email. Я зробив це відео саме тому, що фейк виглядав правдоподібно. А правдоподібним він був з однієї неприємної причини: за формою все це — чистісінька правда.

Частина, яка не жарт

Приберіть вигадані назви файлів — і ось що справді так, і що варто засвоїти кожному, хто користується AI-інструментом для коду:

  • Інструменти розробника збирають телеметрію за замовчуванням. VS Code, npm CLI, Next.js, Homebrew, .NET SDK — усі вони шлють дані про використання, поки ви це не вимкнете. Claude Code не виняток: у нього є задокументований шар телеметрії та звітів про помилки, з environment variables для керування.
  • Ваші промпти — це дані. Не regex на лайку, а сам текст, який ви вводите, помилки, на які натрапляєте, інструменти, які викликаєте, затримки, які ловите. Це і є сировина, на якій продукт стає кращим. «Розуміти фрустрацію користувача, щоб покращити сервіс» — це не репліка лиходія, а реальна категорія продуктової аналітики.
  • Вихідники витікають через npm постійно. Один забутий рядок у .npmignore, один зайвий files у package.json — і ваш .env, внутрішні скрипти та приватний тулінг їдуть у публічний реєстр. Це стається з реальними компаніями щомісяця. Цей вектор в історії — найреалістичніше, що в ній є.

Що я зробив після того, як зняв відео

Я почувався шахраєм, що продає фейк, і витратив вечір на нудну, справжню версію розслідування — ту, що не збирає перегляди.

  • Прочитав документацію з телеметрії. Anthropic описує, що збирає Claude Code і як це вимкнути. Є environment variables, які вимикають телеметрію та необовʼязковий трафік. Я виставив їх свідомо, на кожній машині.
  • Сам перевірив трафік. Не обовʼязково вірити сторінці документації. Пропустіть інструмент через локальний proxy або погляньте на вихідні зʼєднання — і побачите, що CLI реально відправляє. Зробіть це один раз для кожного інструмента, якому довіряєте свій код.
  • Поставився до промптів як до логів. Я не вставляю продакшн-секрети, дані клієнтів чи їхні ідентифікатори в жоден AI-асистент — те саме правило, що й для Slack, скриншотів і баг-репортів. Вважайте, що листування десь зберігається.
  • Перевірив власний package.json. Якщо я нервую через чужий .npmignore, мій має бути чистим. npm publish --dry-run покаже рівно те, що поїде в реєстр. Запустіть.

Справжній урок під клікбейтом

Причина, чому фейковий витік про телеметрію Claude Code так вистрілив, проста: ми перестали читати, що роблять наші інструменти. Ставимо, авторизуємося, видаємо доступи, забуваємо. Вигаданий regex на лайку — це карикатура, але інстинкт, який він увімкнув («стоп, а що ця штука взагалі відправляє?»), — правильний. І більшість із нас його глушить, бо ставити це питання незручно.

Ваш AI-асистент справді корисний. Я щодня збираю на Claude Code продакшн-інфраструктуру й видаляти його не збираюся. Але «корисно» і «варто зрозуміти, як воно влаштоване» одне одному не суперечать. Прочитайте документацію зі збору даних. Виставте прапорці телеметрії свідомо. Один раз погляньте на мережу. І тримайте власний .npmignore чесним — бо наступний витік у вашій стрічці може виявитися не першоквітневим жартом.

Інструменти, якими ви користуєтеся, збирають дані про те, як ви ними користуєтеся. Так було завжди. Хороший фейк змінює лише одне: на один вечір ви справді йдете й перевіряєте.