Repository navigation
CLI Reference
Every module is a standalone script. The GUI is a view over them. Anything you can click, you can script — and for repeatable work, scripting is usually the better choice.
sudo bash wifisting.shPresents the module list. Type a module number to open it.
- Modules with their own interface open that
- The rest show the verbs parsed from the module's
--help, and prompt for any arguments
bash wifisting.sh --list # list modules, no root neededmodules/41_wifi_geolocate.sh --apple-lookup e4:9e:12:05:34:59
e4:9e:12:05:34:59 43.2255745 0.0792846 45Every module takes --help:
modules/53_jamming.sh --helpOutput is TSV — KEY<TAB>VALUE, one record per line. Designed to be
piped:
modules/01_iface.sh --list-tsv | cut -f1
modules/58_proximity.sh --events-tsv | awk -F'\t' '$3 == "appear"'Headers are a line of column names, so tail -n +2 skips them.
Errors go to stderr and set a non-zero exit code. Nothing important is
reported only on stdout, so 2>/dev/null is safe when you want silence.
--status-tsv reports capability. Most modules answer it, and it says
what the module can and cannot do on this machine:
modules/53_jamming.sh --caps-tsv--selftest checks the module without hardware. Every module has one.
It exits non-zero on failure:
for m in modules/*.sh; do
bash "$m" --selftest >/dev/null 2>&1 || echo "FAIL: $m"
doneAnything touching a radio needs root. In the GUI this happens per action
through pkexec, so you're prompted only when a privileged step runs.
From the CLI:
sudo modules/03_attack.sh --deauth <BSSID>pkexec resets PATH, which is a common source of "works in my shell,
fails in the GUI" reports. The app widens PATH at startup to include
/usr/sbin and /sbin for exactly this reason. If you hit it in your own
scripts, set PATH explicitly.
--selftest first, always. Then parse TSV:
#!/usr/bin/env bash
set -euo pipefail
mod=modules/02_recon.sh
"$mod" --selftest >/dev/null
"$mod" --scan wlan0 --duration 20 \
| awk -F'\t' 'NR > 1 && $4 > 60 { print $2 }'The --selftest line costs a second and tells you whether a failure is your
script or the module — which is most of the debugging.
| Code | Meaning |
|---|---|
0 |
Success |
1 |
Operation failed — see stderr |
2 |
Usage error — bad arguments or a missing one |
A module that reports success while doing nothing is treated as a defect. If you find one, report it.