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

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

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

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

Похожее