Repolode
pranshuparmar

pranshuparmar/witr

Uma CLI e TUI que rastreia qualquer processo, porta, contêiner ou arquivo até a cadeia de sistemas que o iniciou.

Estrelas
22,720
Forks
892
Issues abertas
2
Último commit
ontem

O que é?

witr responde à pergunta "por que isso está rodando?" para um processo, uma porta em escuta, um contêiner ou um arquivo aberto. Ferramentas como ps, lsof, ss e docker ps mostram o que está rodando, mas não como chegou a esse estado. witr percorre a cadeia de processos ancestrais e supervisores (systemd, launchd, PM2, cron, sessões SSH, tmux e runtimes de contêineres) para mostrar a sequência de sistemas responsáveis pelo processo.

Ao executar witr com um nome, --pid, --port, --file ou --container, ele exibe um relatório descritivo com a cadeia de processos ancestrais, a origem que iniciou o processo, o diretório de trabalho, a branch do Git, os sockets e alertas, como estar rodando como root ou escutando em uma interface pública. A saída pode ser resumida, em formato de árvore, detalhada ou em JSON, com códigos de saída documentados para scripts e CI. Sem um alvo, witr abre uma TUI interativa com abas para processos, portas, contêineres e arquivos bloqueados, além de ações de signal e renice no Unix.

O projeto é escrito em Go e distribuído como um único binário para Linux, macOS, Windows e FreeBSD, com várias opções de gerenciadores de pacotes.

Recursos principais

  • 01Rastreia a cadeia de processos ancestrais e o supervisor (systemd, launchd, PM2, cron, SSH) por trás de um processo.
  • 02Localiza alvos pelo nome do processo, PID, porta em escuta, arquivo aberto ou contêiner.
  • 03Compatível com Docker, Podman, nerdctl, Kubernetes/crictl, Incus, LXC, LXD e jails do FreeBSD.
  • 04Oferece uma TUI interativa com abas para processos, portas, contêineres e arquivos bloqueados.
  • 05Gera relatórios legíveis, em formato resumido ou de árvore, ou em JSON com códigos de saída documentados.

Casos de uso

  • Descobrir o que está usando uma porta quando um servidor de desenvolvimento falha com 'address already in use'.
  • Investigar um processo desconhecido ou travado durante um incidente em um servidor Linux.
  • Verificar qual serviço do Compose ou contêiner é responsável por uma porta em uso.
  • Permitir que agentes de programação com IA diagnostiquem conflitos de portas e processos usando a saída em JSON.

Início rápido

  1. 1

    Instale pelo script de instalação para Unix

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

    Ou instale pelo Homebrew

    brew install witr
  3. 3

    Ou instale a partir do código-fonte do Go

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

Antes de usar

  • As opções de instalação variam conforme a plataforma, e os pacotes da comunidade podem demorar a acompanhar as versões lançadas no GitHub.

Tópicos

Perguntas frequentes

O que é witr?
Uma CLI e TUI que rastreia qualquer processo, porta, contêiner ou arquivo até a cadeia de sistemas que o iniciou. witr responde à pergunta "por que isso está rodando?" para um processo, uma porta em escuta, um contêiner ou um arquivo aberto. Ferramentas como ps, lsof, ss e docker ps mostram o que está rodando, mas não como chegou a esse estado. witr percorre a cadeia de processos ancestrais e supervisores (systemd, launchd, PM2, cron, sessões SSH, tmux e runtimes de contêineres) para mostrar a sequência de sistemas responsáveis pelo processo.
witr é gratuito? Qual é a licença?
witr é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
witr ainda é mantido?
Manutenção ativa. O último commit de witr foi em 19 de out. de 2026.
Para que posso usar witr?
Descobrir o que está usando uma porta quando um servidor de desenvolvimento falha com 'address already in use'. Investigar um processo desconhecido ou travado durante um incidente em um servidor Linux. Verificar qual serviço do Compose ou contêiner é responsável por uma porta em uso. Permitir que agentes de programação com IA diagnostiquem conflitos de portas e processos usando a saída em JSON.
Como instalar witr?
Instale pelo script de instalação para Unix: curl -fsSL https://raw.githubusercontent.com/pranshuparmar/witr/main/install.sh | bash Ou instale pelo Homebrew: brew install witr Ou instale a partir do código-fonte do Go: go install github.com/pranshuparmar/witr/cmd/witr@latest
Onde consigo witr?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/pranshuparmar/witr

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados