Repolode
pranshuparmar

pranshuparmar/witr

CLI и TUI, которые прослеживают цепочку систем, запустивших процесс, занявших порт или контейнер либо открывших файл.

Звёзды
22,720
Форки
892
Открытые issues
2
Последний коммит
вчера

Что это?

witr отвечает на вопрос «почему это запущено?» применительно к процессу, прослушиваемому порту, контейнеру или файлу, который открыт процессом. Такие инструменты, как ps, lsof, ss и docker ps, показывают, что запущено, но не объясняют, как это было запущено. witr проходит по цепочке родительских процессов и супервизоров (systemd, launchd, PM2, cron, SSH-сессии, tmux, среды выполнения контейнеров), чтобы показать, какие системы отвечают за процесс и в какой последовательности.

Если запустить witr с именем, --pid, --port, --file или --container, он выведет текстовый отчет с цепочкой предков, источником запуска процесса, рабочим каталогом, веткой git, сокетами и предупреждениями — например, о запуске от root или прослушивании публичного интерфейса. Вывод может быть кратким, древовидным, подробным или в формате JSON; для скриптов и CI предусмотрены документированные коды завершения. При запуске без цели открывается интерактивный TUI со вкладками процессов, портов, контейнеров и блокировок файлов, а также действиями signal и renice в Unix.

Проект написан на Go и распространяется в виде одного бинарного файла для Linux, macOS, Windows и FreeBSD; доступны несколько вариантов установки через менеджеры пакетов.

Ключевые возможности

  • 01Прослеживает цепочку родительских процессов и супервизоров (systemd, launchd, PM2, cron, SSH), связанных с процессом.
  • 02Находит цель по имени процесса, PID, прослушиваемому порту, открытому файлу или контейнеру.
  • 03Поддерживает Docker, Podman, nerdctl, Kubernetes/crictl, Incus, LXC, LXD и jail в FreeBSD.
  • 04Предоставляет интерактивный TUI со вкладками процессов, портов, контейнеров и блокировок файлов.
  • 05Выводит отчеты для чтения, краткое или древовидное представление либо JSON с документированными кодами завершения.

Сценарии использования

  • Выяснить, что занимает порт, когда dev-сервер не запускается с ошибкой «address already in use».
  • Разобраться с неизвестным или зависшим процессом во время инцидента на Linux-сервере.
  • Проверить, какому сервису Compose или контейнеру принадлежит занятый порт.
  • Позволить AI-агентам для написания кода выявлять конфликты портов и процессов с помощью вывода в формате JSON.

Быстрый старт

  1. 1

    Установить с помощью скрипта установки для Unix

    curl -fsSL https://raw.githubusercontent.com/pranshuparmar/witr/main/install.sh | bash
  2. 2

    Или установить через Homebrew

    brew install witr
  3. 3

    Или установить из исходного кода Go

    go install github.com/pranshuparmar/witr/cmd/witr@latest

Что важно знать

  • Способы установки различаются в зависимости от платформы, а обновления в пакетах сообщества могут выходить позже релизов на GitHub.

Темы

Частые вопросы

Что такое witr?
CLI и TUI, которые прослеживают цепочку систем, запустивших процесс, занявших порт или контейнер либо открывших файл. witr отвечает на вопрос «почему это запущено?» применительно к процессу, прослушиваемому порту, контейнеру или файлу, который открыт процессом. Такие инструменты, как ps, lsof, ss и docker ps, показывают, что запущено, но не объясняют, как это было запущено. witr проходит по цепочке родительских процессов и супервизоров (systemd, launchd, PM2, cron, SSH-сессии, tmux, среды выполнения контейнеров), чтобы показать, какие системы отвечают за процесс и в какой последовательности.
witr можно использовать бесплатно? Какая у него лицензия?
witr распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
witr всё ещё поддерживается?
Активно поддерживается. Последний коммит в witr — 19 окт. 2026 г..
Для чего можно использовать witr?
Выяснить, что занимает порт, когда dev-сервер не запускается с ошибкой «address already in use». Разобраться с неизвестным или зависшим процессом во время инцидента на Linux-сервере. Проверить, какому сервису Compose или контейнеру принадлежит занятый порт. Позволить AI-агентам для написания кода выявлять конфликты портов и процессов с помощью вывода в формате JSON.
Как установить witr?
Установить с помощью скрипта установки для Unix: curl -fsSL https://raw.githubusercontent.com/pranshuparmar/witr/main/install.sh | bash Или установить через Homebrew: brew install witr Или установить из исходного кода Go: go install github.com/pranshuparmar/witr/cmd/witr@latest
Где скачать witr?
Исходный код и инструкции по установке — на GitHub: https://github.com/pranshuparmar/witr

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Терминальная панель на Textual для создания, редактирования, приостановки и мониторинга cron-задач на локальных машинах и удалённых серверах по SSH.

1,5 тыс.61PythonApache-2.0Обновлён 25 дней назад

Trivy — сканер безопасности с открытым исходным кодом, который выявляет уязвимости, ошибки конфигурации, секреты и данные SBOM в контейнерах, файловых системах, Git-репозиториях, образах VM и Kubernetes.

38,5 тыс.774GoApache-2.0Обновлён 23 часа назад