Repolode
pranshuparmar

pranshuparmar/witr

プロセス、ポート、コンテナ、ファイルを起点までたどり、起動したシステムの連鎖を明らかにするCLI/TUIです。

スター
22,720
フォーク
892
未解決の Issue
2
最終コミット
昨日

これは何?

witrは、プロセス、待ち受けポート、コンテナ、または開かれたままのファイルについて、「なぜこれが動いているのか?」に答えます。ps、lsof、ss、docker psなどのツールでは実行中のものはわかりますが、どのように起動されたかまではわかりません。witrは親プロセスの連鎖とsystemd、launchd、PM2、cron、SSHセッション、tmux、コンテナランタイムなどのスーパーバイザーをたどり、そのプロセスを動かしているシステムのつながりを示します。

名前、--pid、--port、--file、--containerを指定してwitrを実行すると、親子関係の連鎖、プロセスを起動した元、作業ディレクトリ、gitブランチ、ソケット、rootでの実行やパブリックインターフェースでの待ち受けといった警告を含むレポートを出力します。出力形式は簡潔表示、ツリー表示、詳細表示、JSONから選べます。スクリプトやCI向けに、終了コードも文書化されています。対象を指定せずに実行すると、プロセス、ポート、コンテナ、ファイルロックのタブと、Unixでのシグナル送信およびrenice操作を備えた対話型TUIが開きます。

Goで開発されており、Linux、macOS、Windows、FreeBSD向けの単一バイナリとして配布され、複数のパッケージマネージャーからインストールできます。

主な機能

  • 01プロセスの親プロセスの連鎖と、その背後にあるスーパーバイザー(systemd、launchd、PM2、cron、SSH)をたどります。
  • 02プロセス名、PID、待ち受けポート、開かれたファイル、コンテナを指定して対象を検索できます。
  • 03Docker、Podman、nerdctl、Kubernetes/crictl、Incus、LXC、LXD、FreeBSD jailsに対応します。
  • 04プロセス、ポート、コンテナ、ファイルロックのタブを備えた対話型TUIを提供します。
  • 05人が読みやすいレポート、簡潔表示、ツリー表示、または終了コードを文書化したJSONを出力します。

ユースケース

  • 開発サーバーで「address already in use」エラーが発生したときに、ポートを使用しているプロセスを特定する。
  • Linuxサーバーでインシデントが発生した際に、正体不明または停止したプロセスを調査する。
  • 実行中のポートをどのComposeサービスまたはコンテナが所有しているか確認する。
  • JSON出力を使い、AIコーディングエージェントにポートやプロセスの競合を診断させる。

クイックスタート

  1. 1

    Unixのインストールスクリプトでインストール

    README の公式手順に従ってインストール
  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 の最終コミットは 2026年10月19日 です。
witr は何に使えますか?
開発サーバーで「address already in use」エラーが発生したときに、ポートを使用しているプロセスを特定する。 Linuxサーバーでインシデントが発生した際に、正体不明または停止したプロセスを調査する。 実行中のポートをどのComposeサービスまたはコンテナが所有しているか確認する。 JSON出力を使い、AIコーディングエージェントにポートやプロセスの競合を診断させる。
witr のインストール方法は?
Unixのインストールスクリプトでインストール またはHomebrewでインストール: brew install witr またはGoのソースからインストール: go install github.com/pranshuparmar/witr/cmd/witr@latest
witr はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/pranshuparmar/witr

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト