DiskWatch — Terminal Disk Monitoring Tools tool screenshot
Terminal Disk Monitoring Tools

DiskWatch Review: Terminal Disk Diagnostic Alternative to iostat

7 min read·

DiskWatch turns low-level disk telemetry into one terminal view so you can spot capacity pressure, IO bottlenecks, SMART failures, and hot-file churn before they become an outage.

Pricing

Open-Source

Tech Stack

Rust 1.75+, terminal TUI, macOS IOKit, Linux /proc and /sys, smartctl

Target

Linux and macOS devs

Category

Terminal Disk Monitoring Tools

What Is DiskWatch?

DiskWatch is a Rust terminal UI built by matthart1983 for single-host disk diagnostics on macOS and Linux. DiskWatch is one of the best Terminal Disk Monitoring Tools for Linux and macOS devs, and its eight tabs cover capacity, IO, SMART health, hot files, and anomaly summaries in one screen. The repo ships as MIT-licensed v0.1 software and replaces a pile of manual checks with one local TUI.

Quick Overview

AttributeDetails
TypeTerminal Disk Monitoring Tools
Best ForLinux and macOS devs
Language/StackRust 1.75+, TUI, macOS IOKit, Linux /proc and /sys, smartctl
LicenseMIT
GitHub StarsN/A as of Feb 2026
PricingOpen-Source
Last Releasev0.1 — date not stated in the repo snapshot

Who Should Use DiskWatch?

  • SREs debugging disk latency on one host who need capacity, throughput, and health data in the same terminal pane.
  • Indie hackers running a VPS or Mac mini who want to catch a failing SSD before it turns into data loss.
  • Platform engineers on mixed macOS/Linux fleets who need to compare APFS, mdraid, mounted filesystem usage, and device health without leaving SSH.
  • Ops responders who want a fast --diag snapshot they can attach to a ticket or incident channel.

Not ideal for:

  • Fleet-wide monitoring across many hosts, because DiskWatch is explicitly not a multi-host daemon.
  • Workflows that need process-level bytes/sec attribution without elevated permissions or platform entitlements.
  • Backup, dedupe, cleanup, or mutation tasks, because DiskWatch only observes and explains disk state.

Key Features of DiskWatch

  • Unified overview dashboard — The Overview tab compresses capacity, IO, p99 latency, health, and insights into five KPI tiles plus a segmented capacity bar. That is the right shape for an on-call screen because it shows whether the problem is space pressure, storage latency, or media health.
  • Cross-platform device discovery — On macOS, DiskWatch pulls from ioreg, diskutil, and system_profiler; on Linux it reads /sys/block/*/device/{model,serial,firmware_rev} and related kernel surfaces. That means the same TUI can show the hardware identity of a disk whether you are on an M-series Mac or a Linux server.
  • Volume and RAID context — The Volumes tab maps APFS containers and nested volumes on macOS, including role and FileVault state, and it maps mdraid arrays on Linux, including member slots and resync progress. That is more useful than raw device lists because it ties a block device back to the mount and the topology.
  • IO latency and throughput view — DiskWatch shows per-device read and write throughput, a 48-second sparkline, and p50 plus p99 latency over a 60-second rolling window. The data model is good enough for triage when you need to identify the noisy disk without waiting for a separate trace stack.
  • SMART visibility with graceful fallback — If smartctl is on PATH, DiskWatch renders full NVMe and ATA attribute tables. If it is not installed, the SMART tab still falls back to the basic verified or failing state from diskutil, so you do not get a dead panel during a live incident.
  • Hot-file pressure by path, not by guesswork — The Hot Files tab tracks event rate with FSEvents on macOS and inotify on Linux, so you can see which paths are being written right now. DiskWatch is explicit that byte counts and PID attribution need root, fs_usage, Endpoint Security entitlement, or eBPF-style tooling, which keeps the output honest.
  • Script-friendly diagnostics mode--diag prints collected state and exits instead of launching the TUI. That makes DiskWatch easy to drop into runbooks, bug reports, or shell aliases when you want a fast snapshot before you decide whether to keep digging.

DiskWatch vs Alternatives

ToolBest ForKey DifferentiatorPricing
DiskWatchSingle-host disk triage with capacity, IO, SMART, and hot-file contextOne TUI that unifies device, volume, filesystem, and anomaly viewsOpen-source
iostatRaw throughput and device utilization countersLightweight, standard, and available almost everywhereOpen-source
smartctlDeep drive-health inspectionBest-in-class SMART and NVMe attribute visibilityOpen-source
iotopProcess-level IO attributionShows which process is writing, not just which disk is busyOpen-source

Pick iostat when you only need counters and want the smallest possible footprint. Pick smartctl when the incident starts with media health rather than utilization, and pick iotop when process attribution matters more than a unified storage view.

If your incident workflow already uses OpenTrace for service latency, DiskWatch fills the host-storage layer that traces cannot see. Teams that automate remediation with djevops can pair diskwatch --diag with alert runbooks and keep the storage triage path scriptable.

How DiskWatch Works

DiskWatch uses OS-specific collectors and a shared Rust aggregation layer to normalize storage telemetry into the same TUI model. On Linux, it reads /proc/diskstats for byte and latency counters, /sys/block for device metadata, /proc/mdstat for mdraid state, and inotify for path churn. On macOS, it combines IOKit, diskutil, system_profiler, ioreg, and FSEvents so the UI can render APFS containers, device identity, and per-path activity without a separate agent.

The design intentionally avoids a daemon and a persistent database. DiskWatch keeps a 60-second rolling window so it can estimate p50 and p99 latency from tick averages, which is good enough for triage but not the same thing as a full per-operation histogram. The repo is also explicit about deferred capabilities: true histograms need IOReport entitlement on macOS or eBPF-style biolatency access on Linux.

git clone https://github.com/matthart1983/diskwatch.git
cd diskwatch
cargo run --release -- --diag

That command path collects the current storage state and exits, which is useful when you want to verify collector access before opening the TUI. Drop --diag to enter the interactive interface, then use 1 through 8 to switch tabs and p to pause sampling when you need to read a snapshot.

Pros and Cons of DiskWatch

Pros:

  • One screen covers device inventory, filesystem usage, IO, SMART, and hot-file pressure.
  • macOS and Linux support is built into the collector layer instead of being bolted on later.
  • The UI stays local and stateless, so there is no server to provision or collector DB to babysit.
  • smartctl support is optional, which means the app still degrades gracefully on systems where that binary is missing.
  • The --diag mode is practical for tickets, incident logs, and shell automation.
  • MIT licensing keeps adoption friction low for teams that want to vendor it or wrap it in scripts.

Cons:

  • It is not a fleet dashboard, so it does not solve multi-host visibility.
  • Hot-file byte counts and PID attribution stop at privilege boundaries, especially on macOS.
  • ZFS and LVM are deferred, so some storage stacks still need separate tools.
  • p99 latency is tick-averaged over a rolling window, not a true histogram.
  • It is not a backup, cleanup, or dedupe product, so you still need separate remediation tooling.

Getting Started with DiskWatch

git clone https://github.com/matthart1983/diskwatch.git
cd diskwatch
cargo build --release
./target/release/diskwatch

If you prefer a packaged install, cargo install diskwatch works too. After the first launch, DiskWatch will populate the default collectors, and the 1 to 8 keys let you jump between Overview, Devices, Volumes, FS, IO, SMART, Hot Files, and Insights. On macOS, install smartmontools if you want full SMART tables; on Linux, no extra system dependency is required beyond Rust 1.75+.

Verdict

DiskWatch is the strongest option for single-host disk triage when you need capacity, IO, SMART, and hot-file visibility in one terminal and you are on macOS or Linux. Its biggest strength is the unified host-level model; its main caveat is that it stops short of fleet observability. Use it for local storage incidents, and pair it with OpenTrace or djevops when you need broader incident workflows.

Frequently Asked Questions

Looking for alternatives?

Compare DiskWatch with other Terminal Disk Monitoring Tools tools.

See Alternatives →

You Might Also Like