Телеметрия установки
Что такое анонимный пинг установки, как его включить и выключить и что в него никогда не попадает.
Телеметрия установки
ai_stp умеет отправлять один анонимный запрос после того, как компонент
действительно установлен. По умолчанию он выключен, и пока вы не ответили
на экран согласия, не уходит ни один запрос.
Смысл у него ровно один — понять, на чём люди ставят компоненты:
на Windows в Codex 0.140.1 поставили Serena MCP
Больше ничего. Ни профиля, ни истории действий, ни склада событий.
Как ответить на вопрос о согласии
Посмотреть текущее состояние и то, что запрос вообще может унести:
ai-stp telemetry show --json
Ответить — согласием или отказом. Оба ответа требуют --confirm, потому что
согласие является событием, а не значением, которое можно проставить мимоходом:
ai-stp telemetry consent --accept --confirm --json
ai-stp telemetry consent --decline --confirm --json
Агент обязан спросить это один раз в начале работы, а не посреди установки.
Пока вы не ответили, работа не блокируется: состояние not_asked ведёт себя
точно так же, как отказ — запросов нет.
!!! note "Отказ и «ещё не спрашивали» неразличимы снаружи" На проводе эти два состояния выглядят одинаково, потому что в обоих не происходит ничего. По вашему трафику нельзя отличить человека, который отказался, от человека, которого не успели спросить.
Что уходит в запрос
Один неаутентифицированный HTTPS GET. Без тела, без cookie, без токена
каталога и без авторизации GitHub.
| Поле | Пример | Что это |
|---|---|---|
os | windows | операционная система |
harness | codex | харнесс, в который ставили |
harness_version | 0.140.1 | его версия, как её сообщает toolchain |
ai_stp_version | 0.1.0 | версия CLI |
component_type | mcp | вид компонента |
name | serena | публичное имя компонента |
source | platform | где объект публично назван |
id | stable id или публичный URL репозитория | адрес компонента |
version | 1.2 | точная версия компонента |
anon | случайный UUID | различает установки CLI между собой |
Перечень закрыт. Поле вне этой таблицы означает изменение контракта, а не расширение запроса на ходу.
Что не уходит никогда
Локальные пути, приватные репозитории, идентификатор вашего аккаунта, ключ устройства, почта, имя проекта, путь цели, имена и значения переменных окружения, содержимое файлов, заголовки и аргументы MCP-серверов.
anon — случайный идентификатор в локальном каталоге данных. Он отличает одну
установку CLI от другой и ничего больше: он не равен device_id, не связан с
аккаунтом и не объединяется с публичными счётчиками каталога. Удалите
локальный каталог данных — и он станет другим.
Если компонент публично назвать нечем — нет имени или вида, — запрос не отправляется вовсе, даже при включённой телеметрии.
Когда именно отправляется
После успешного применения с действием install или update, по одному
запросу на фактически установленный компонент. Сетап из трёх компонентов даёт
три запроса.
Не отправляется на backup, rollback, remove, на любые чтения, в
автономном режиме и в тестах.
Если запрос не дошёл
Сетевая ошибка, timeout и любой ответ, кроме успешного, проглатываются молча.
Установка остаётся verified: её результат — свойство вашей цели, а не
коллектора. Повторов и накопления пачкой нет.
Как выключить
ai-stp telemetry consent --decline --confirm --json
Отдельно есть переменная окружения AI_STP_TELEMETRY_SUPPRESS: она глушит
отправку независимо от записанного согласия. Это аварийный выключатель для
окружений, где исходящий трафик недопустим, а не замена ответу на экран.
Прямая запись telemetry.enabled=true в конфигурацию отклоняется — включить
телеметрию можно только явным согласием.
Машинная граница целиком — в контракте cli-telemetry.md; здесь она
пересказана для человека, а не задана.