Skip to main content
Every field in the wizard is a flag, so anything you work out interactively can be pasted into a script.

The three ways to start

--no-tui validates the flags, runs, and prints plain text to stdout. No terminal required.

What it prints

A plan, a start line, one line per second, and a summary:
There’s no --json yet. Parsing is text parsing for now, and the ran for summary block is the stable thing to key on.
Extracting the totals:

Exit codes

Errors go to stderr, statistics to stdout, so you can separate them:

Confirmations

Some runs stop and ask. There are two levels, and they behave differently on purpose. Ordinary confirmations cover things like your SSH session being on this interface, or unlimited rate on the default-route interface. --yes (or -y) answers these:
The match-all guard covers --rx-mode all. --yes does not answer this one. You need --allow-match-all as well:
This is deliberate. --yes means “I’ve read the warnings”. --allow-match-all means “I specifically accept that every packet on this interface stops reaching the kernel, including SSH”. They’re different statements and Wireblast makes you make both.
Without a terminal and without the flags, it refuses rather than hanging:

Saved settings don’t apply

--no-tui neither reads nor writes the saved settings in ~/.wireblast/. A scripted run depends only on its flags, so it behaves identically on a fresh machine and on one you’ve been experimenting on all afternoon. If you’re scripting the TUI form (--start) and want to ignore whatever was saved:
That clears the files and starts from defaults.

Running unattended

Wireblast handles SIGINT and SIGTERM cleanly: it drains the transmit rings, collects final counts, detaches the XDP program, and exits 0. So kill on that PID gives you a proper summary rather than a truncated log. A second signal exits immediately with 130, so a wedged run can still be killed without reaching for another shell.
--no-tui attaches and detaches per run, so each invocation pays the link bounce. Looping many short runs in a shell script costs about 8 seconds each on a physical NIC. If you’re iterating, one longer run, or the TUI’s r key, is much faster.

A two-box script

Give the receiver a longer duration than the sender so it’s listening for the whole run, and start it first. Packets sent before it attaches are simply gone. The examples directory has ready-made scripts for most of this, all driven by environment variables.