htop、iostat、nettop──サーバーの調子が悪いと感じるたびに、複数のツールを開いていませんか。SysWatchはそれを1つのターミナルに統合します。
この記事でわかること:
– SysWatchが解決する「複数ツール問題」
– 12タブそれぞれの内容と用途
– htopにはないInsightsタブの自動異常検知
– ビルド済みバイナリを使った即時インストール方法
SysWatchとは
Rust製のターミナルUI(TUI)ツールです。1台のマシンのシステム全体をCPU・メモリ・ディスク・GPU・電源・サービス・ネットワークの12タブで一覧します。macOSとLinuxの両方に対応し、MITライセンスで公開されています。
2026年5月2日にv0.1.1がリリースされ、GitHubで242スターを集めています。同じ開発者によるネットワーク監視TUI「NetWatch」の姉妹プロジェクトで、共通のUIフレームワークを共有しています。
複数コマンドを1つに統合する
サーバーのトラブルを調べるとき、何のツールを使いますか。
CPUを確認するために htop を開き、ディスクIOが怪しければ iostat、ネットワークが重ければ nettop か iftop、バッテリー状態が気になるなら pmset……という具合に、1台の診断だけで4〜5種類のコマンドを使い分けることになりがちです。
SysWatchはそれをひとつのTUIに統合します。数字キーまたはTab/Shift-Tabでタブを切り替えるだけで全サブシステムを確認でき、コマンドを調べる手間がなくなります。
12タブで何が見られるか
| # | タブ | 代替するコマンド |
|---|---|---|
| 1 | Overview | 全体ダッシュボード |
| 2 | CPU | htop CPUパネル、mpstat |
| 3 | Memory | free、vm_stat |
| 4 | Disks | iostat、iotop |
| 5 | Filesystems | df -h、mount |
| 6 | Procs | htop、ps auxf |
| 7 | GPU | ioreg / sysfs DRM |
| 8 | Power | pmset、ioreg |
| 9 | Services | launchctl / systemctl |
| 0 | Net | nettop、iftop |
| – | Timeline | セッション履歴スクラブ(新機能) |
| + | Insights | 平文の異常検知カード(新機能) |
CPU・メモリ・プロセス・ネットワーク・IOは1Hzで更新されます。PowerとServicesはサブプロセスの実行コストが高いため5秒間隔です。
Insightsタブ:異常を平文で知らせる
既存のTUIにはない機能が「Insights」タブです。
スワップのスラッシング、暴走プロセス、ディスク残量ひっ迫、高負荷、ゾンビプロセスといった問題をヒューリスティックな検知で発見し、結果を平文のカードとして表示します。「Memory Pressureが発生しています。Memoryタブを確認してください」という形で、確認先のタブまで案内します。
タブバーの [+] バッジとOverviewの下部ストリップに常に表示されるため、どのタブを開いているときでも異常を見逃しません。
セッション全体を巻き戻せるTimeline
Timelineタブでは ←/→ キーでセッション全体を時系列で巻き戻せます。過去の時点に移動すると、すべてのタブが連動してその時点のデータを表示します。
「5分前にCPU使用率が跳ねた瞬間、どのプロセスが動いていたか」を後から調べられます。ログファイルを掘り起こす必要がなく、セッション内の履歴をそのまま確認できます。
v0.2ではこのTimelineを基盤にSnapshot+DiffとRecording/Replayが追加予定です。
インストール方法
Rust 1.75以上が必要です。ソースからビルドする場合は次のコマンドを実行します。
git clone https://github.com/matthart1983/syswatch.git && cd syswatch
cargo build --release
./target/release/syswatch
ビルド環境がない場合は、v0.1.1のリリースページからビルド済みバイナリを入手できます。Linux(x86_64・aarch64)とmacOS(Intel・Apple Silicon)の4種類のバイナリが用意されています。
Crates.ioとHomebrewへの対応は今後のバージョンで予定されています。
起動後の基本操作は次のとおりです。
syswatch # デフォルト1Hz
syswatch --tick 500 # 2Hz(500ミリ秒間隔)
syswatch --tab procs # 直接Procsタブで起動
キー操作は q または Ctrl+C で終了、数字キー1〜9でタブ切り替え、0・-・+でNet・Timeline・Insightsに移動します。
htopとの違い
htop は「今何が動いているか」を示します。SysWatchは「今何が起きているか」を示します。プロセス一覧だけでなく、IO・GPU・電源・サービスを含めたマシン全体の状態を横断的に確認できる点が異なります。
意図的に含めていない機能もあります。複数台のマシン管理はNetWatchが担当します。プロセスのkillや設定変更などの操作機能は持ちません。「読み取り専用、触らない」という設計方針です。
sudo権限が必要なデータ(ファン回転数、コンポーネント別消費電力など)については、取得できないことをそのまま表示します。数値を偽らず、取得できるものとできないものを明示する設計のため、表示された値の信頼性が高いです。
Rust製のため、アイドル時のCPU使用率は0.5%未満を目標としています。システムを監視するツール自体がシステムに負荷をかけない設計です。