Pipeline utility for showing transfer progress, throttling throughput, and watching data movement through pipes or files.
$brew install pv
Agent Compatibility
JSON Output
Agent Skill
MCP Support
AI Analysis
pv is a Unix pipeline utility for monitoring and shaping data as it moves between commands or files. It adds progress, rate, ETA, and transfer controls without changing the rest of the pipeline.
What It Enables
- Show progress, throughput, bytes transferred, and ETA for long-running copy, compression, backup, disk-image, or log-processing pipelines.
- Throttle or reshape transfers with rate limits, buffer sizing, store-and-forward, sparse output, discard mode, and read-error skipping for bulk data moves.
- Watch file descriptors opened by another process, or query and retune a running
pvinstance with--watchfd,--query, and--remote.
Agent Fit
- Fits shell loops well because it sits inline in existing pipelines and exposes direct flags for inspect and control instead of an interactive UI.
- Machine-readable output exists, but only through
--numericand custom--formatstrings; default progress output is human-oriented text on stderr. - Best as a support primitive around data-moving commands such as
tar,dd,gzip, or custom producers and consumers, not as a standalone service-control CLI.
Caveats
--watchfdis documented for Linux and macOS only.--remoteand--queryrequire writable IPC paths such as/run/user/<uid>/or$HOME/.pv/.