Quickstart
Plug in an RTL-SDR, let xng find what is receivable, and watch it stream. No config files, no frequency tables to memorize — and you can rehearse the whole thing on a recorded file first.
The fastest possible start: xng tui --sdr driver=rtlsdr --mode acars. It picks sensible channels for you and opens a live message browser. Everything below just explains what is happening and how to go further.
1 · Confirm your setup
List the radios xng can see, then run the built-in pipeline self-check:
xng devices # list attached SDRs (native Airspy + SoapySDR)
xng selftest # end-to-end sanity check of the decode pipelineIf xng devices shows nothing, your SDR driver is not installed or the device is not connected — see Troubleshooting.
2 · Find out what is on the air
You do not need to know which frequencies are active in your area. The scanner sweeps the bands for the modes you ask about and writes a ready-to-run plan:
xng scan --sdr driver=rtlsdr --gain 28 \
--modes acars,vdl2,ais --dwell 120 --out scan.jsonTo soak-test a single mode and get per-channel reception advice (signal levels, suggested gain, which channels are worth keeping):
xng survey --sdr driver=rtlsdr --mode acars --tune-gain --out survey.json3 · Watch it live in the TUI
The interactive terminal UI is the friendliest way to see what xng is doing — a scrollable message list, a detail pane, per-channel stats, a spectrum, and a waterfall:
xng tui --sdr driver=rtlsdr --mode acars↑ / ↓Move through the message list (up to 2000 messages are retained).
vToggle the detail pane between human-readable and raw JSON.
--file capture.cf32Replay a recorded IQ file instead of a live radio — great for learning with no hardware.
4 · Print decoded traffic to the console
When you just want one-liners on stdout, use listen:
xng listen --sdr driver=rtlsdr -r 2400000 -c 131.500M \
--channels 131.550,131.72512:01:13.402 [acars] 131.550 MHz ACARS N401UA UA1989 lbl=H1 ok
12:01:14.118 [acars] 131.725 MHz ACARS N831UA UA0233 lbl=B6 ok [ADS-C 47.5512 -122.3052 34000 ft]5 · Feed Airframes
Add your station ID and a feed flag, and your decodes contribute to the open network:
xng listen --sdr driver=rtlsdr -r 2400000 -c 131.500M \
--channels 131.550,131.725 \
--feed-airframes --station-id XX-KSEA-1Running more than one mode, or want it to survive reboots? That is what station mode is for — one TOML file describes every SDR, mode, and output, and the recipes page has copy-paste starting points.
Try it with no hardware
Have a recorded IQ file? Inspect it, then decode it — no radio required:
xng iq-info capture.cf32 -r 2000000 -c 131500000
xng decode capture.cf32 -r 2400000 -c 131.500M --channels 131.550,131.425