home / utilities / pv

pv

178

Pipeline utility for showing transfer progress, throttling throughput, and watching data movement through pipes or files.

$brew install pv
Language
C
Stars
178
Category
Utilities
Agent
Ready
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 pv instance 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 --numeric and custom --format strings; 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
  • --watchfd is documented for Linux and macOS only.
  • --remote and --query require writable IPC paths such as /run/user/<uid>/ or $HOME/.pv/.