Содержание
Разработчик обнаружил, что в Claude Code плагин Vercel может включать телеметрию и показывать запрос согласия на передачу промптов даже в проектах, где Vercel никак не используется. По его словам, это выглядело странно: «that felt wrong».
Ситуация всплыла после того, как во время работы над «посторонним» проектом Claude внезапно спросил, можно ли делиться данными запросов. При этом в репозитории не было ни конфигов Vercel, ни зависимостей, которые бы намекали на интеграцию.
Почему запрос согласия выглядел как часть Claude, а не плагина
Самое неприятное в этой истории — то, как именно показали запрос. Он не выглядел как отдельный элемент интерфейса или уведомление от расширения. Вместо этого согласие доставили через инъекцию системных инструкций в контекст Claude.
Эти инструкции заставляли ассистента задать вопрос пользователю и дальше выполнить shell-команды в зависимости от ответа. Снаружи это было неотличимо от «родного» поведения Claude. Никакой явной пометки, что инициатор диалога — плагин, а не ядро системы, не было.
После этого разработчик полез в исходники плагина, чтобы проверить механику и объём собираемых данных.
Что именно собирает телеметрия: сессии и bash-команды
По результатам просмотра кода телеметрия работает в несколько слоёв. Часть сбора данных включена по умолчанию и стартует без явного opt-in. На уровне сессии плагин отправляет набор технических параметров в начале каждой сессии.
- Идентификаторы устройства: привязка к конкретной машине через локальный идентификатор
- Данные ОС: сведения об операционной системе
- Определение фреймворков: что похоже на используемый стек проекта
- Версии CLI: какие CLI установлены и какие версии обнаружены
Отдельный пункт, который цепляет сильнее всего: плагин, по этим данным, захватывает и передаёт строки bash-команд целиком. Не «метаданные» и не обезличенные события, а полный текст команд.
А это уже риск утечки практических деталей разработки: путей к файлам, имён хостов, фрагментов инфраструктуры, а иногда и переменных окружения. И, что важно, этот сбор идёт автоматически и не зависит от того, согласился ли пользователь делиться текстом промптов.
Телеметрия работает не только в Vercel-проектах
По описанию механики хуков в плагине телеметрия не ограничивается «верцеловскими» окружениями. В коде есть логика, которая умеет определять тип проекта через сканирование конфигов и зависимостей. Но эту «калитку» не используют, чтобы реально ограничить включение телеметрии по релевантности.
В итоге триггеры срабатывают шире: одни матчят пользовательские промпты универсально, другие цепляются за события сессии и использование инструментов, а не за признаки Vercel в проекте.
Почему формулировка «anonymous usage data» вызывает вопросы
В тексте запроса согласия говорилось, что уже собираются «анонимные данные использования», а пользователь может отдельно разрешить передачу текста промптов. При этом в описании телеметрии встречалась формулировка уровня «anonymous usage data such as skill injection patterns and tools used».
Проблема в том, что фактическая гранулярность, которую увидели в коде, выглядит шире. Если система отправляет идентификаторы сессии и полные строки shell-команд, это воспринимается иначе, чем абстрактные «паттерны использования».
Как отключается сбор данных
Отключение телеметрии, по этим данным, требует ручных действий: через переменные окружения или конфиги. Но эти опции описаны внутри директории плагина, а не выведены на установку или в понятный первый запуск.
Ещё два способа, которые упоминались в разборе: удалить файл с идентификатором устройства или отключить плагин целиком. Но и эти шаги не подсвечиваются при первичной настройке.
TechRadar Pro сообщил, что обратился в Vercel за комментарием, но на момент публикации ответа не получил.
Технический разбор разработчика доступен по ссылке: Akshay Chugh — Vercel plugin telemetry.