
A single-file native Windows tray application (C, Win32, no runtime) that shows exactly which program is sending and receiving bytes and to which host.
A single-file native Windows tray application (C, Win32, no runtime) that shows exactly which program is sending and receiving bytes and to which host, keeps Windows connection auditing switched on, lets you or an AI agent kill a process or block a program on the spot, and streams everything over a localhost socket that only programs you have explicitly allowed can use.
1.2 adds the Inspector: zoom into one process and see its connections (state, RTT, retransmits, connect time),
its packets decoded on the wire (TLS SNI/ALPN, QUIC, DNS, HTTP), a process profile (CPU, memory, disk, GPU, user,
command line, signer) and a timeline (connects, failures, child processes, DLL loads), with pcapng export. All of it
comes from Windows' own kernel providers and ndiscap.sys; there is no driver to install.
1.3 makes the socket fit for many agents at once (the Sentinel design in SENTINEL.md): commands run on worker
threads, so a slow inspect from one client no longer stalls the others; up to four pcapng captures run at the same
time, one per process; conns pages through every flow and can filter to active flows or flows touched since a
timestamp; a watcher can ask for decoded handshakes only instead of every frame; a flowinfo event announces each
flow's SNI, ALPN, HTTP request or TLS version the moment it is decoded; each connection may watch 64 processes;
inspect reports the file's SHA-256 and caches signature checks.
Watch or download the 72-second demo · English captions
Actual Hodometer footage follows a controlled upload through process inspection, packet capture, and a verified firewall block. The Sentinel segment is a clearly labeled simulated AI investigation, with scores and dry-run behavior computed by the repository code. Personal details and unrelated processes are removed from the published video.
address:port that got the most bytes.
Local and LAN traffic is hidden by default (toggle button, or local on).host).history) and appended to
history.jsonl.auditpol /set /subcategory:"Filtering Platform Connection" /success:enable /failure:enable turns on). Off means it
turns it back on, logs it and tells connected agents. A button does it immediately.conn event with program path, destination, hostname and port.spike event, a line in
hodometer.log and a tray notification (at most one per 5 minutes).Double-click a row, press Inspect selected process, use the right-click menu, or send inspect <pid> show over the
socket. Up to eight Inspector windows can be open; each follows one pid.
capture_<name>_<pid>_<time>.pcapng next to the exe;
opens in Wireshark. Up to four captures (one per process, or one for every process) can run at once; the header shows
this process's capture and notes when others are running. Copy JSON puts the whole Inspector state on the clipboard
(the inspect reply). Kill and Block act on this process.How it works: frames come from Windows' own ndiscap.sys (the Microsoft-Windows-NDIS-PacketCapture provider behind
netsh trace) through a second ETW session, HodometerZoom, which runs only while an Inspector is open, a socket
client is watching, or a capture is running (plus a 30 s grace period). Frames carry no process id; Hodometer attributes
them by matching local and remote address and port against the connection table it builds from the kernel network
events. That is how it does per-process packets, which pktmon and Wireshark cannot. Names learned from SNI also fill the
main table's host column when DNS revealed nothing (browsers using DNS over HTTPS, for instance).