π Thanks to @Dominiquini for helping bring Flow to the AUR!
Homebrew:
brew install programmersd21/flow/flow
Go:
go install github.com/programmersd21/flow/cmd/flow@latest
From source:
git clone https://github.com/programmersd21/flow
cd flow
make install
Pre-built binaries for Linux, macOS, and Windows (amd64 and arm64) are available on the releases page.
Rationale
Most network monitors display CPU usage, per-process breakdowns, packet counts, and connection tables. flow displays throughput only.
btop
flow
CPU, memory, disks, processes, network
throughput only
Every feature decision is evaluated against a single question: does this help the user understand their network within one second. If not, it is not included.
The result is a small, deliberately scoped tool. There are no additional panels, no required configuration, and no unnecessary complexity in either the interface or the underlying implementation.
# ~/.tmux.conf
set -g status-right "#(flow --tiny --no-color)"
set -g status-interval 1
Configuration
A configuration file is created automatically on first run:
Platform
Path
Linux
~/.config/flow/config.toml
macOS
~/Library/Application Support/flow/config.toml
Windows
%APPDATA%\flow\config.toml
The XDG_CONFIG_HOME environment variable is respected on Linux if set.
refresh = "100ms" # sampling interval
history = 60 # seconds of retained sparkline history
theme = "default"
unit = "auto" # auto, kb, mb, or gb
interface = "auto" # auto, or a specific interface name (e.g. eth0, wlan0)
no_color = false
bits = false # display throughput in bits/sec
ping_target = "1.1.1.1" # host for latency measurement
Interface layout
flowchart TD
Title["flow"]
Download["DOWNLOAD panel: current speed, peak, waveform"]
Upload["UPLOAD panel: current speed, peak, waveform"]
Info["Daily totals and active interface"]
Footer["Keybinding reference"]
Title --> Download
Download --> Upload
Upload --> Info
Info --> Footer
All elements are centered on both axes. Panel border color changes according to current transfer speed.
Custom themes
Place .toml files in ~/.config/flow/themes/ to define user themes:
Separating collection from rendering keeps the interface responsive without adding load to the sampler. Idle CPU usage remains below one percent.
Platform notes: Linux reads /proc/net/dev via gopsutil. macOS uses sysctl and getifaddrs. Windows uses GetIfTable2. No elevated privileges are required on any platform.
Development
make check # format check, vet, lint, and test
make build # build ./bin/flow
make test # go test ./... -race -cover
make release-dry # goreleaser snapshot build, no publish
Thank you to everyone who has supported flow. Whether you've starred the repository, reported an issue, submitted a pull request, shared the project, or simply use it every day - your support is what keeps the project growing.
β Stargazers
β€οΈ Sponsor
If flow has made your terminal a little better, please consider sponsoring its development on GitHub.
Your sponsorship helps support:
π New features
π Bug fixes
β‘ Performance improvements
π Better documentation
π οΈ Long-term maintenance
If you're unable to sponsor, you can still make a huge difference by:
β Starring the repository
π’ Sharing flow with others
π¬ Recommending it to friends and colleagues
π Reporting bugs or suggesting improvements
π€ Contributing code or documentation
Every contribution, no matter how small, helps flow continue to grow.