Show HN: Proc-CLI – プロセスおよびポート管理のためのエージェントフレンドリーなCLIツール
Show HN: Proc-CLI – An agent-friendly CLI tool for process and port management (proc-cli.com)
要約
Proc-CLIは、macOS、Linux、Windows向けのプロセス管理CLIツールです。ポート番号、PID、プロセス名、パスでターゲットを指定し、プロセスを検索、停止、管理できます。パイプライン処理を必要とせず、単一コマンドで直感的に操作できる点が特徴です。
全文翻訳
ポート、PID、名前、またはパスでプロセスをターゲット指定。
procは、macOS、Linux、Windows向けのセマンティックなプロセス管理CLIツールです。ポート上にあるもの、それがなぜそこにあるのか、そしてそれを停止させる方法を、最初の試みで推測できる1つのコマンドで見つけます。
~❯proc kill :3000
ポート3000でリッスンしているものを即座に終了させます(SIGKILL)。最初に確認を求め、--dry-runでプレビューできます。
先頭にコロンが付いている場合はポートを意味します:procはそのポートでリッスンしているものを操作します。
コマンド
ターゲット
❯brew install yazeed/proc/proc
バージョン1.14.5。 npm, cargo, Scoop, Nix and Dockerにもあります。
[動画: procのデモ]
ポート3000が使用中のため開発サーバーが起動しない場合。procはそれを保持している古いtmuxセッションを見つけ、ポートを解放し、残っている他のものをクリーンアップします。
パイプラインの代わりに1つのコマンド
同じジョブを、lsofが必要とするフラグを覚えたり、PIDをkillにパイプしたりすることなく実行できます。
ポート3000には何がありますか?lsof -i :3000 -P -n``proc on :3000
それはなぜそこにありますか?lsof -i :3000、その後チェーンをたどってps -o ppid=``proc why :3000
ポートを解放しますlsof -t -i:3000 | xargs kill && sleep 1 && lsof -i:3000``proc free :3000
終了するのを待ちますwhile ps aux | grep node | grep -v grep; do sleep 5; done``proc wait node
プロセスを一時停止しますkill -STOP $(pgrep node)``proc freeze node
残骸を見つけます標準ツールはありませんproc orphans --in .
19のコマンド、3つのジョブ
すべてのコマンドは同じターゲットを取り、ほとんどのコマンドはプロジェクト内で操作するために--in、スクリプト用に--json、何かを変更する前に--dry-runを取ります。
確認する
読み取り専用。何も変更されません。
on :3000ポート上にあるものwhy :3000それを開始した理由in .このフォルダで開始されたものby node名前でfor ./app.js実行中のファイルinfo 12341つのプロセスに関するすべてportsすべてリッスン中のポートtree親と子
変更する
最初に確認を求めます。または--dry-runでプレビューします。
stop node終了を要求しますkill :3000即座に終了させますfree :3000解放し、それが解放されたか確認しますfreeze node一時停止しますthaw node再開しますunstickハングしたプロセスを回復します
監視を続ける
ライブビューと待機。
watch nodeライブテーブルwait :3000終了するまで待ちますlist --sort cpuCPU使用率の高いものstuckCPU使用率が高く、長時間実行中のものorphans親プロセスが終了した子プロセス
スクリプトおよびコーディングエージェント向け
すべてのコマンドは--jsonで1つのJSONドキュメントを出力し、終了コードは常に同じ意味を持ちます。エージェントは、テーブルを解析することなく、人間と同じようにprocを読み取ることができます。
0成功、1エラー、2見つからない、3権限拒否、4無効な入力--dry-runは何が変更されるかを示し、それ以外は何も行いません- エージェントスキルは、Claude Code、Codex、Cursor、Gemini CLIなどに、いつprocを使用すべきかを教えます
❯ proc on :8080 --json | jq '.process | {pid, cwd, uptime_secs}'
{
"pid": 177,
"cwd": "/home/dev/code/shop",
"uptime_secs": 35
}