A modern terminal UI for the aircrack-ng / hcxtools workflow. snype streamlines wireless reconnaissance, handshake capture, deauthentication and wordlist cracking through a keyboard-driven TUI and sensible defaults.
Caution
This tool is provided for educational and legitimate security testing purposes only. The author assumes no responsibility for any damages or legal consequences arising from its use. Always obtain explicit authorization before performing any network assessment. Unauthorized use is strictly prohibited and may violate local, national and international laws.
snype wraps the standard wireless auditing toolchain behind a single interface:
- Modern TUI built with
textualandrich— status bar, sidebar navigation, keybindings, modal dialogs. - Automatic dual-terminal launcher — monitor and deauthentication run side by side in
xterm,tmuxor an embedded PTY pane, depending on the environment. - Environment detection — transparent support for desktop Linux, headless/SSH sessions, and Kali NetHunter / Termux.
- Structured output — every capture is written to a per-session directory with a
meta.jsonfor reproducibility. - CLI flags — every TUI action is also reachable from the command line for scripting.
- Interactive TUI with contextual keybindings and live status bar.
- Network scanning and target selection via
airodump-ngwith CSV parsing. - Targeted packet capture with deduplicated per-session output.
- Deauthentication module with configurable duration and target client.
- Automatic conversion from
.capto.hc22000viahcxpcapngtool. - Wordlist cracking wrapper on
aircrack-ngwith result persistence. - One-shot migration from the legacy flat layout to the new
snype-data/tree. - Detailed
--helpreference generated byargparse.
- Linux-based operating system (desktop, SSH, or NetHunter / Termux).
- Wireless adapter supporting monitor mode and packet injection.
- Python 3.10 or higher.
- sudo / root privileges for monitor mode and injection.
aircrack-ngsuite:airmon-ng,airodump-ng,aireplay-ng,aircrack-ng.hcxtools:hcxpcapngtool,hcxdumptool.- At least one of:
tmux,xterm,kitty,gnome-terminal,konsole(optional — the embedded PTY backend is used as a fallback).
| Package | Version | Purpose |
|---|---|---|
textual |
>= 0.50 |
TUI framework (layout, widgets, keybindings) |
rich |
>= 13.0 |
Rich text and table rendering inside widgets |
pipx installs snype in an isolated environment and puts the snype command on your PATH.
git clone https://github.com/ente0/snype.git
pipx install ./snypeTo pick up code changes after pulling:
pipx reinstall snypeTo uninstall:
pipx uninstall snypegit clone https://github.com/ente0/snype.git
cd snype
pip install .Debian / Ubuntu / Kali
sudo apt update
sudo apt install -y aircrack-ng hcxtools hcxdumptool tmux xterm \
python3 python3-pip pipx
pipx ensurepathFedora
sudo dnf install -y aircrack-ng hcxtools hcxdumptool tmux xterm \
python3 python3-pip pipx
pipx ensurepathArch Linux / Manjaro
sudo pacman -S aircrack-ng hcxtools hcxdumptool tmux xterm \
python python-pip python-pipx
pipx ensurepathKali NetHunter / Termux
pkg install aircrack-ng hcxtools tmux python
pip install textual richsnype auto-detects NetHunter and forces the tmux backend for the dual-terminal launcher.
sudo snypeThe first run performs a one-shot migration: any legacy handshakes/ directory and the old selected_network.txt / interface_config.txt files are moved into the new snype-data/ layout. Nothing is deleted — the old files are relocated, not dropped.
Launch with pre-filled state:
sudo snype -i wlan0 -I wlan1 -b AA:BB:CC:DD:EE:FF -c 6If running directly from the repository without installation:
sudo python3 snype.pyRun snype --help for the authoritative list. The most relevant flags:
| Flag | Argument | Purpose |
|---|---|---|
-i, --interface |
IFACE |
Primary interface, used for monitoring. |
-I, --inject |
IFACE |
Secondary interface for injection (defaults to primary). |
-b, --bssid |
MAC |
Preselect a target BSSID. |
-c, --channel |
N |
Preselect a channel. |
-e, --essid |
NAME |
Preselect an ESSID (used for session naming). |
-d, --data-dir |
PATH |
Override the data directory (default: ./snype-data). |
-t, --term-mode |
auto|xterm|tmux|pty |
Force a specific dual-terminal backend. |
--duration |
SECONDS |
Default duration for timed deauth attacks. |
--dry-run |
Print the external commands without executing them. | |
-v, --verbose |
Enable verbose logging. | |
--version |
Print version and exit. | |
-h, --help |
Print the full help and exit. |
The TUI is divided into four regions:
+------------------------------------------------------------+
| status bar : iface, target, channel, cap/hc22000/pwd count |
+-----------+------------------------------------------------+
| sidebar | |
| Scan | main pane |
| Monitor | (tables, forms, progress, logs) |
| Deauth | |
| Crack | |
| Files | |
| Settings | |
+-----------+------------------------------------------------+
| footer : keybinding hints and last log line |
+------------------------------------------------------------+
| Key | Action |
|---|---|
s |
Scan networks |
m |
Start targeted monitoring + deauth |
d |
Standalone deauthentication |
c |
Enter wordlist cracking view |
f |
Browse captured files |
t |
Settings (interfaces, terminal backend) |
h |
Return to welcome screen |
? |
Show help |
q |
Quit |
Scan
| Key | Action |
|---|---|
r |
Start a scan |
↑ / ↓ |
Move selection |
Enter |
Pick target |
+ / - |
Adjust scan duration |
Deauth
| Key | Action |
|---|---|
Enter |
Run deauth |
+ / - |
Adjust duration |
c |
Clear client MAC (target all) |
Crack
| Key | Action |
|---|---|
r |
Refresh capture list |
↑ / ↓ |
Select capture file |
w |
Load wordlist from $SNYPE_WORDLIST |
Enter |
Run cracking |
Settings
| Key | Action |
|---|---|
1 |
Set monitor interface |
2 |
Set injection interface |
3 |
Cycle terminal backend |
f |
Flush monitor-mode services |
- Settings (
t) — set monitor and optional injection interfaces. - Scan (
s) — discover and pick a target from the live table. - Monitor + Deauth (
m) — the launcher opens a dual-pane terminal so packet capture and deauthentication run concurrently. Close both panes when done. - Convert —
.capfiles are auto-converted to.hc22000at the end of the session. - Crack (
c) — set$SNYPE_WORDLIST, presswto load it, thenEnterto crack. - Files (
f) — browse captures, hashes and recovered passwords undersnype-data/hs/.
All artefacts live under a single, portable tree. The default root is ./snype-data/, overridable with --data-dir or the SNYPE_DATA_DIR environment variable.
snype-data/
├── config.json # interface + last target state
├── hs/ # captures organised by ESSID
│ └── <ESSID>/
│ ├── <YYYYMMDD-HHMMSS>/
│ │ ├── capture.cap
│ │ ├── capture.hc22000
│ │ └── meta.json # BSSID, channel, start, stop, EAPOL count
│ └── passwords/
│ └── <ESSID>_password.txt
├── logs/
│ └── snype.log
└── found_passwords.jsonl # append-only cracked keys
Each session directory contains a self-describing metadata file. Example:
{
"essid": "MyNetwork",
"bssid": "AA:BB:CC:DD:EE:FF",
"channel": 6,
"started_at": "2026-04-14T14:32:01+00:00",
"stopped_at": "2026-04-14T14:34:18+00:00",
"duration_s": 137,
"eapol_frames": 4,
"handshake_complete": true,
"capture": "capture.cap",
"hashcat": "capture.hc22000"
}When the user triggers "Monitor + Deauth", snype opens two terminals side by side so packet capture and deauthentication run at the same time. The backend is picked automatically; --term-mode can force a specific one.
Detection order (auto mode):
- NetHunter / Termux (
$TERMUX_VERSIONset, or Kali-NetHunter bind mounts detected) — forcestmux. - Graphical desktop (
$DISPLAYset) — usesxtermby default, falling back to the first ofkitty,gnome-terminal,konsolefound inPATH. - TTY with tmux available — creates a detached tmux session, splits horizontally and attaches.
- Fallback — embedded PTY pane inside the TUI itself (multiplexed via
pty.openptyand an asyncio reader).
The backend for the current session is reported in the status bar and in snype-data/logs/snype.log.
For GPU-accelerated cracking we recommend hashCrack, a companion tool designed to pair with snype.
Workflow:
- Capture the handshake with snype and let it produce the
.hc22000artefact. - Feed the artefact to hashCrack:
hashcrack captured_handshake.hc22000Benefits:
- GPU-accelerated attack modes via
hashcat. - Multiple prebuilt cracking strategies and masks.
- Extensive wordlist management.
Note
Always ensure you have proper authorization before attempting any password recovery.
Interface not found
- Confirm the adapter is physically connected.
- Check monitor-mode capability with
iw list. - Use the exact interface name as reported by
ip link.
Permission denied
- Run snype with
sudo. - On NetHunter, ensure the chroot has access to the USB wireless device.
No networks found
- Verify the adapter is actually in monitor mode (
iwconfig <iface>). - Try pinning the channel manually via
-c. - Some adapters are region-locked; check
iw reg.
Deauthentication ineffective
- Ensure you are in range of the target.
- Some clients implement 802.11w / PMF and will ignore deauth frames.
- Increase the duration with
--durationor repeat the attack.
TUI rendering issues
- Make sure the terminal reports at least 100x30 characters.
- Force a specific backend with
--term-mode tmuxif your terminal emulator is exotic. - Disable truecolor by exporting
COLORTERM=if colors look off. - If textual throws an error on startup, ensure Python 3.10+ is in use:
python3 --version.
snype command not found after pipx install
- Run
pipx ensurepathand restart your shell. - Confirm pipx's bin directory (
~/.local/bin) is in$PATH.
This project is licensed under the GPL-3.0. See the LICENSE file for details.
