<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: aiXis</title>
    <description>The latest articles on DEV Community by aiXis (@aixis_studio).</description>
    <link>https://dev.to/aixis_studio</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4156791%2F7af25ebd-5afe-487d-a2dd-949cf662a846.jpeg</url>
      <title>DEV Community: aiXis</title>
      <link>https://dev.to/aixis_studio</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aixis_studio"/>
    <language>en</language>
    <item>
      <title>I built an open-source alternative to Little Snitch — local-first application firewall &amp; network monitor</title>
      <dc:creator>aiXis</dc:creator>
      <pubDate>Fri, 23 Oct 2026 06:45:49 +0000</pubDate>
      <link>https://dev.to/aixis_studio/i-built-an-open-source-alternative-to-little-snitch-local-first-application-firewall-network-367f</link>
      <guid>https://dev.to/aixis_studio/i-built-an-open-source-alternative-to-little-snitch-local-first-application-firewall-network-367f</guid>
      <description>&lt;p&gt;Every app on your machine is talking to someone. Most of them never asked your permission.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/aixisstudio/Snitch" rel="noopener noreferrer"&gt;Snitch&lt;/a&gt;&lt;/strong&gt; is a free, open-source (AGPL-3.0) &lt;strong&gt;application firewall and real-time network monitor&lt;/strong&gt; for Windows, macOS and Linux — think Little Snitch or LuLu, but cross-platform, scriptable, and 100% local. No account, no cloud, no telemetry.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F46tvjv4244m15ow2l59a.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F46tvjv4244m15ow2l59a.gif" alt="Snitch live map" width="760" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Sees everything&lt;/strong&gt;: live map of every outbound connection — remote host, country, ASN, and the exact process responsible&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Blocks what you don't trust&lt;/strong&gt;: per-process firewall rules via eBPF, NFQUEUE, nftables or Windows WFP — with ask-on-first-connect prompts&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Detects threats&lt;/strong&gt;: a built-in &lt;strong&gt;Sigma-compatible rule engine&lt;/strong&gt;, offline threat-intel feeds, DGA heuristics, ICMP-tunnel and beaconing detection&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stays private&lt;/strong&gt;: packet capture via libpcap/Npcap, enrichment (DNS, TLS SNI, GeoIP via local DB-IP) happens on-device. The API only listens on &lt;code&gt;127.0.0.1&lt;/code&gt; behind a token&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Speaks your language&lt;/strong&gt;: the UI ships in 8 languages — EN, FR, ES, DE, RU, JA, PT-BR, ZH-CN&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why not Scapy / why a custom parser?
&lt;/h2&gt;

&lt;p&gt;The capture engine uses &lt;code&gt;ctypes → libpcap&lt;/code&gt; with a small bounded IPv4/IPv6/TCP/UDP/DNS/TLS-SNI parser — no GPL-2.0-only dependencies, and every parse path is length-capped. &lt;code&gt;SNITCH_DEMO=1&lt;/code&gt; replays synthetic traffic through the real pipeline, so you can try it with &lt;strong&gt;zero root privileges&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fleet-ready (if you need it)
&lt;/h2&gt;

&lt;p&gt;Desktop app is the core, but Snitch also ships:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a &lt;strong&gt;lightweight Rust agent&lt;/strong&gt; for servers&lt;/li&gt;
&lt;li&gt;authenticated &lt;strong&gt;REST + WebSocket APIs&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SIEM export&lt;/strong&gt; (ECS / CEF / JSON / Syslog) — drops straight into Wazuh or Elastic&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Docker / Helm / Ansible / Salt / GPO&lt;/strong&gt; deployment, headless &amp;amp; CLI modes&lt;/li&gt;
&lt;li&gt;declarative &lt;code&gt;snitch.toml&lt;/code&gt; config&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# macOS&lt;/span&gt;
brew &lt;span class="nb"&gt;install &lt;/span&gt;aixisstudio/tap/snitch

&lt;span class="c"&gt;# Windows (Scoop — pending) or grab the installer from releases&lt;/span&gt;
&lt;span class="c"&gt;# Docker / Linux / Electron builds all on the repo&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;⭐ If it's useful, a star helps a lot — and feedback/issues are very welcome.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Repo:&lt;/strong&gt; &lt;a href="https://github.com/aixisstudio/Snitch" rel="noopener noreferrer"&gt;https://github.com/aixisstudio/Snitch&lt;/a&gt; — &lt;strong&gt;Site:&lt;/strong&gt; &lt;a href="https://aixisstudio.github.io/Snitch/" rel="noopener noreferrer"&gt;https://aixisstudio.github.io/Snitch/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>security</category>
      <category>showdev</category>
      <category>privacy</category>
    </item>
    <item>
      <title>I wanted to know who my computer was talking to — so I built it (and strangers shipped the Windows port)</title>
      <dc:creator>aiXis</dc:creator>
      <pubDate>Sun, 18 Oct 2026 20:56:59 +0000</pubDate>
      <link>https://dev.to/aixis_studio/i-wanted-to-know-who-my-computer-was-talking-to-so-i-built-it-and-strangers-shipped-the-windows-4488</link>
      <guid>https://dev.to/aixis_studio/i-wanted-to-know-who-my-computer-was-talking-to-so-i-built-it-and-strangers-shipped-the-windows-4488</guid>
      <description>&lt;p&gt;Three weeks ago I wanted to answer a stupidly simple question: &lt;strong&gt;who is my computer talking to?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not "can I capture packets" (Wireshark can, and it's a microscope when I wanted a windshield). Not "block connections" (Little Snitch does that on macOS, $59, and nothing equivalent exists on Windows). Just: a live, visual answer. Which app, which server, which country — right now.&lt;/p&gt;

&lt;p&gt;So I built &lt;a href="https://github.com/aixisstudio/Snitch" rel="noopener noreferrer"&gt;Snitch&lt;/a&gt;. Open source, AGPL, EN/FR UI, ~400 stars in three weeks. Here's what I learned — and the part where strangers wrote my Windows port for me.&lt;/p&gt;

&lt;h2&gt;
  
  
  The build
&lt;/h2&gt;

&lt;p&gt;The constraint I set myself: &lt;strong&gt;no heavy dependencies, no telemetry, ever.&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Capture: &lt;code&gt;ctypes → libpcap&lt;/code&gt; on macOS/Linux, Npcap on Windows. No Scapy — direct bindings are lighter and give exact field control.&lt;/li&gt;
&lt;li&gt;Parsing: hand-rolled IPv4/IPv6/TCP/UDP/DNS/TLS-SNI decoders. ~2K lines for the entire pipeline.&lt;/li&gt;
&lt;li&gt;Backend: FastAPI + WebSockets + a SQLite ring buffer (24h retention, then it deletes itself — privacy means &lt;em&gt;not&lt;/em&gt; hoarding either).&lt;/li&gt;
&lt;li&gt;Frontend: React + D3 force graph + TopoJSON world map.&lt;/li&gt;
&lt;li&gt;Geolocation: local MaxMind/DB-IP file. IPs never leave the machine.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Security posture as a feature: API on loopback only, token-authenticated, zero outbound calls unless the user explicitly consents to the GeoIP download. For a privacy tool, the code &lt;em&gt;is&lt;/em&gt; the promise — AGPL makes it auditable.&lt;/p&gt;

&lt;h2&gt;
  
  
  The thing I didn't plan
&lt;/h2&gt;

&lt;p&gt;I shipped macOS first and tagged the repo "help wanted" on Windows. Within days:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Users filed bug reports with &lt;strong&gt;root-cause analysis included&lt;/strong&gt; — not "it doesn't work", actual stack traces and the faulty capture path identified&lt;/li&gt;
&lt;li&gt;A stranger I'd never spoken to sent three PRs: Npcap capture, network interface selection, a startup crash&lt;/li&gt;
&lt;li&gt;Someone else opened the &lt;a href="https://github.com/microsoft/winget-pkgs/pull/455520" rel="noopener noreferrer"&gt;winget package PR&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;v1.0.5 shipped last week with the Windows port fully working. The most powerful distribution channel this project found wasn't a marketing trick — it was "put a real problem in public, and people who have the same problem show up".&lt;/p&gt;

&lt;h2&gt;
  
  
  What the traffic data said
&lt;/h2&gt;

&lt;p&gt;Fun meta-moment: Snitch's own referral traffic told the story. A Chinese tech newsletter (ruanyifeng.com) featured the project — suddenly ~20% of traffic was Chinese readers staring at an English README. So now there's a full &lt;a href="https://github.com/aixisstudio/Snitch/blob/main/README.zh-CN.md" rel="noopener noreferrer"&gt;中文 README&lt;/a&gt;. The data decides; I just listen.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'd tell anyone building dev tools
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Solve a felt problem.&lt;/strong&gt; "Who is my machine talking to" is visceral — everyone wonders, nobody can see it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local-first is a differentiator now.&lt;/strong&gt; "No account, no telemetry" isn't a limitation, it's the pitch.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bilingual/multi-language docs aren't charity&lt;/strong&gt; — they're distribution to audiences with zero competition.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Issues and Discussions convert.&lt;/strong&gt; Fast answers turned bug reporters into contributors. That's how my Windows port happened.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run &lt;span class="nt"&gt;--network&lt;/span&gt; host ghcr.io/aixisstudio/snitch   &lt;span class="c"&gt;# Linux&lt;/span&gt;
&lt;span class="c"&gt;# macOS/Windows: releases page — SNITCH_DEMO=1 runs it without admin&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Repo: &lt;a href="https://github.com/aixisstudio/Snitch" rel="noopener noreferrer"&gt;https://github.com/aixisstudio/Snitch&lt;/a&gt; — AGPL, bilingual EN/FR (+中文). The &lt;a href="https://github.com/aixisstudio/Snitch/discussions/39" rel="noopener noreferrer"&gt;"what did you catch?" thread&lt;/a&gt; is open, and a ⭐ genuinely helps if it earns it.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>privacy</category>
      <category>python</category>
      <category>discuss</category>
    </item>
    <item>
      <title>How to see every connection your computer makes (live map, 100% local)</title>
      <dc:creator>aiXis</dc:creator>
      <pubDate>Sun, 18 Oct 2026 20:56:38 +0000</pubDate>
      <link>https://dev.to/aixis_studio/how-to-see-every-connection-your-computer-makes-live-map-100-local-3l7h</link>
      <guid>https://dev.to/aixis_studio/how-to-see-every-connection-your-computer-makes-live-map-100-local-3l7h</guid>
      <description>&lt;p&gt;Your computer is talking to the internet right now. Probably dozens of connections — sync, telemetry, update checks, your open tabs, your apps' background chatter. The question "what is my machine actually doing?" sounds basic, but try answering it and you'll find the tooling is either microscopic (Wireshark) or paywalled.&lt;/p&gt;

&lt;p&gt;Here's a practical guide to actually seeing it — including the tool I built for it, &lt;a href="https://github.com/aixisstudio/Snitch" rel="noopener noreferrer"&gt;Snitch&lt;/a&gt; (open source, AGPL — disclosure, it's mine).&lt;/p&gt;

&lt;h2&gt;
  
  
  The 60-second version
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# macOS / Linux — classic but raw&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;tcpdump &lt;span class="nt"&gt;-i&lt;/span&gt; any &lt;span class="nt"&gt;-n&lt;/span&gt; | &lt;span class="nb"&gt;head&lt;/span&gt; &lt;span class="nt"&gt;-50&lt;/span&gt;        &lt;span class="c"&gt;# every packet, no context&lt;/span&gt;
netstat &lt;span class="nt"&gt;-anp&lt;/span&gt; tcp | &lt;span class="nb"&gt;grep &lt;/span&gt;ESTABLISHED      &lt;span class="c"&gt;# current connections only&lt;/span&gt;
lsof &lt;span class="nt"&gt;-i&lt;/span&gt; &lt;span class="nt"&gt;-nP&lt;/span&gt; | &lt;span class="nb"&gt;head&lt;/span&gt;                       &lt;span class="c"&gt;# process → socket mapping&lt;/span&gt;

&lt;span class="c"&gt;# Windows&lt;/span&gt;
netstat &lt;span class="nt"&gt;-ano&lt;/span&gt; | findstr ESTABLISHED
Get-NetTCPConnection &lt;span class="nt"&gt;-State&lt;/span&gt; Established  &lt;span class="c"&gt;# PowerShell&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These answer "what connections exist right now". They don't tell you which app, where the server is, or whether it's suspicious. That gap is exactly what a visualizer fills.&lt;/p&gt;

&lt;h2&gt;
  
  
  The visualization approach
&lt;/h2&gt;

&lt;p&gt;Snitch renders every connection as a live graph + world map:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Node = your machine&lt;/strong&gt; at the center, lines to every remote endpoint&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Each endpoint labeled&lt;/strong&gt;: hostname (via reverse DNS + TLS SNI), geolocated country/city — all offline, from a local MaxMind/DB-IP database&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Per-app attribution&lt;/strong&gt;: the connection is drawn to the &lt;em&gt;process&lt;/em&gt; that opened it&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Timeline&lt;/strong&gt;: 15/30/60-min traffic volume, 24h of history in a local SQLite file&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What makes it different from tcpdump: the data is &lt;em&gt;already processed&lt;/em&gt;. Not "packet to 142.250.74.78" — "Chrome → google.com → Frankfurt".&lt;/p&gt;

&lt;h2&gt;
  
  
  Reading the map: normal vs suspicious
&lt;/h2&gt;

&lt;p&gt;What a normal map looks like: spokes to Apple/Google/Microsoft/your browser tabs' CDNs, your router, other LAN devices.&lt;/p&gt;

&lt;p&gt;What stands out:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Beaconing&lt;/strong&gt; — a connection that fires at regular intervals (Snitch flags these; it's a classic C2 pattern)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Long-lived uploads to unfamiliar endpoints&lt;/strong&gt; — data leaving steadily to somewhere you don't recognize&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Port scans&lt;/strong&gt; — a LAN host touching many ports on your machine gets flagged&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Apps talking to countries that make no sense&lt;/strong&gt; for what the app does&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trackers&lt;/strong&gt; — Snitch cross-references hostnames against editable tracker suffix lists and factors them into a privacy score&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The built-in &lt;strong&gt;anomaly detection&lt;/strong&gt; watches for all of these automatically, and you can suppress alerts per-rule once you've vetted a pattern.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install it (2 minutes)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# macOS: download the app from releases, or brew&lt;/span&gt;
&lt;span class="c"&gt;# Windows: install Npcap → run snitch-backend.exe as Admin&lt;/span&gt;
&lt;span class="c"&gt;# Linux / Docker:&lt;/span&gt;
docker run &lt;span class="nt"&gt;--network&lt;/span&gt; host ghcr.io/aixisstudio/snitch

&lt;span class="c"&gt;# No admin rights? Demo mode shows the full UI with synthetic traffic:&lt;/span&gt;
&lt;span class="nv"&gt;SNITCH_DEMO&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1 snitch-backend
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Everything stays local — token-authenticated API bound to loopback, zero telemetry, no account. That's not a marketing line; it's an AGPL codebase, you can verify the network code path yourself.&lt;/p&gt;

&lt;h2&gt;
  
  
  Then what?
&lt;/h2&gt;

&lt;p&gt;Once you can &lt;em&gt;see&lt;/em&gt; the traffic, the interesting part starts — the community's favorite pastime is the &lt;a href="https://github.com/aixisstudio/Snitch/discussions/39" rel="noopener noreferrer"&gt;"What did you catch?" thread&lt;/a&gt;: printers talking to cloud servers at 3am, TV telemetry, the works.&lt;/p&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/aixisstudio/Snitch" rel="noopener noreferrer"&gt;https://github.com/aixisstudio/Snitch&lt;/a&gt; — ⭐ if it answers the question it set out to answer.&lt;/p&gt;

</description>
      <category>privacy</category>
      <category>networking</category>
      <category>tutorial</category>
      <category>opensource</category>
    </item>
    <item>
      <title>A free, open-source GlassWire alternative — no account, no telemetry, no paywall</title>
      <dc:creator>aiXis</dc:creator>
      <pubDate>Sun, 18 Oct 2026 20:56:18 +0000</pubDate>
      <link>https://dev.to/aixis_studio/a-free-open-source-glasswire-alternative-no-account-no-telemetry-no-paywall-50gc</link>
      <guid>https://dev.to/aixis_studio/a-free-open-source-glasswire-alternative-no-account-no-telemetry-no-paywall-50gc</guid>
      <description>&lt;p&gt;If you've searched for a network monitor on Windows, you've hit GlassWire. It's polished, it looks great — and then the paywalls start showing up: history behind a subscription, firewall features behind tiers, an account that keeps being suggested, cloud "elite" sync.&lt;/p&gt;

&lt;p&gt;There's nothing wrong with paying for software. But "show me what my computer connects to" is basic hygiene — it arguably shouldn't be gated at all. I'm the author of &lt;a href="https://github.com/aixisstudio/Snitch" rel="noopener noreferrer"&gt;Snitch&lt;/a&gt;, a free, open-source (AGPL) alternative, so let me give you the honest comparison instead of a sales pitch.&lt;/p&gt;

&lt;h2&gt;
  
  
  Snitch vs GlassWire, feature by feature
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Snitch&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;GlassWire&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Price&lt;/td&gt;
&lt;td&gt;Free, forever&lt;/td&gt;
&lt;td&gt;Freemium — key features paywalled&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;License&lt;/td&gt;
&lt;td&gt;AGPL open source&lt;/td&gt;
&lt;td&gt;Proprietary&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Account&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;None — ever&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Account/cloud tier promoted&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Telemetry&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Zero outbound calls&lt;/strong&gt; (GeoIP download is opt-in)&lt;/td&gt;
&lt;td&gt;Phone-home for sync/features&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data location&lt;/td&gt;
&lt;td&gt;Local SQLite, yours&lt;/td&gt;
&lt;td&gt;Cloud-linked features exist&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Live world map of connections&lt;/td&gt;
&lt;td&gt;✅ geolocated offline&lt;/td&gt;
&lt;td&gt;✅ (paid tiers)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Per-app traffic &amp;amp; bandwidth&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅ (partially free)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;History&lt;/td&gt;
&lt;td&gt;24h free (SQLite ring buffer)&lt;/td&gt;
&lt;td&gt;Limited on free tier&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Anomaly alerts (port scans, beaconing, exfil)&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅ (mostly paid)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LAN device scan&lt;/td&gt;
&lt;td&gt;✅ passive, via ARP&lt;/td&gt;
&lt;td&gt;✅ (paid)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Firewall / blocking&lt;/td&gt;
&lt;td&gt;❌ visualizer only&lt;/td&gt;
&lt;td&gt;✅ (this is GlassWire's real strength)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Platforms&lt;/td&gt;
&lt;td&gt;macOS, Windows, Linux&lt;/td&gt;
&lt;td&gt;Windows, Android&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Privacy score / tracker detection&lt;/td&gt;
&lt;td&gt;✅ editable lists&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Where GlassWire still wins
&lt;/h2&gt;

&lt;p&gt;Being fair:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Blocking.&lt;/strong&gt; GlassWire has a real application firewall. Snitch deliberately doesn't block — it shows you, it doesn't decide. If "deny this app" is your core need, GlassWire (or free Portmaster) is the right tool.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Polish.&lt;/strong&gt; GlassWire's had a decade of UI work. Snitch is 3 weeks old — the graph is great, the settings are functional, expect edges.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Long history retention&lt;/strong&gt; — Snitch keeps 24h by design (privacy-first means &lt;em&gt;not&lt;/em&gt; hoarding your traffic either).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The architecture difference that matters
&lt;/h2&gt;

&lt;p&gt;GlassWire's model is the industry's: free tier → annoyance → subscription → cloud features. Snitch's model is the opposite: the binary you run is the whole product. Nothing to unlock because nothing is locked. Your traffic history lives in a local SQLite file — and the code is AGPL, so it can't quietly start phoning home without the diff being public.&lt;/p&gt;

&lt;p&gt;Concretely: API on loopback with token auth, zero telemetry endpoints, no analytics SDK anywhere in the code (you can grep it — it's open source).&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Windows: install Npcap, then run the release exe as Administrator&lt;/span&gt;
&lt;span class="c"&gt;# Linux/Docker:&lt;/span&gt;
docker run &lt;span class="nt"&gt;--network&lt;/span&gt; host ghcr.io/aixisstudio/Snitch
&lt;span class="c"&gt;# macOS: packaged app or brew&lt;/span&gt;
&lt;span class="c"&gt;# Demo mode without admin: SNITCH_DEMO=1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Repo: &lt;a href="https://github.com/aixisstudio/Snitch" rel="noopener noreferrer"&gt;https://github.com/aixisstudio/Snitch&lt;/a&gt; — issues and feature requests welcome, the Windows port itself was community-contributed. If it replaces a subscription you didn't want, that's the point. ⭐ if it does.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>privacy</category>
      <category>security</category>
      <category>windows</category>
    </item>
    <item>
      <title>A free, open-source Little Snitch alternative for Linux</title>
      <dc:creator>aiXis</dc:creator>
      <pubDate>Sun, 18 Oct 2026 20:55:57 +0000</pubDate>
      <link>https://dev.to/aixis_studio/a-free-open-source-little-snitch-alternative-for-linux-25l7</link>
      <guid>https://dev.to/aixis_studio/a-free-open-source-little-snitch-alternative-for-linux-25l7</guid>
      <description>&lt;p&gt;Your computer talks to hundreds of servers a day. On Linux the classic answers are &lt;code&gt;tcpdump&lt;/code&gt;, &lt;code&gt;ss&lt;/code&gt;, &lt;code&gt;netstat&lt;/code&gt;, or Wireshark — powerful, but they answer "show me packets", not "who is my machine talking to, and should I worry?".&lt;/p&gt;

&lt;p&gt;I built &lt;a href="https://github.com/aixisstudio/Snitch" rel="noopener noreferrer"&gt;Snitch&lt;/a&gt; for that second question — an open-source (AGPL) real-time network visualizer, and it's fully supported on Linux via Docker or the release binary. Full disclosure: I'm the author, so here's an honest rundown of what exists and where Snitch fits.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Linux landscape
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;th&gt;What it doesn't&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;tcpdump / ss / netstat&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Raw connection data&lt;/td&gt;
&lt;td&gt;No UI, no history, no geolocation, no app mapping&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Wireshark&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Deep packet dissection&lt;/td&gt;
&lt;td&gt;Overkill for "who's phoning home" — it's a microscope, not a dashboard&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;OpenSnitch&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Application firewall (block/allow prompts)&lt;/td&gt;
&lt;td&gt;Minimal visualization — it's block-first, and it's Linux-only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;iftop / nethogs / nload&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Per-interface or per-process bandwidth&lt;/td&gt;
&lt;td&gt;No world map, no anomaly detection, no persistence&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Snitch&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Live map of every connection: app → server → country, anomaly detection, 24h history&lt;/td&gt;
&lt;td&gt;Doesn't block (by design — it's a visualizer)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;OpenSnitch and Snitch are complementary, not competitors: OpenSnitch decides &lt;em&gt;whether&lt;/em&gt; a connection is allowed, Snitch shows you &lt;em&gt;what&lt;/em&gt; your machine is doing.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Snitch gives you on Linux
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live world map&lt;/strong&gt; of every outbound connection, with process attribution — which app opened it, not just which IP&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offline geolocation&lt;/strong&gt; via a local MaxMind/DB-IP database — your IPs never leave the machine&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anomaly detection&lt;/strong&gt;: port scans on your LAN, beaconing (regular-interval callbacks, a classic C2 pattern), unusual outbound volume&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy score&lt;/strong&gt; + tracker detection from editable suffix lists&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Per-app bandwidth&lt;/strong&gt;, timeline, 24h SQLite retention, alert suppression rules&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Passive LAN scan&lt;/strong&gt; via the system ARP table — every device on your network, no packets injected&lt;/li&gt;
&lt;li&gt;Bilingual EN/FR UI (中文 README too)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The privacy part
&lt;/h2&gt;

&lt;p&gt;This is the part Linux users tend to verify first, so: the API binds to &lt;strong&gt;127.0.0.1&lt;/strong&gt; and requires a token. There is &lt;strong&gt;no telemetry, no account, no outbound call at all&lt;/strong&gt; except an explicitly consent-gated GeoIP database download. Traffic data lives in a local SQLite file you own.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Docker (host networking needed for packet capture)&lt;/span&gt;
docker run &lt;span class="nt"&gt;--network&lt;/span&gt; host ghcr.io/aixisstudio/snitch

&lt;span class="c"&gt;# or the release tarball — needs root/cap_net_raw like tcpdump&lt;/span&gt;
&lt;span class="nb"&gt;sudo&lt;/span&gt; ./snitch-backend
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then open the printed URL. There's also a demo mode (&lt;code&gt;SNITCH_DEMO=1&lt;/code&gt;) that feeds synthetic traffic through the real pipeline if you want to look before granting capture rights.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's under the hood (for the curious)
&lt;/h2&gt;

&lt;p&gt;Pure Python + ctypes → libpcap for capture — no Scapy dependency. The IPv4/IPv6/TCP/UDP/DNS/TLS-SNI parsing is hand-rolled, ~2K lines for the whole pipeline. FastAPI + WebSocket backend, React + D3 frontend, Electron shell on desktops.&lt;/p&gt;

&lt;p&gt;If you want a "does my machine talk to weird places at 3am" answer on Linux without paying for a firewall or running a packet capture all day — that's exactly what this is for. ⭐ on &lt;a href="https://github.com/aixisstudio/Snitch" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; if it earns it, and the repo's Discussions has a "what did you catch?" thread I'd love to see your screenshots in.&lt;/p&gt;

</description>
      <category>linux</category>
      <category>opensource</category>
      <category>privacy</category>
      <category>networking</category>
    </item>
    <item>
      <title>A free, open-source Little Snitch alternative for Windows (yes, it exists)</title>
      <dc:creator>aiXis</dc:creator>
      <pubDate>Sun, 18 Oct 2026 20:53:04 +0000</pubDate>
      <link>https://dev.to/aixis_studio/a-free-open-source-little-snitch-alternative-for-windows-yes-it-exists-3n6e</link>
      <guid>https://dev.to/aixis_studio/a-free-open-source-little-snitch-alternative-for-windows-yes-it-exists-3n6e</guid>
      <description>&lt;p&gt;Your computer talks to hundreds of servers every day. Most of it is fine — updates, sync, telemetry you signed up for. Some of it isn't. The question "who is my machine actually talking to?" is the reason Little Snitch has been a macOS staple for 15 years.&lt;/p&gt;

&lt;p&gt;The problem: &lt;strong&gt;Little Snitch doesn't exist on Windows or Linux.&lt;/strong&gt; And most Windows "alternatives" are either paid, account-required, or firewall-first when all you wanted was visibility.&lt;/p&gt;

&lt;p&gt;I'm the author of &lt;a href="https://github.com/aixisstudio/Snitch" rel="noopener noreferrer"&gt;Snitch&lt;/a&gt;, an open-source (AGPL) real-time network visualizer that just shipped its Windows port — so, full disclosure upfront. Here's the honest state of the options.&lt;/p&gt;

&lt;h2&gt;
  
  
  First: visualizer vs blocker
&lt;/h2&gt;

&lt;p&gt;Worth being precise, because people conflate them:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Visibility&lt;/strong&gt; = "show me who my machine talks to" (a map, per-app attribution, history)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Blocking&lt;/strong&gt; = "let me decide what's allowed" (firewall rules, prompts)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Little Snitch does both. Some alternatives do one or the other. Know which job you need.&lt;/p&gt;

&lt;h2&gt;
  
  
  The honest comparison
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;OS&lt;/th&gt;
&lt;th&gt;Block?&lt;/th&gt;
&lt;th&gt;Free?&lt;/th&gt;
&lt;th&gt;Account required?&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Little Snitch&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;macOS&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;paid (~$59)&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;The reference. Nothing like it off macOS.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Snitch&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;macOS, Windows, Linux&lt;/td&gt;
&lt;td&gt;❌ visualize only&lt;/td&gt;
&lt;td&gt;✅ AGPL&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;Live world map of every connection, anomaly detection, privacy score. 100% local, zero telemetry.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Portmaster&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Win, Linux, macOS&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅ core free&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;DNS-level blocking + app rules. Heavier — runs as a system service.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;OpenSnitch&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Linux&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅ GPL&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;The closest Linux equivalent — application firewall with prompts.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;GlassWire&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Windows, Android&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;freemium&lt;/td&gt;
&lt;td&gt;pushes account/cloud&lt;/td&gt;
&lt;td&gt;Polished UI, but key features + history are paywalled and it nags about the cloud tier.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Wireshark&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;all&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;The gold standard for &lt;em&gt;deep&lt;/em&gt; packet analysis — but it's for dissecting packets, not answering "who's phoning home right now".&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;LuLu&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;macOS&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;Great free macOS firewall — but macOS only, and block-first with minimal visualization.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  What Snitch actually does
&lt;/h2&gt;

&lt;p&gt;One sentence: &lt;strong&gt;a live map of every connection your computer makes — which app, which server, which country.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Force-graph + world map of connections in real time, geolocated offline (MaxMind/DB-IP — no IP leaves your machine)&lt;/li&gt;
&lt;li&gt;Process attribution: which &lt;em&gt;app&lt;/em&gt; opened the connection, not just the IP&lt;/li&gt;
&lt;li&gt;Anomaly detection: port scans, beaconing patterns, potential exfiltration volume&lt;/li&gt;
&lt;li&gt;Privacy score + tracker detection from editable suffix lists&lt;/li&gt;
&lt;li&gt;Per-app traffic view, timeline (15/30/60 min), 24h SQLite history&lt;/li&gt;
&lt;li&gt;Passive LAN scanner (reads the ARP table — shows every device on your network)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The part that matters to privacy people: &lt;strong&gt;everything is local.&lt;/strong&gt; No account, no telemetry, no outbound calls at all unless you explicitly opt into downloading the GeoIP database. The API is token-authenticated and bound to loopback by default.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Snitch does NOT do
&lt;/h2&gt;

&lt;p&gt;Honesty section, because HN/Reddit will ask anyway:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;It doesn't block.&lt;/strong&gt; It's a visualizer — it shows you, it doesn't decide for you. If you want blocking on Windows, pair it with Portmaster or use your firewall rules based on what Snitch reveals.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It needs admin/root&lt;/strong&gt; for packet capture (unavoidable — same as Wireshark).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Windows has no tray app yet&lt;/strong&gt; — it's a backend exe + the UI in your browser. Works, but less polished than the macOS app.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deep packet dissection&lt;/strong&gt; — for that, Wireshark still wins. Snitch is the 10,000-foot view.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Installing on Windows
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Install &lt;a href="https://npcap.com" rel="noopener noreferrer"&gt;Npcap&lt;/a&gt; (the Windows packet-capture driver — required, same dependency as Wireshark)&lt;/li&gt;
&lt;li&gt;Grab &lt;code&gt;snitch-backend-windows.zip&lt;/code&gt; from the &lt;a href="https://github.com/aixisstudio/Snitch/releases" rel="noopener noreferrer"&gt;latest release&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;snitch-backend.exe&lt;/code&gt; as Administrator&lt;/li&gt;
&lt;li&gt;Open the URL it prints — the UI runs in your browser&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Linux: &lt;code&gt;docker run --network host ghcr.io/aixisstudio/snitch&lt;/code&gt; — or the release tarball. macOS: the packaged app or &lt;code&gt;brew&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  A note on how the Windows port happened
&lt;/h2&gt;

&lt;p&gt;I maintain the project solo. The Windows port wasn't me — users filed bug reports with root-cause analysis included, then a stranger sent three PRs that fixed capture + the right network interface + the startup crash. Open source working as advertised. v1.0.5 shipped last week.&lt;/p&gt;

&lt;p&gt;If you try it and it catches something interesting, there's a &lt;a href="https://github.com/aixisstudio/Snitch/discussions/39" rel="noopener noreferrer"&gt;"What did you catch?" discussion&lt;/a&gt; on the repo. And if it's useful to you, a ⭐ on &lt;a href="https://github.com/aixisstudio/Snitch" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; genuinely helps the project get found.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Repo:&lt;/strong&gt; &lt;a href="https://github.com/aixisstudio/Snitch" rel="noopener noreferrer"&gt;https://github.com/aixisstudio/Snitch&lt;/a&gt; — AGPL, EN/FR UI, 中文 README.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>privacy</category>
      <category>windows</category>
      <category>networking</category>
    </item>
    <item>
      <title>I open-sourced a network monitor — strangers on the internet shipped the Windows port</title>
      <dc:creator>aiXis</dc:creator>
      <pubDate>Sat, 17 Oct 2026 10:28:24 +0000</pubDate>
      <link>https://dev.to/aixis_studio/i-open-sourced-a-network-monitor-strangers-on-the-internet-shipped-the-windows-port-59b0</link>
      <guid>https://dev.to/aixis_studio/i-open-sourced-a-network-monitor-strangers-on-the-internet-shipped-the-windows-port-59b0</guid>
      <description>&lt;p&gt;Two weeks ago I open-sourced &lt;strong&gt;Snitch&lt;/strong&gt;, 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.&lt;/p&gt;

&lt;p&gt;This week the interesting thing happened: &lt;strong&gt;strangers started shipping the Windows port for me.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The bug reports that wrote the port
&lt;/h2&gt;

&lt;p&gt;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:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Issue #25&lt;/strong&gt; (MikeDGitHub): the packaged Windows app crashed instantly. He traced it to &lt;code&gt;console=False&lt;/code&gt; in the PyInstaller spec leaving &lt;code&gt;sys.stdout&lt;/code&gt;/&lt;code&gt;sys.stderr&lt;/code&gt; as &lt;code&gt;None&lt;/code&gt; — which kills Uvicorn on &lt;code&gt;isatty()&lt;/code&gt;. He even included the fix:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stdout&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stdout&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;devnull&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;w&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;encoding&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;utf-8&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stderr&lt;/span&gt; &lt;span class="ow"&gt;is&lt;/span&gt; &lt;span class="bp"&gt;None&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stderr&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;devnull&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;w&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;encoding&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;utf-8&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Issue #12&lt;/strong&gt; (yjrhot): the app works on Windows 11 but a black console flashes every ~30 seconds. Cause: the LAN scanner shells out to &lt;code&gt;arp -a&lt;/code&gt; and &lt;code&gt;route print -4&lt;/code&gt; on a timer, and each spawn opens a visible console. Fix: &lt;code&gt;CREATE_NO_WINDOW&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both reporters were right. Both fixes are merged.&lt;/p&gt;

&lt;h2&gt;
  
  
  Then the code showed up
&lt;/h2&gt;

&lt;p&gt;A third person, &lt;code&gt;wufangyong373&lt;/code&gt;, didn't file issues — they read the &lt;code&gt;good first issue&lt;/code&gt; 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.&lt;/p&gt;

&lt;h2&gt;
  
  
  v1.0.5 — Windows is live
&lt;/h2&gt;

&lt;p&gt;Snitch v1.0.5 is out:&lt;/p&gt;

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

&lt;h2&gt;
  
  
  What it still is
&lt;/h2&gt;

&lt;p&gt;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.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--cask&lt;/span&gt; aixisstudio/tap/snitch   &lt;span class="c"&gt;# macOS&lt;/span&gt;
&lt;span class="c"&gt;# or grab a tarball — https://github.com/aixisstudio/Snitch/releases/tag/v1.0.5&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The part nobody tells you about open source
&lt;/h2&gt;

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

&lt;p&gt;If you're on Windows 11 with 15 spare minutes — issue #12 is looking for testers.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://github.com/aixisstudio/Snitch" rel="noopener noreferrer"&gt;https://github.com/aixisstudio/Snitch&lt;/a&gt;&lt;/p&gt;

</description>
      <category>buildinpublic</category>
      <category>github</category>
      <category>opensource</category>
      <category>python</category>
    </item>
    <item>
      <title>Every app on your Mac is talking to the internet - I built a map of it (zero telemetry)</title>
      <dc:creator>aiXis</dc:creator>
      <pubDate>Mon, 05 Oct 2026 10:06:16 +0000</pubDate>
      <link>https://dev.to/aixis_studio/every-app-on-your-mac-is-talking-to-the-internet-i-built-a-map-of-it-zero-telemetry-1h2f</link>
      <guid>https://dev.to/aixis_studio/every-app-on-your-mac-is-talking-to-the-internet-i-built-a-map-of-it-zero-telemetry-1h2f</guid>
      <description>&lt;p&gt;Your Mac makes hundreds of outbound connections every hour — updaters, analytics SDKs, crash reporters, CDNs. None of it is visible unless you go looking. &lt;code&gt;lsof -i&lt;/code&gt; gives you a wall of IPs. Little Snitch gives you prompts, a firewall, and a €59 price tag.&lt;/p&gt;

&lt;p&gt;We wanted something in between: &lt;strong&gt;see everything, block nothing, send nothing&lt;/strong&gt;. So we built &lt;strong&gt;Snitch&lt;/strong&gt; — an open-source, local-first network traffic visualizer for macOS.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F46tvjv4244m15ow2l59a.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F46tvjv4244m15ow2l59a.gif" alt="Snitch live map and graph" width="760" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live graph&lt;/strong&gt; of every outbound connection, grouped by process&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;World map&lt;/strong&gt; plotting destination IPs — resolved from a bundled GeoIP database, fully offline&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Per-app breakdown&lt;/strong&gt;: bytes in/out, destinations, first-seen vs recurring&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anomaly alerts&lt;/strong&gt; when a process reaches a destination it has never touched before&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Demo mode&lt;/strong&gt; — explore the full UI with synthetic data, no root required&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The part we're most proud of: the privacy model
&lt;/h2&gt;

&lt;p&gt;A network monitor that phones home would be a joke, so we designed around it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The API binds to &lt;code&gt;127.0.0.1&lt;/code&gt; only. Nothing listens on a routable interface.&lt;/li&gt;
&lt;li&gt;Every endpoint — REST and WebSocket — requires a random token generated per install.&lt;/li&gt;
&lt;li&gt;GeoIP lookup happens against a bundled database. No destination IP ever leaves the machine.&lt;/li&gt;
&lt;li&gt;No analytics, no crash reporters, no update pings. Snitch makes zero outbound connections itself.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you watch Snitch with Snitch, you see silence. That's the demo we care about.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;p&gt;The backend is Python + FastAPI. Per-process attribution comes from polling &lt;code&gt;nettop&lt;/code&gt;/&lt;code&gt;lsof&lt;/code&gt; rather than a kernel extension — that keeps the app usable without SIP gymnastics and makes the unsigned build tolerable. Connections stream to the React frontend over a token-authenticated WebSocket, rendered as a force-directed graph plus an SVG world map.&lt;/p&gt;

&lt;p&gt;The honest trade-off: polling instead of a Network Extension means Snitch &lt;strong&gt;visualizes but doesn't block&lt;/strong&gt;. If you want per-app blocking, pair it with LuLu — they complement each other well.&lt;/p&gt;

&lt;h2&gt;
  
  
  Current state
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;macOS build is unsigned for now — right-click → Open, or build from source in ~2 minutes&lt;/li&gt;
&lt;li&gt;Windows/Linux builds are on the roadmap (the backend already runs cross-platform)&lt;/li&gt;
&lt;li&gt;4 &lt;code&gt;good first issue&lt;/code&gt; tickets open if you want to contribute&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Links&lt;/strong&gt;: &lt;a href="https://github.com/aixisstudio/Snitch" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; · &lt;a href="https://github.com/aixisstudio/Snitch/releases" rel="noopener noreferrer"&gt;Releases&lt;/a&gt; · &lt;a href="https://github.com/aixisstudio/Snitch/wiki" rel="noopener noreferrer"&gt;Wiki&lt;/a&gt; · &lt;a href="https://www.reddit.com/r/SnitchApp/" rel="noopener noreferrer"&gt;r/SnitchApp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: we're aiXis Studio, the studio behind Snitch. The project is AGPL-3.0 and free forever. French version of the docs included — la doc est bilingue.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If it helps you see what your machine is up to, a star on the repo means a lot — and feedback means even more.&lt;br&gt;
Who is your computer talking to right now?&lt;/p&gt;

&lt;p&gt;Not a rhetorical question. While you read this, your machine is probably holding dozens of open connections — sync services, CDNs, telemetry endpoints, ads, things you installed three years ago and forgot about. I wanted to &lt;em&gt;see&lt;/em&gt; them. Not in a terminal dump, but as a living picture.&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;Snitch&lt;/strong&gt;: a free, open-source, 100% local network traffic visualizer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F46tvjv4244m15ow2l59a.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F46tvjv4244m15ow2l59a.gif" alt="Snitch live graph demo" width="760" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;p&gt;Snitch captures outbound traffic in real time and renders it as an animated node graph plus a world map:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live node graph&lt;/strong&gt; — every remote host your machine touches, glowing and moving&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;World map&lt;/strong&gt; — geolocation of every endpoint, fully &lt;strong&gt;offline&lt;/strong&gt; (MaxMind GeoLite2, no API calls)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Per-process attribution&lt;/strong&gt; — not just "some connection to 142.250.x.x" but &lt;em&gt;which app&lt;/em&gt; opened it&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anomaly detection&lt;/strong&gt; — port scans, beaconing patterns, suspicious exfiltration volumes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy score&lt;/strong&gt; — a live rating of how chatty your system is, broken down by trackers/CDNs/normal traffic&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bilingual UI&lt;/strong&gt; — English and French, switchable at runtime&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why another tool?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Little Snitch / Lulu&lt;/strong&gt; — macOS-only (Lulu is free, Little Snitch is paid), firewall-centric&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GlassWire&lt;/strong&gt; — Windows-centric, freemium, phones home&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Wireshark&lt;/strong&gt; — the gold standard, but it's a protocol analyzer, not a dashboard; way too heavy to leave running&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Snitch sits in the gap: an always-on, glanceable, &lt;em&gt;local-first&lt;/em&gt; monitor. The capture is passive (libpcap), the analysis happens on your machine, and nothing — literally nothing — leaves your computer. The API binds to &lt;code&gt;127.0.0.1&lt;/code&gt; with a bearer token, and there are zero outbound requests by design. It's in the threat model, not just the marketing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Some engineering choices
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Own packet parser instead of Scapy&lt;/strong&gt; — Scapy is GPL-incompatible with the license I wanted, so I wrote a minimal L2/L3/L4 decoder. Less code than integrating it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offline GeoIP&lt;/strong&gt; — a bundled database beats a "free API" that dies in two years and leaks your traffic metadata to a third party.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Electron + React + FastAPI&lt;/strong&gt; — desktop app, but the backend runs standalone too (&lt;code&gt;uvicorn&lt;/code&gt; + any browser).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Demo mode&lt;/strong&gt; — &lt;code&gt;SNITCH_DEMO=1&lt;/code&gt; injects synthetic traffic through the real pipeline so you can try it without root/pcap.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/aixisstudio/Snitch
&lt;span class="c"&gt;# or one-click install via Pinokio, or Docker, or the Electron builds&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Repo: &lt;a href="https://github.com/aixisstudio/Snitch" rel="noopener noreferrer"&gt;https://github.com/aixisstudio/Snitch&lt;/a&gt; — AGPL-3.0. Stars, issues, and PRs welcome. There are a few &lt;code&gt;good first issue&lt;/code&gt; tickets open if you want to get involved.&lt;/p&gt;

&lt;p&gt;Curious what you'd find on your own machine. Honest feedback welcome — especially on the anomaly heuristics.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>privacy</category>
      <category>showdev</category>
      <category>security</category>
    </item>
    <item>
      <title>I built a local-first Little Snitch alternative that shows every connection your computer makes</title>
      <dc:creator>aiXis</dc:creator>
      <pubDate>Fri, 02 Oct 2026 08:17:34 +0000</pubDate>
      <link>https://dev.to/aixis_studio/i-built-a-local-first-little-snitch-alternative-that-shows-every-connection-your-computer-makes-3f6a</link>
      <guid>https://dev.to/aixis_studio/i-built-a-local-first-little-snitch-alternative-that-shows-every-connection-your-computer-makes-3f6a</guid>
      <description>&lt;p&gt;Who is your computer talking to right now?&lt;/p&gt;

&lt;p&gt;Not a rhetorical question. While you read this, your machine is probably holding dozens of open connections — sync services, CDNs, telemetry endpoints, ads, things you installed three years ago and forgot about. I wanted to &lt;em&gt;see&lt;/em&gt; them. Not in a terminal dump, but as a living picture.&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;Snitch&lt;/strong&gt;: a free, open-source, 100% local network traffic visualizer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F46tvjv4244m15ow2l59a.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F46tvjv4244m15ow2l59a.gif" alt="Snitch live graph demo" width="760" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;p&gt;Snitch captures outbound traffic in real time and renders it as an animated node graph plus a world map:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live node graph&lt;/strong&gt; — every remote host your machine touches, glowing and moving&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;World map&lt;/strong&gt; — geolocation of every endpoint, fully &lt;strong&gt;offline&lt;/strong&gt; (MaxMind GeoLite2, no API calls)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Per-process attribution&lt;/strong&gt; — not just "some connection to 142.250.x.x" but &lt;em&gt;which app&lt;/em&gt; opened it&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anomaly detection&lt;/strong&gt; — port scans, beaconing patterns, suspicious exfiltration volumes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy score&lt;/strong&gt; — a live rating of how chatty your system is, broken down by trackers/CDNs/normal traffic&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bilingual UI&lt;/strong&gt; — English and French, switchable at runtime&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why another tool?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Little Snitch / Lulu&lt;/strong&gt; — macOS-only (Lulu is free, Little Snitch is paid), firewall-centric&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GlassWire&lt;/strong&gt; — Windows-centric, freemium, phones home&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Wireshark&lt;/strong&gt; — the gold standard, but it's a protocol analyzer, not a dashboard; way too heavy to leave running&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Snitch sits in the gap: an always-on, glanceable, &lt;em&gt;local-first&lt;/em&gt; monitor. The capture is passive (libpcap), the analysis happens on your machine, and nothing — literally nothing — leaves your computer. The API binds to &lt;code&gt;127.0.0.1&lt;/code&gt; with a bearer token, and there are zero outbound requests by design. It's in the threat model, not just the marketing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Some engineering choices
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Own packet parser instead of Scapy&lt;/strong&gt; — Scapy is GPL-incompatible with the license I wanted, so I wrote a minimal L2/L3/L4 decoder. Less code than integrating it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offline GeoIP&lt;/strong&gt; — a bundled database beats a "free API" that dies in two years and leaks your traffic metadata to a third party.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Electron + React + FastAPI&lt;/strong&gt; — desktop app, but the backend runs standalone too (&lt;code&gt;uvicorn&lt;/code&gt; + any browser).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Demo mode&lt;/strong&gt; — &lt;code&gt;SNITCH_DEMO=1&lt;/code&gt; injects synthetic traffic through the real pipeline so you can try it without root/pcap.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/aixisstudio/Snitch
&lt;span class="c"&gt;# or one-click install via Pinokio, or Docker, or the Electron builds&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Repo: &lt;a href="https://github.com/aixisstudio/Snitch" rel="noopener noreferrer"&gt;https://github.com/aixisstudio/Snitch&lt;/a&gt; — AGPL-3.0. Stars, issues, and PRs welcome. There are a few &lt;code&gt;good first issue&lt;/code&gt; tickets open if you want to get involved.&lt;/p&gt;

&lt;p&gt;Curious what you'd find on your own machine. Honest feedback welcome — especially on the anomaly heuristics.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>privacy</category>
      <category>showdev</category>
      <category>security</category>
    </item>
  </channel>
</rss>
