Skip to content

Repository files navigation

Strix Talon

A live per-app egress (outbound) firewall & monitor for Windows and Linux — see which application is talking to which remote IP and port, refreshed every ~2 seconds; get flagged the instant a brand-new destination appears; block an app or an address; and flip a global kill-switch that stops all outbound traffic except loopback. No kernel driver — Talon drives your OS's own firewall.

License: MIT Platform Security

Strix Talon - screenshot

Strix Talon is part of the open-source Strix Advanced Tools suite of privacy & security utilities for Windows and Linux.


Why?

Most machines have plenty of inbound protection and almost no visibility into what their own apps send outbound. Talon closes that gap: it shows, in real time, every process that has an active outbound connection and exactly where it is going, alerts you the moment a new destination shows up, and lets you cut off an app or an address on the spot.

The key design choice is that Talon ships no kernel driver. Instead of asking you to trust and sign a WFP callout or a custom netfilter module, it translates each rule you make into the operating system's own firewall — Windows Defender Firewall via netsh advfirewall, Linux via nft — and keeps every rule it creates in a private, namespaced area so it can be removed cleanly and can never clobber your existing firewall configuration.

What it does

  • Live per-app egress monitor — lists every application with an active outbound connection and the remote IP / port it is talking to, refreshed every ~2 seconds. Read-only and unprivileged.
  • New-destination alerts — flags a destination the moment it appears for the first time, so an app quietly reaching a new endpoint stands out immediately.
  • Block an app or an address — block a program's outbound traffic (Windows) or a specific remote IP (all platforms) with one action; unblock just as easily.
  • Global kill-switch — block all outbound traffic except loopback with a single toggle, optionally keeping the local LAN reachable. Loopback is always exempt, so the switch can never lock you out of your own machine.
  • Inbound exposure at a glance — surfaces local LISTENING sockets and whether each is bound to 0.0.0.0 (exposed to the network) or 127.0.0.1 (local only), so you can see what is reachable into the box, not just out of it.
  • One-click revert — every rule Talon creates is namespaced; revert removes only Talon's rules and leaves the rest of your firewall untouched.

How blocking works (OS firewall, no driver)

Talon does not intercept packets itself and installs no kernel component. Each rule is expressed as an argv list (never a shell string) and handed to the platform's native firewall:

  • Windows — rules are added to Windows Defender Firewall with netsh advfirewall. Rule names are prefixed StrixTalon-, so they are easy to find, audit, and remove.
  • Linux — rules live in a private strixtalon nftables table managed with nft. Your existing tables and chains are never edited.

Because everything Talon writes is namespaced, revert can tear down Talon's rules in full without ever touching a rule you (or your distro) created.

Repository layout

File What it is
strix_talon_core.py Pure engine + firewall argv builders (connection/listener enumeration, new-destination diffing, rule construction, validation).
StrixTalon.py PySide6 desktop dashboard — a modern, live UI for monitoring and rule changes.
talon.py Linux CLI: watch / list / listeners / rules / block / unblock / killswitch / revert.
tests/test_talon.py Self-running test suite — python tests/test_talon.py.
requirements.txt GUI dependencies: PySide6, psutil.

Installation

Run from source (any OS): requires Python 3. The GUI needs PySide6 and psutil; the CLI and the tests need only the standard library plus psutil.

git clone https://github.com/strix-tool/strix-talon
cd strix-talon
pip install -r requirements.txt

# GUI (Windows and Linux)
python StrixTalon.py

# CLI (Linux)
sudo python3 talon.py watch

Windows

Download the installer from the Releases page when available, or run StrixTalon.py from source. Monitoring is read-only and needs no privileges; changing firewall rules needs Administrator rights, so the GUI offers an elevated relaunch via the absolute interpreter path (not PATH).

The build is not code-signed yet. Because a firewall tool touches security-sensitive settings, Windows SmartScreen or your AV may flag it on first run — choose More info → Run anyway. This is documented honestly in SECURITY.md.

Linux (Ubuntu / Debian)

Install the .deb from Releases when available, or run from source. Monitoring is unprivileged; the commands that change firewall rules use nft and are run with sudo.


Usage

GUI (StrixTalon.py)

python StrixTalon.py

A modern, single-window dashboard: a live table of apps and their outbound destinations (with new destinations highlighted), a panel of local listening sockets showing 0.0.0.0 vs 127.0.0.1 exposure, per-row block / unblock actions, the global kill-switch toggle, and a one-click revert.

CLI (talon.py)

python3 talon.py watch                 # live per-app egress monitor (read-only)
python3 talon.py list                  # snapshot of current outbound connections
python3 talon.py listeners             # local LISTENING sockets + exposure
sudo python3 talon.py block 203.0.113.5   # block outbound to a remote IP (nft)
sudo python3 talon.py unblock 203.0.113.5      # remove that rule
sudo python3 talon.py rules            # list Talon's own rules
sudo python3 talon.py killswitch on    # block all outbound except loopback
sudo python3 talon.py killswitch on --allow-lan  # …but keep the LAN reachable
# Per-app blocking ("this app may never touch the internet") is available in the
# GUI on Windows; the Linux CLI blocks by address (nft can't match by program).
sudo python3 talon.py killswitch off   # lift the kill-switch
sudo python3 talon.py revert           # remove ALL Talon rules, restore your firewall

Watching, listing, and listing listeners are read-only and unprivileged; only the commands that add or remove rules (block, unblock, killswitch, revert) need Administrator/root.

Security

A firewall tool changes security-sensitive OS settings, so its design centres on not being able to hurt you. Talon ships no kernel/WFP driver — enforcement is delegated to the OS's own firewall. Every rule is namespaced (StrixTalon- rule names on Windows, a private strixtalon nftables table on Linux) so revert removes only Talon's rules and can never clobber your existing ruleset. There is no self-lockout — loopback is always exempt, the kill-switch keeps loopback (and optionally the LAN) reachable, and every change is revertible in one click. There is no injection — every firewall command is an argv list, destination IPs are validated with ipaddress, and a program path must be a real file before a rule is built. And it runs with least privilege — visibility is read-only and unprivileged; only rule changes need Administrator/root. Read the full threat model in SECURITY.md. Found a vulnerability? See its reporting section.

Known limitations

  • No interactive allow/deny pop-ups in v1. The "allow or deny this new connection" prompt (Little Snitch's signature) requires a WFP callout driver on Windows / NFQUEUE on Linux and is out of scope for v1. Talon v1 is live visibility + rule-based OS-firewall blocking + new-destination alerts.
  • Per-app blocking is Windows-only. netsh matches an outbound rule by program path. On Linux, nft/iptables cannot natively map a running process to a rule, so on Linux Talon blocks by destination IP — and says so.
  • Unsigned Windows build may trip SmartScreen / AV. A firewall tool touches security-sensitive settings, so an unsigned build can be flagged on first run; verify the source and choose More info → Run anyway.

Credits

Strix Talon calls no third-party services and bundles no external firewall code; it builds on the standard-library ipaddress module, psutil, PySide6, and the OS's own firewall tooling. Thanks and references: ACKNOWLEDGEMENTS.md.

License

MIT © 2026 Strix Advanced Tools. Use only on machines you own or are authorized to administer.

About

See every app's outbound traffic and choke off the ones you don't trust. Per-app firewall, MIT.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages