
TUI PCAP axé sur les flux (fichiers de cas, UX magnifique). Do do do do.
Wireshark rendu facile (dans votre terminal).
Babyshark est une TUI PCAP qui vous aide à répondre :
Statut : v0.3.0 (alpha).
.pcap / .pcapng fonctionne sans Wiresharktshark (CLI Wireshark)
L’aperçu est le tableau de bord « commencez ici ». Il résume la capture et suggère quoi faire ensuite.
tshark).Comment l'utiliser :
D pour accéder à (noms d’hôtes en premier).W pour accéder à Qu’est-ce qui est bizarre ? (détecteurs organisés).F (ou f) pour accéder à Flux (bruts).
Domaines regroupe le trafic par nom d’hôte pour que vous puissiez commencer par les noms au lieu des 5-uplets.
Comment l'utiliser :
s pour changer le mode de tri.c pour effacer un filtre de sous-ensemble actif.
Qu’est-ce qui est bizarre ? est un ensemble organisé de détecteurs conçu pour répondre à « qu’est-ce qui a l’air cassé/lent ? » sans nécessiter une connaissance approfondie de Wireshark.
Comment l'utiliser :
1–9 pour sélectionner rapidement) et appuyez sur Entrée.c pour effacer un filtre de sous-ensemble actif.
Développer/Expliquer (?) donne un contexte en français courant sur ce que vous regardez.
? pour ouvrir Expliquer.Astuce : appuyez sur h pour l’aide et sur g pour le glossaire.
Téléchargez un binaire depuis les versions GitHub :
git clone https://github.com/vignesh07/babyshark
cd babyshark/rust
cargo install --path . --force
babyshark --help
.pcap / .pcapng et parcourez :
n / NDL/UL dans la liste des flux + download-heavy/upload-heavy/balanced dans les détails (revient à A>B/B>A lorsque le côté local est ambigu)T) :
Téléchargez un binaire précompilé :
Prérequis :
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 (nécessaire pour --live)tshark est l’interface en ligne de commande officielle de 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
Vérification :
tshark --version
tshark -D
Note sur les permissions : la capture en direct peut nécessiter des privilèges élevés (sudo, capacités dumpcap, ou appartenance au groupe wireshark). Si babyshark affiche une erreur de permission, suivez les conseils qu’il affiche.
babyshark mis à jour dans git mais ma commande exécute toujours l’ancien comportementSi vous avez installé avec cargo install, vous devez réinstaller après avoir tiré les modifications :
cd babyshark/rust
cargo install --path . --force
Essayez d’exécuter avec sudo :
sudo babyshark --live en0
Si cela fonctionne, vous devez probablement configurer les permissions de capture (dumpcap, groupe wireshark, etc.) sur votre système d’exploitation.
ips=0 pour toutCela se produit souvent lorsque les réponses DNS ne sont pas visibles (DoH/DoT ou mise en cache). Babyshark affichera tout de même les IP observées (depuis les flux) en utilisant les indices TLS SNI / HTTP Host quand ils sont disponibles.
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
Voici des exemples uniquement textuels de ce que vous verrez dans la TUI. Les IP/domaines sont anonymisés.
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)
La chronologie est l’histoire visuelle de votre capture. Elle montre quand chaque connexion a commencé, quelles phases elle a traversées (poignée de main, TLS, transfert de données, fermeture) et comment elles se chevauchent.
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
Niveau supérieur :
o aperçuD domainesW trucs bizarresF fluxT chronologie (Gantt + Nuage de points)h aideg glossaireq quitterDans les vues :
Entrée approfondir (domaines/bizarre → flux, flux → paquets)Esc retourc effacer le filtre de sous-ensemble actif? expliquer le flux sélectionnéx fermer l’indice de bienvenue (Aperçu)Vue Flux :
↑/↓ ou j/k déplacement/ filtret / u activer/désactiver TCP / UDPb marquer le fluxE exporter le rapportVue Chronologie :
Tab / Shift-Tab basculer Gantt / Nuage de points↑/↓ ou j/k déplacementPgUp/PgDn pageEntrée explorer les PaquetsVue Paquets :
f suivre le fluxVue Flux :
/ recherchen / N correspondance suivante / précédenteTab / Shift-Tab parcourir la direction du flux↑/↓ défilementLorsque vous marquez/exportez, babyshark écrit à côté du PCAP dans un répertoire caché :
.babyshark/case.json — marque‑pages.babyshark/report.md — dernier rapport (écrasé).babyshark/report-YYYYMMDD-HHMMSS.md — rapports versionnés--bpf pour le mode directMIT © 2026 Vignesh Natarajan