O flow é um monitor de tráfego de rede em tempo real para o terminal.
Ele é escrito em Go, utiliza Bubble Tea para a interface TUI e funciona em GNU/Linux, macOS e Windows.
Características:
- Velocidade de download
- Velocidade de upload
- Gráficos do tráfego
- Picos de transferência
- Latência
- Interface de rede utilizada
- Processos que possuem conexões de rede
- Informações da interface, como IP, MAC e MTU
- Totais de tráfego da sessão/dia
- Temas e esquemas de cores personalizados
A interface se adapta automaticamente ao tamanho do terminal, oferecendo quatro modos: Hero, Compact, Mini e Tiny.
Como instalar
O projeto disponibiliza binários pré-compilados para Linux, macOS e Windows, tanto para amd64 quanto para arm64. Também existem métodos específicos para cada plataforma.
GNU/Linux
Se você utiliza Arch Linux, pode instalar através do AUR:
yay -S flow-network-monitor-bin
Enter fullscreen mode Exit fullscreen mode
Usando Go
Com o Go instalado:
go install github.com/programmersd21/flow/cmd/flow@latest
Enter fullscreen mode Exit fullscreen mode
Verifique:
flow
Enter fullscreen mode Exit fullscreen mode
Compilando a partir do código-fonte
git clone https://github.com/programmersd21/flow
cd flow
make install
Enter fullscreen mode Exit fullscreen mode
O projeto também disponibiliza binários diretamente na página de releases.
macOS
A maneira mais simples é utilizar o Homebrew:
brew install programmersd21/flow/flow
Enter fullscreen mode Exit fullscreen mode
Depois:
flow
Enter fullscreen mode Exit fullscreen mode
Windows
No Windows, você pode baixar o binário correspondente à arquitetura da sua máquina na página de Releases do projeto.
Existem builds para:
amd64
arm64
Enter fullscreen mode Exit fullscreen mode
O processo de release gera um arquivo .zip para Windows.
Depois de extrair o executável, você pode executar:
.\flow.exe
Enter fullscreen mode Exit fullscreen mode
Se quiser chamar flow diretamente de qualquer terminal, adicione a pasta do executável ao PATH do Windows.
Primeiros passos
Depois de instalado, basta executar:
flow
Enter fullscreen mode Exit fullscreen mode
O programa detecta automaticamente a interface de rede e inicia o monitoramento.
Modos de visualização
Você pode iniciar diretamente em diferentes modos:
flow --compact
Enter fullscreen mode Exit fullscreen mode
Layout compacto.
flow --mini
Enter fullscreen mode Exit fullscreen mode
Somente os gráficos.
flow --tiny
Enter fullscreen mode Exit fullscreen mode
Uma única linha, ideal para barras de status.
Por exemplo, o modo tiny pode ser integrado ao tmux:
set -g status-right "#(flow --tiny --no-color)"
Enter fullscreen mode Exit fullscreen mode
Escolher uma interface
Se o computador possui várias interfaces de rede:
flow --interface wlan0
Enter fullscreen mode Exit fullscreen mode
Também é possível alternar entre interfaces dentro da própria aplicação usando:
i
Enter fullscreen mode Exit fullscreen mode
Alterar unidade
Pressione:
c
Enter fullscreen mode Exit fullscreen mode
para alternar entre escalas como:
B/s
KB/s
MB/s
Enter fullscreen mode Exit fullscreen mode
Ou inicie utilizando bits por segundo:
flow --bits
Enter fullscreen mode Exit fullscreen mode
Alterar o intervalo de atualização
Por padrão, o flow trabalha com uma amostragem de 100 ms.
Você pode alterar:
flow --refresh 500ms
Enter fullscreen mode Exit fullscreen mode
Monitorar a latência
É possível definir o destino utilizado para o teste de latência:
flow --ping 8.8.8.8
Enter fullscreen mode Exit fullscreen mode
O endereço padrão é 1.1.1.1.
Atalhos
Durante a execução:
Tecla Açãoq
Sair
m
Alterar modo de visualização
d
Download / Upload / Ambos
t
Selecionar tema
n
Processos de rede
i
Alterar interface
I
Detalhes da interface
c
Alterar unidade
b
Bits/s ↔ Bytes/s
+ / -
Alterar intervalo
p
Pausar/continuar
r
Resetar picos
?
Ajuda
JSON e automação
O flow não precisa ser utilizado somente como uma TUI.
Para obter uma saída JSON única:
flow --json
Enter fullscreen mode Exit fullscreen mode
Para receber dados continuamente em JSON Lines:
flow --json-stream
Enter fullscreen mode Exit fullscreen mode
Isso permite integrar o flow com scripts, dashboards e outras ferramentas de terminal.
Também existe:
flow --once
Enter fullscreen mode Exit fullscreen mode
para obter uma saída única em texto.
Para mais informações acesse o repositório.