snitch

a friendlier ss / netstat for humans. inspect network connections with a clean tui or styled tables.

install

go

go install github.com/karol-broda/snitch@latest

nixos / nix

# try it
nix run github:karol-broda/snitch

# install to profile
nix profile install github:karol-broda/snitch

# or add to flake inputs
{
  inputs.snitch.url = "github:karol-broda/snitch";
}
# then use: inputs.snitch.packages.${system}.default

binary

download from releases:

# amd64
curl -L https://github.com/karol-broda/snitch/releases/latest/download/snitch_linux_amd64.tar.gz | tar xz
sudo mv snitch /usr/local/bin/

# or install .deb/.rpm/.apk from releases

quick start

snitch              # launch interactive tui
snitch -l           # tui showing only listening sockets
snitch ls           # print styled table and exit
snitch ls -l        # listening sockets only
snitch ls -t -e     # tcp established connections
snitch ls -p        # plain output (parsable)

commands

snitch / snitch top

interactive tui with live-updating connection list.

snitch                  # all connections
snitch -l               # listening only
snitch -t               # tcp only
snitch -e               # established only
snitch -i 2s            # 2 second refresh interval

keybindings:

j/k, ↑/↓      navigate
g/G           top/bottom
t/u           toggle tcp/udp
l/e/o         toggle listen/established/other
s/S           cycle sort / reverse
/             search
enter         connection details
?             help
q             quit

snitch ls

one-shot table output. uses a pager automatically if output exceeds terminal height.

snitch ls               # styled table (default)
snitch ls -l            # listening only
snitch ls -t -l         # tcp listeners
snitch ls -e            # established only
snitch ls -p            # plain/parsable output
snitch ls -o json       # json output
snitch ls -o csv        # csv output
snitch ls -n            # numeric (no dns resolution)
snitch ls --no-headers  # omit headers

snitch json

json output for scripting.

snitch json
snitch json -l

snitch watch

stream json frames at an interval.

snitch watch -i 1s | jq '.count'
snitch watch -l -i 500ms

filters

shortcut flags work on all commands:

-t, --tcp           tcp only
-u, --udp           udp only
-l, --listen        listening sockets
-e, --established   established connections
-4, --ipv4          ipv4 only
-6, --ipv6          ipv6 only
-n, --numeric       no dns resolution

for more specific filtering, use key=value syntax with ls:

snitch ls proto=tcp state=listen
snitch ls pid=1234
snitch ls proc=nginx
snitch ls lport=443
snitch ls contains=google

output

styled table (default):

  ╭─────────────────┬───────┬───────┬─────────────┬─────────────────┬────────╮
  │ PROCESS         │ PID   │ PROTO │ STATE       │ LADDR           │ LPORT  │
  ├─────────────────┼───────┼───────┼─────────────┼─────────────────┼────────┤
  │ nginx           │ 1234  │ tcp   │ LISTEN      │ *               │ 80     │
  │ postgres        │ 5678  │ tcp   │ LISTEN      │ 127.0.0.1       │ 5432   │
  ╰─────────────────┴───────┴───────┴─────────────┴─────────────────┴────────╯
  2 connections

plain output (-p):

PROCESS    PID    PROTO   STATE    LADDR       LPORT
nginx      1234   tcp     LISTEN   *           80
postgres   5678   tcp     LISTEN   127.0.0.1   5432

configuration

optional config file at ~/.config/snitch/snitch.toml:

[defaults]
numeric = false
theme = "auto"

requirements

  • linux (reads from /proc/net/*)
  • root or CAP_NET_ADMIN for full process info
Description
Fork of karol-broda/snitch — friendlier ss/netstat (Go). Built on our CI.
Readme MIT 10 MiB
v0.2.2 Latest
2026-02-24 16:57:04 +00:00
Languages
Go 91%
Nix 7.9%
Shell 1%
Makefile 0.1%