Kiriで開発ポートの持ち主を追跡する
地元の開発港の霧の中を覗いてみましょう。プラットフォームサポートプラットフォーム |ステータス | - | - | MacOS arm64/x64 |サポートされている | Linux x64 |サポートされている | Windows x64 |サポートされている | Linux arm64 / Windows arm64 |計画中 | MacOS では、Kiri は lsof、ps、tail、MacOS ログ コマンド、およびオプションの Docker メタデータを使用します。
ひと目でわかる
- これは何?
- Rust製CLIでポート、PID、ログ、孤児プロセスを調べ、必要なプロセスを終了する方法
- 誰に向いている?
- Kiri は、ローカル開発のポート作業を一つのコマンドにまとめたツールです。ポート一覧、プロセス識別、ログ追跡、ポート背後にあるプロセスの強制終了を提供します。
- 商用利用できる?
- できます。Apache-2.0 は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
- 今もメンテナンスされている?
- されています。最後のコミットは 33 日前です。
- 何の言語で書かれている?
- 主に Rust です(GitHub の言語統計による)。
回答はプロジェクトの GitHub データ(最終同期:2026年9月14日)と当サイトの分析に基づくもので、法的助言ではありません。
オープンソース詳細解説
Kiri の概要
Kiri は Rust で書かれたローカル開発ポート管理用のコマンドラインツールです。主コマンドは `ports` で、ローカル開発サービスの概要を表示します。ポート、プロセス、PID、メモリ使用量、プロジェクト名、検出されたフレームワーク、稼働時間、ヘルスステータスが含まれます。README では、ローカルで実行中のサービス、使用中のポート、必要に応じてポート背後にあるプロセスの処理をすばやく確認できると説明されています。
コマンド一覧
README には `ports` バイナリを中心としたコマンド群が記載されています。`ports` はローカル開発サービスとそのポートを表示し、`ports --all` はすべてのリッスンポートを表示します。`ports <port>` は特定ポートの詳細を表示します。`ports ps` はポートをリッスンしない開発者向けバックグラウンドプロセス(Codex、Claude Code などの AI コーディングツールが起動した MCP Server プロセスを含む)を表示し、`ports ps --all` はすべてのプロセスを表示します。`ports kill <port>` はポート背後にあるプロセスを終了し、`ports kill 3000-3010` のように範囲指定も可能で、`--force` を付けると SIGTERM の代わりに SIGKILL を使用します。`ports logs <port|pid>` は最近のログを表示して終了し、`-f` で追跡、`--lines` で行数を制限、`--err` で標準エラーのみを表示します。`ports clean` は孤児またはゾンビ開発プロセスのクリーンアップを確認し、`ports watch` はポートの開始・停止イベントをストリーム表示します。
ステータスラベルの意味
`ports` テーブルでは 3 つのステータスラベルが使われます。`healthy` はプロセスが実行中で、通常の親プロセスがまだ存在することを意味します。`orphaned` はプロセスがまだ生きており、ポートをリッスンしている可能性があるものの、起動した親プロセスがすでに終了している状態です。README はこれを孤児プロセスであり、ゾンビプロセスではないと説明しています。`zombie` はプロセスがすでに終了したが、オペレーティングシステムが親プロセスに回収されていないプロセスレコードを保持している状態です。実際には、`orphaned` はプロセスがまだ実行中だが、ターミナル、IDE タスク、スクリプトランナー、Codex セッション、Claude Code セッションなど、元のランチャーが消えていることを意味します。
対応プラットフォームとシステム依存
Kiri は MacOS arm64/x64、Linux x64、Windows x64 をサポートしています。Linux arm64 と Windows arm64 は計画中です。MacOS では `lsof`、`ps`、`tail`、MacOS の `log` コマンド、およびオプションの Docker メタデータを使用します。Linux では `ss`、`ps`、`/proc`、およびオプションの Docker メタデータを使用します。Windows では PowerShell/CIM と `Get-NetTCPConnection` を使用し、プロセスの作業ディレクトリは実行可能ファイルのパスからベストエフォートで取得します。Docker はオプションであり、Docker が利用できない場合やコンテナが実行されていない場合、Kiri は Docker マッピングなしで動作を続けます。
ログ出力とターミナル表示
`ports logs` は、Java、Python、Go、Node.js、logfmt、JSON などの一般的な開発ログ形式に ANSI カラーを追加します。タイムスタンプ、ログレベル、プロセス ID、トレース ID、ソースクラス、HTTP 値、構造化フィールドが色分けされます。デフォルトの `ports` テーブルは Kiri の ASCII ロゴと ANSI ターミナル出力を意図的に描画し、`Mem` 列を含みます。ターミナル経由で起動したサービスの場合、README は `.dev-logs/service.log` のような安定したファイルバックのログを推奨しており、`ports logs <port|pid> -f` が別プロセスの出力を追跡できるようになります。
インストール方法
Kiri は MacOS、Linux x64、Windows x64 向けのプリビルドリリース成果物を提供しています。README には 3 つのインストール経路が記載されています。npm では `npm install -g @gaossr/kiri@latest`、MacOS では Homebrew で `brew install gaossr/tap/kiri`、GitHub Release のインストールスクリプトです。MacOS/Linux のスクリプトは `curl -fsSL https://raw.githubusercontent.com/GaoSSR/Kiri/main/scripts/install.sh | bash`、Windows では PowerShell で `irm https://raw.githubusercontent.com/GaoSSR/Kiri/main/scripts/install.ps1 | iex` を実行します。README は MacOS では Homebrew を推奨しており、npm とインストールスクリプトはプリビルドのネイティブバイナリを使用し、ローカルで Rust をコンパイルしないと説明しています。
開発コマンドとライセンス
メンテナとコントリビュータ向けに、README はソースから実行するコマンドを列挙しています:`cargo fmt`、`cargo test`、`cargo clippy --all-targets -- -D warnings`、`cargo build --release --bin ports`、`scripts/perf-smoke.sh`、`scripts/verify-release.sh v0.1.24`、そして `cargo run --bin ports` とそのバリエーションです。Kiri は Apache-2.0 ライセンスで公開されています。ライセンスの抜粋は、複製、派生作品の作成、公開表示、公開演奏、サブライセンス、頒布を行う永続的かつ世界的、非独占的、無償、ロイヤリティフリー、取消不能な著作権ライセンスを許諾しています。ライセンス本文はセキュリティサポート、保証、パフォーマンス保証については言及していません。
Kiriの出力を読むときは、ポート番号だけでなくPID、メモリ使用量、プロジェクト名、フレームワーク、稼働時間を同時に確認できます。MacOSではlsof、ps、tail、log系のコマンドを利用し、Dockerのメタデータは任意扱いです。Linux arm64とWindows arm64は計画中なので、対応済みと記載されたLinux x64またはWindows x64と区別して評価します。
編集部の結論
Kiri は、ローカル開発のポート作業を一つのコマンドにまとめたツールです。ポート一覧、プロセス識別、ログ追跡、ポート背後にあるプロセスの強制終了を提供します。README によると、現在の対応プラットフォームは MacOS arm64/x64、Linux x64、Windows x64 で、Linux arm64 と Windows arm64 は計画中です。 Kiriのports、ps、kill、logs、clean、watchを使う場面と、healthy・orphaned・zombieの違い、対応プラットフォームを解説します。 採用前にはREADMEに示された導入コマンドを隔離した検証環境で実行し、対象バージョン、生成ログ、依存関係、権限の変化を記録してください。
コミュニティノート