DEV Community

aiXis
aiXis

Posted on

I open-sourced a network monitor — strangers on the internet shipped the Windows port

Two weeks ago I open-sourced Snitch, a privacy-first network traffic visualizer. Last week it hit 238 GitHub stars and got picked up by one of the largest tech newsletters in China.

This week the interesting thing happened: strangers started shipping the Windows port for me.

The bug reports that wrote the port

I never hid that Windows was a work in progress. Instead of complaints, I got two of the best bug reports I've ever read:

  • Issue #25 (MikeDGitHub): the packaged Windows app crashed instantly. He traced it to console=False in the PyInstaller spec leaving sys.stdout/sys.stderr as None — which kills Uvicorn on isatty(). He even included the fix:
if sys.stdout is None:
    sys.stdout = open(os.devnull, 'w', encoding='utf-8')
if sys.stderr is None:
    sys.stderr = open(os.devnull, 'w', encoding='utf-8')
Enter fullscreen mode Exit fullscreen mode
  • Issue #12 (yjrhot): the app works on Windows 11 but a black console flashes every ~30 seconds. Cause: the LAN scanner shells out to arp -a and route print -4 on a timer, and each spawn opens a visible console. Fix: CREATE_NO_WINDOW.

Both reporters were right. Both fixes are merged.

Then the code showed up

A third person, wufangyong373, didn't file issues — they read the good first issue list and submitted three PRs in a day: per-process icons in the app table, the remaining French translations, and a richer tracker-domain list. All merged. The French comments in their code were better than mine.

v1.0.5 — Windows is live

Snitch v1.0.5 is out:

  • 🪟 Windows supported: packaged backend tarball, runs as admin with Npcap
  • 🍎 macOS app rebuilt (still unsigned — Apple Developer cert is on the roadmap)
  • 🐧 Linux backend tarball + Docker as before
  • Process icons, richer tracker list, React 19, all deps bumped
  • The sniffer now picks the interface carrying the default route — no more vEthernet (WSL) reporting zero external hosts

What it still is

The pitch hasn't changed: every connection your computer makes, live, on a node graph and a world map. 347 distinct servers in one hour on my machine, ~17 companies, 158 Google IPs. 100% local, zero telemetry, AGPL-3.0, EN/FR UI.

brew install --cask aixisstudio/tap/snitch   # macOS
# or grab a tarball — https://github.com/aixisstudio/Snitch/releases/tag/v1.0.5
Enter fullscreen mode Exit fullscreen mode

The part nobody tells you about open source

The code is the easy part. The weird, wonderful part is strangers caring enough to debug your sys.stdout handling on an OS you don't even run.

If you're on Windows 11 with 15 spare minutes — issue #12 is looking for testers.

👉 https://github.com/aixisstudio/Snitch

Top comments (0)