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
| Attribute | Details |
|---|---|
| Type | Terminal Disk Monitoring Tools |
| Best For | Linux and macOS devs |
| Language/Stack | Rust 1.75+, TUI, macOS IOKit, Linux /proc and /sys, smartctl |
| License | MIT |
| GitHub Stars | N/A as of Feb 2026 |
| Pricing | Open-Source |
| Last Release | v0.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
--diagsnapshot 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, andsystem_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
smartctlis 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 fromdiskutil, 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 —
--diagprints 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
| Tool | Best For | Key Differentiator | Pricing |
|---|---|---|---|
| DiskWatch | Single-host disk triage with capacity, IO, SMART, and hot-file context | One TUI that unifies device, volume, filesystem, and anomaly views | Open-source |
| iostat | Raw throughput and device utilization counters | Lightweight, standard, and available almost everywhere | Open-source |
| smartctl | Deep drive-health inspection | Best-in-class SMART and NVMe attribute visibility | Open-source |
| iotop | Process-level IO attribution | Shows which process is writing, not just which disk is busy | Open-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.
smartctlsupport is optional, which means the app still degrades gracefully on systems where that binary is missing.- The
--diagmode 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.



