
TUI de PCAP com foco em fluxos (arquivos de caso, UX deslumbrante). Do do do do.
Wireshark simplificado (no seu terminal).
Babyshark é uma TUI de PCAP que ajuda a responder:
Status: v0.3.0 (alpha).
.pcap / .pcapng funciona sem Wiresharktshark (CLI do Wireshark)
Visão Geral é o painel "comece aqui". Ela resume a captura e sugere o que fazer a seguir.
tshark).Como usar:
D para pular para Domínios (nomes de host primeiro).W para pular para O que é estranho? (detectores selecionados).F (ou f) para pular para Fluxos (bruto).
Domínios agrupa tráfego por nome de host para que você possa começar a partir de nomes em vez de 5‑uplas.
Como usar:
s para alterar o modo de ordenação.c para limpar um filtro de subconjunto ativo.
O que é estranho? é um conjunto selecionado de detectores criado para responder "o que parece quebrado/lento?" sem precisar de conhecimento profundo de Wireshark.
Como usar:
1–9 para selecionar rapidamente) e pressione Enter.c para limpar um filtro de subconjunto ativo.
Expandir/Explicar (?) fornece contexto em português claro para o que você está vendo.
? para abrir Explicar.Dica: pressione h para ajuda e g para glossário.
Pegue um binário dos GitHub Releases:
git clone https://github.com/vignesh07/babyshark
cd babyshark/rust
cargo install --path . --force
babyshark --help
.pcap / .pcapng e navegue:
n / NDL/UL na lista de fluxos + download-heavy/upload-heavy/balanced nos detalhes (usa A>B/B>A quando o lado local é ambíguo)T):
Baixe um binário pré-compilado:
Pré-requisitos:
tsharkgit clone https://github.com/vignesh07/babyshark
cd babyshark/rust
cargo install --path . --force
babyshark --help
cargo install --git https://github.com/vignesh07/babyshark --bin babyshark
tshark (necessário para --live)tshark é a CLI oficial do Wireshark.
# macOS (Homebrew)
brew install wireshark
Debian/Ubuntu:
sudo apt-get update
sudo apt-get install -y tshark
Fedora:
sudo dnf install -y wireshark-cli
Arch:
sudo pacman -S wireshark-cli
Verifique:
tshark --version
tshark -D
Nota sobre permissões: a captura ao vivo pode exigir permissões elevadas (sudo, capacidades do dumpcap, ou estar no grupo wireshark). Se o babyshark exibir um erro de permissão, siga a orientação que ele mostrar.
babyshark atualizado no git, mas meu comando ainda executa o comportamento antigoSe você instalou com cargo install, precisa reinstalar após puxar as alterações:
cd babyshark/rust
cargo install --path . --force
Tente executar com sudo:
sudo babyshark --live en0
Se funcionar, provavelmente você precisa configurar permissões de captura (dumpcap, grupo wireshark, etc.) no seu sistema operacional.
ips=0 para tudoIsso acontece frequentemente quando as respostas DNS não estão visíveis (DoH/DoT ou cache). Babyshark ainda mostrará IPs Observados (dos fluxos) usando dicas SNI TLS / Host HTTP quando disponíveis.
babyshark --pcap ./capture.pcap
babyshark --list-ifaces
babyshark --live en0
babyshark --live en0 --dfilter "tcp.port==443"
babyshark --live en0 --write-pcap /tmp/live.pcapng
Estes são exemplos apenas de texto do que você verá na TUI. IPs/domínios estão anônimos.
PCAP Viewer
babyshark Overview flows:114 packets:4227 tcp:on udp:on q=—
Overview (D domains, W weird, F flows)
In plain English
Packets: 4227 Flows: 114 Top talker: 10.0.0.6 (2711.9KB) Top talker (pkts): 10.0.0.6 (4046 pkts)
Live: 88s pps~14.6 dropped~0 | last: Capturing on 'Wi‑Fi: en0'
pps: ▁▁▂▂▃▄▅▆▆▇▆▅▄▃▂▂▁ (max 1372/bucket)
Top flow (bytes): UDP 10.0.0.6:57315 ↔ 203.0.113.123:443 (1359.3KB)
Top flow (pkts): UDP 10.0.0.6:57315 ↔ 203.0.113.123:443 (1284 pkts)
What should I click?
• Domains (human view) (press D)
• Weird stuff (troubleshoot) (press W)
• Flows (raw) (press F)
• Timeline (Gantt + Scatter) (press T)
↳ Detected: High-latency flows (rough) (29 flows)
Domains (Enter show flows, s sort (conn/bytes/fail), c clear, Esc back)
1 wikipedia.com conn=9 bytes=21.0KB q=9 r=6 fail=0 ips=2
❯ 2 chat.openai.com conn=5 bytes=28.2KB q=5 r=3 fail=0 ips=2
Domain details
chat.openai.com
queries=5 responses=3 failures=0
Observed IPs (from flows):
10.0.0.6
198.51.100.42
Tip: Enter applies a subset filter (prefers observed IPs; DNS IPs if available).
Weird stuff (Enter show flows, c clear, Esc back)
❯ 1 High-latency flows (rough) flows=42
2 Chatty hosts (burst connections) flows=28
3 TCP reliability hints (retransmits / out-of-order) flows=16
4 TCP resets (RST) flows=11
5 Deprecated TLS versions (≤ 1.1) flows=3
6 Handshake not completed flows=0
7 DNS failures (NXDOMAIN/SERVFAIL) flows=0
Why it matters
High-latency flows (rough)
If a flow takes a long time and has lots of packets, it can indicate latency,
congestion, or retries. This is a rough heuristic and depends on correct timestamps.
Timeline: Gantt (Tab switch, ↑/↓ move, Enter packets, Esc back)
█ handshake █ TLS █ data █ close █ UDP
09:31:02 09:31:10 09:31:18 09:31:26
google.com (HTTPS) ● ██████████████████████████████████
chat.openai.com (HT… ● ████████████████
wikipedia.org (HTTPS) ● ██████████████████████████
DNS 10.0.0.1:53 ● ██
Pattern: 3 connections opened simultaneously — likely a page load
Pattern: 2 DNS lookups preceded 3 encrypted connections to matching hosts
Details
TCP 10.0.0.6:57608 ↔ 198.51.100.42:443
What happened
1. Connected to google.com (TCP handshake took 12.5ms)
2. Negotiated encryption (TLS 1.3)
3. Transferred 28.2KB in 89ms (40 packets)
4. Mostly downloading (server sent more data)
5. Connection closed cleanly (FIN)
Linha do Tempo é a história visual da sua captura. Ela mostra quando cada conexão começou, quais fases percorreu (handshake, TLS, transferência de dados, fechamento) e como se sobrepõem.
Flows [LIVE en0] (63.8 pps) (Enter packets, / filter, t/u toggles, b bookmark, E export, o overview) subset=domain:chat.openai.com
● 1 UDP 510 10.0.0.6:59175 ↔ 203.0.113.123:443 DL
❯● 2 TCP 32 10.0.0.6:57608 ↔ 198.51.100.42:443 DL
Details
TCP 10.0.0.6:57608 ↔ 198.51.100.42:443
A→B: 14 pkts / 1386 bytes
B→A: 26 pkts / 26307 bytes
Direction: download-heavy
Handshake RTT: 12.450ms
Server think: 3.200ms
Data transfer: 89.100ms
TLS version: TLS 1.2
bookmarks: 1
Nível superior:
o visão geralD domíniosW coisas estranhasF fluxosT linha do tempo (Gantt + Scatter)h ajudag glossárioq sairNas visualizações:
Enter detalhar (domínios/estranho → fluxos, fluxos → pacotes)Esc voltarc limpar filtro de subconjunto ativo? explicar fluxo selecionadox dispensar dica de integração (Visão Geral)Visão de Fluxos:
↑/↓ ou j/k mover/ filtrart / u alternar TCP / UDPb marcar fluxo como favoritoE exportar relatórioVisão de Linha do Tempo:
Tab / Shift-Tab alternar Gantt / Scatter↑/↓ ou j/k moverPgUp/PgDn páginaEnter detalhar para PacotesVisão de Pacotes:
f seguir streamVisão de Stream:
/ buscarn / N próximo / anteriorTab / Shift-Tab percorrer direção do stream↑/↓ rolarQuando você marca/exporta, babyshark escreve ao lado do PCAP em um diretório oculto:
.babyshark/case.json — favoritos.babyshark/report.md — relatório mais recente (sobrescrito).babyshark/report-YYYYMMDD-HHMMSS.md — relatórios versionados--bpf para modo ao vivoMIT © 2026 Vignesh Natarajan