Перейти к основному содержимому
Версия: v2 (текущая)

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, инфра-CLInpm, git, brew, docker, kubectl, cd (по умолчанию исключается)
AI-CLIAI-ассистенты, которые запускаются из терминалаAI coding tools, работающие как команда из shell, — учитываются на отдельном счётчике

Оба потока используют один и тот же формат heartbeat (базовая команда + timestamp). Разделение происходит на стороне сервера и позволяет сравнить, сколько времени уходит в обычный тулинг, а сколько — на промпты в AI-инструментах из терминала. Логика та же, что и в обзоре IDE-плагинов, где активность разработчика и активность ИИ разведены по разным счётчикам внутри редактора.

Кратко​

СвойствоЗначение
НазначениеHeartbeats активности в терминале
СобираетсяИмя команды + timestamp
Не собираетсяАргументы, флаги, env vars, секреты, вывод, содержимое файлов
ТранспортHTTPS / TLS
АутентификацияAPI-токен PanDev Metrics (pandev_…)
АудиторияКаждый разработчик в tenant'е
Конфигурация в UIНастройки → Плагин → CLI plugin

Поддерживаемые платформы​

ПлатформаСтатусУстановка
macOSСтабильнаяУстановка на macOS
LinuxСтабильнаяУстановка на Linux
WindowsСтабильнаяУстановка на Windows
к сведению

На Windows плагин ставится одной командой PowerShell вместо Homebrew — см. Установка на Windows. Авторизация на всех трёх платформах одинаковая — по токену.

Что собирается​

Плагин слушает shell и шлёт один event на команду. Каждый event содержит:

ПолеПримерКомментарий
Командаgit, npm, docker, kubectlТолько базовая часть — до первого пробела
Timestamp2026-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-метриках, которые зависят от ручной активности

Аутентификация​

CLI-плагин авторизуется по API-токену. Ни Server URL, ни логин, ни пароль вводить не нужно — адрес сервера и воркспейс уже зашиты в токен.

Токен берётся в веб-приложении: Settings → Plugins → CLI, значение из шага Введите ваш токен. Токен начинается с pandev_.

pandev login
# Enter your PanDev token (starts with 'pandev_'):

Или передайте токен прямо в команду — так удобнее в скриптах провижининга:

pandev login -t pandev_...

--token pandev_... и --token=pandev_... работают так же. Токен хранится локально, поэтому демон сам переподключается после перезагрузок.

предупреждение

Токен — это учётные данные: кто им владеет, тот шлёт метрики от вашего имени. Не кладите его в коммиты и общие чаты. При утечке откройте тот же шаг в вебе и нажмите Перевыпустить токен или Отозвать токен.

Этот же токен подходит для IDE-плагинов и браузерных расширений. У пользователя один активный токен на воркспейс, поэтому после перевыпуска нужно заново выполнить pandev login -t с новым значением.

Для 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). После установки демон работает от вашего пользователя.

Похожее​