import IdealImage from "@theme/IdealImage";
CLI-плагин
CLI-плагин PanDev Metrics записывает активность в терминале как heartbeats — имя команды + временная метка, — чтобы ваше время в shell попадало в дашборды рядом с данными из IDE, Git и таск-трекеров.
CLI-плагин — это небольшой фоновый демон, который ставится на машину разработчика. Он не читает, не хранит и не передаёт аргументы команд, флаги, переменные окружения, содержимое файлов или секреты. На сервер PanDev Metrics уходит только базовое имя команды и момент её запуска.
CLI-метрики в веб-приложении
В веб-приложении есть отдельная страница для CLI-активности — с разбивкой по терминалам и командам по каждому разработчику:
Standard CLI vs AI-CLI
PanDev Metrics делит собранные команды на две категории, чтобы AI-coding активность была видна отдельно от обычной работы в shell:
| Категория | Что покрывает | Примеры |
|---|---|---|
| Standard CLI | Повседневные shell-инструменты, билд-системы, package managers, git, инфра-CLI | npm, git, brew, docker, kubectl, cd (по умолчанию исключается) |
| AI-CLI | AI-ассистенты, которые запускаются из терминала | AI coding tools, работающие как команда из shell, — учитываются на отдельном счётчике |
Оба потока используют один и тот же формат heartbeat (базовая команда + timestamp). Разделение происходит на стороне сервера и позволяет сравнить, сколько времени уходит в обычный тулинг, а сколько — на промпты в AI-инструментах из терминала. Логика та же, что и в обзоре IDE-плагинов, где активность разработчика и активность ИИ разведены по разным счётчикам внутри редактора.
Кратко
| Свойство | Значение |
|---|---|
| Назначение | Heartbeats активности в терминале |
| Собирается | Имя команды + timestamp |
| Не собирается | Аргументы, флаги, env vars, секреты, вывод, содержимое файлов |
| Транспорт | HTTPS / TLS |
| Аутентификация | Учётка PanDev Metrics (login + пароль) |
| Аудитория | Каждый разработчик в tenant'е |
| Конфигурация в UI | Настройки → Плагин → CLI plugin |
Поддерживаемые платформы
| Платформа | Статус | Установка |
|---|---|---|
| macOS | Стабильная | Установка на macOS |
| Linux | Стабильная | Установка на Linux |
| Windows | В разработке | — |
Сборка под Windows есть в roadmap. Сейчас для машин на Windows используйте IDE-плагин — он покрывает ту же активность.
Что собирается
Плагин слушает shell и шлёт один event на команду. Каждый event содержит:
| Поле | Пример | Комментарий |
|---|---|---|
| Команда | git, npm, docker, kubectl | Только базовая часть — до первого пробела |
| Timestamp | 2026-05-13T14:21:08Z | Момент запуска |
| Хост | hostname | Чтобы различать машины |
| Пользователь | Логин PanDev Metrics | Привязка к учётке |
Что НЕ собирается
Гарантия приватности встроена в плагин — никакой настройки, которая это включает, нет:
- Аргументы (пути файлов, имена веток, хосты)
- Флаги (никаких
--token,--password,--key) - Переменные окружения
- stdout / stderr
- Содержимое файлов
- Текущая директория
Пример:
# Вы запускаете:
git commit -m "fix CVE-2026-1234" --author="alice@example.com"
# PanDev видит:
git # + timestamp
Это by design. CLI-плагин — это heartbeat, а не audit log.
Как это укладывается в модель времени
Heartbeats из CLI-плагина считаются той же логикой активного времени, что и IDE-плагины и расширения браузера. Если зазор между событиями меньше 15 минут, время идёт в активное. Зазор больше 15 минут разрывает сессию.
Активность CLI учитывается в:
- Активных часах разработчика
- Времени на задачу, когда задача открыта в IDE параллельно с терминалом
- DORA-метриках, которые зависят от ручной активности
Аутентификация
Плагин логинится обычной учёткой PanDev Metrics — тот же логин, что и для веба. Креды хранятся локально, чтобы демон сам переподключался после перезагрузок.
pandev login
# Server URL: https://metrics-cloud.pandev.io (или ваш on-prem URL)
# Логин: your.name@example.com
# Пароль: *********
Для on-prem с самоподписанным сертификатом — смотрите troubleshooting в гайде по вашей платформе.
Проверка
После установки есть три команды, которые показывают, что плагин жив:
pandev status # Демон работает и авторизован
pandev time # Время по CLI за сегодня
pandev --help # Все команды плагина
Конфигурация в UI
Администраторы могут посмотреть подключения CLI-плагина в Настройки → Плагин → CLI plugin. Каждая активная машина видна с временем последнего heartbeat. Если подключения нет — разработчику нужно ещё раз сделать pandev login.
Работа без сети
Если машина оффлайн, плагин копит события локально. Когда сеть вернётся, очередь сольётся на сервер по порядку. События не теряются, timestamp'ы сохраняются.
FAQ
Почему только имя команды, а не аргументы?
Аргументы регулярно содержат секреты (--token, --password), приватные пути (/home/alice/secrets/) и чувствительные идентификаторы (номера задач, ID клиентов). PanDev Metrics — это инструмент продуктивности, а не аудита. Хранить только базовое имя команды — это простой и невозможный для обхода контракт по приватности.
Работает в tmux / screen / SSH?
Да. Плагин цепляется к shell, а не к эмулятору терминала. Tmux-панели, screen-окна и SSH-сессии — все генерят heartbeats, пока плагин стоит на машине, где запущен shell.
Тормозит терминал?
Нет. Каждый heartbeat — это одна неблокирующая запись в локальную очередь. Демон сам сливает её на сервер в фоне.
Можно исключать отдельные команды?
Сейчас пользовательские исключения в CLI-плагине не настраиваются. Whitelist отслеживаемых команд задан глобально и по умолчанию исключает shell-built-in'ы (cd, ls, pwd и т.д.).
Нужен sudo / root?
Установка требует прав на macOS (Homebrew tap + одноразовый sudo pandev-cli-plugin --install). После установки демон работает от вашего пользователя.