A Linux-native client for FlexRadio Systems transceivers.
AetherSDR brings FlexRadio operation to Linux without Wine or virtual machines. Built from the
ground up with Qt6 and C++20, it speaks the SmartSDR protocol natively and aims to replicate the
full SmartSDR experience.
README
AetherSDR
A Linux-native client for FlexRadio Systems transceivers
AetherSDR brings FlexRadio operation to Linux without Wine or virtual machines. Built from the ground up with Qt6 and C++20, it speaks the SmartSDR protocol natively and aims to replicate the full SmartSDR experience.
> Cross-platform downloads available: Linux AppImage, macOS universal DMG, Windows installer and portable ZIP.
> Linux is the primary supported platform. macOS and Windows builds are provided as a courtesy.
Native. Open. Yours.
Highlights
GPU-accelerated spectrum & waterfall — QRhi rendering on the GPU (OpenGL/Metal/D3D11), ~71% CPU reduction over CPU paint
Multi-slice & multi-panadapter — colour-coded VFO overlays, independent TX assignment, diversity/ESC beamforming; up to 8 detachable pans with native VITA-49 waterfall tiles
Aetherial Audio Channel Strip — a unified RX and TX DSP suite (gate, EQ, compressor, de-esser, tube, AetherVoice exciter, reverb, brickwall limiter) with a preset library and a per-side scope
Six client-side noise-reduction engines — NR2 (spectral), RN2 (RNNoise), NR4 (libspecbleach), DFNR (DeepFilterNet3), BNR (NVIDIA GPU AI), and MNR (macOS)
DAX virtual audio + IQ — 4 RX + 1 TX channels and raw I/Q at 24–192 kHz for WSJT-X / fldigi / VARA / JS8Call, plus a per-slice WFM demodulator for satellite data
AetherModem packet radio — KISS-over-TCP TNC, connected-mode AX.25 BBS, a personal mailbox, and an APRS client (station map, GPS beacon, messaging) with a Direwolf-derived VHF demodulator
AetherSweep — in-panadapter SWR analyzer with log scale, threshold-band shading, and interpolated bandwidth at SWR ≤ 1.5 / 2.0
SpotHub — DX Cluster, RBN, WSJT-X, POTA, and FreeDV Reporter spots with auto-mode switch
CW operator suite — real-time Morse decoder, MIDI/keyboard straight-key & iambic paddles with full QSK, optional Quindar tones
FreeDV RADE — AI digital-voice codec with a client-side neural encoder/decoder
SmartLink remote + TCI v2.0 server — Auth0/TLS WAN operation, and CAT + audio + IQ + CW + spots over a single TCI WebSocket
Broad hardware control — rigctld + virtual-serial CAT, MIDI mapping, the FlexControl knob, serial PTT/CW keying, and Multi-Flex operation alongside SmartSDR/Maestro
How AetherSDR Is Built
AetherSDR is developed using an AI-augmented open-source workflow:
Project lead (Jeremy KK7GWY) + a core contributor team working primarily through Claude Code and a mix of AI development tools — every commit goes through the merge gate; nothing reaches main without human review
AetherClaude orchestrator bot auto-triages incoming issues, drafts implementation plans, and produces PRs for issues labelled aetherclaude-eligible
Contributors use a mix of AI tools (Codex, Copilot, Cursor, Gemini, Aider) — the project's Constitution (14 principles, structured per Cisco's Foundry Constitution spec) codifies the conventions every contributor and every AI tool follows
Branch protection enforces signed commits, CI green, and CODEOWNERS review — every change goes through the same gate regardless of which AI tool (or human) produced it
At active pace: ~50 PRs per week, ~15,000–30,000 lifetime downloads, ≥6 distinct AI tools touching the codebase
See AGENTS.md for the canonical project guide that every AI assistant reads first, and CONSTITUTION.md for the principles that gate the contribution model.
The full list of code contributors is auto-generated from GitHub commit attribution — see the Contributors graph.
Supported external devices include the 4O3A/FlexRadio PGXL (Power Genius XL)
power amplifier and TGXL (Tuner Genius XL) antenna tuner.
Active test target is FLEX-8600 firmware 4.2.18 (SmartSDR protocol v1.4.0.0);
earlier 4.x firmware works; v3.x is unsupported.
Tested Controller Devices
AetherSDR supports external station-control hardware through USB serial, USB HID,
MIDI, Stream Deck/StreamController plugins, and generic USB-serial adapters:
FlexRadio FlexControl USB tuning knob
Icom RC-28 USB remote encoder
Griffin PowerMate USB knob
Contour ShuttleXpress and ShuttlePro v2 jog controllers
MIDI controllers with learn mode, profiles, and relative-encoder support
Elgato Stream Deck devices through the bundled macOS/Windows Stream Deck plugin
Stream Deck devices on Linux through the bundled StreamController plugin
USB-serial PTT/CW interfaces for foot switches, straight keys, iambic paddles,
amplifier keying lines, and external sequencers
Apple Silicon (M1+). Intel Macs via Rosetta. Signed & notarized.
Windows Installer
AetherSDR-*-Windows-x64-setup.exe
Setup wizard with Start Menu shortcut and uninstaller.
Windows Portable
AetherSDR-*-Windows-x64-portable.zip
No install needed. Extract and run.
Building from Source
Dependencies
Install all dependencies for a full-featured build. Optional packages are noted — the build succeeds without them but the corresponding features are disabled.
> Linux Mint / Ubuntu note: If PC audio devices show as "Dummy Output",
> install gstreamer1.0-pulseaudio. For PipeWire systems, also install gstreamer1.0-pipewire.
>
> Ubuntu 26.04 note: If AetherSDR fails to start with a missing
> libOpenGL.so.0 error, install libopengl0. 26.04 stopped pulling it in
> by default for the desktop image; the build-deps line above includes it
> explicitly so this only bites users who install just the AppImage.
RADE-enabled builds use a vendored Opus snapshot, so no additional Opus download
is required during configure or build.
Qt 6.7+ for GPU Spectrum Rendering
GPU-accelerated spectrum/waterfall rendering requires Qt 6.7 or greater. If your distribution ships with an older version (e.g., Ubuntu 24.04, Debian 12, or Mint 21–22 include Qt 6.4.2), the build system automatically disables GPU rendering and falls back to the CPU-based QPainter path. (Release binaries ship Qt 6.8.3 LTS; the 6.7 floor is the source-build minimum for QRhi.)
To use GPU acceleration on these systems, install Qt 6.7+ manually:
Option 1: Using a PPA (Ubuntu/Mint)
The kubuntu-backports PPA may provide a newer Qt — verify the version it ships before relying on it.
Option 2: Using the Qt Online Installer
Install Qt into your home directory (e.g., ~/Qt/6.8.3/gcc_64). Because CMake otherwise defaults to the system-provided Qt, point it at the newer install with -DCMAKE_PREFIX_PATH:
Make sure the qtshadertools and qt5compat (or equivalent) modules are selected in the Qt Online Installer along with qtbase.
Note: GPU rendering also needs the private QtGui headers (qt6-base-private-dev on Debian-family, included by default in the Qt Online Installer).
Install (optional, Linux)
sudo cmake --install build
Roadmap
CW ultimatic keyer mode (#416)
Native DAX audio channels on Windows
See the full issue tracker for all planned features.
Contributing
PRs, bug reports, and feature requests welcome! See CONTRIBUTING.md for guidelines.
Development environment: AetherSDR is developed using Claude Code as the primary development tool. We encourage contributors to use Claude Code for consistency. PRs must follow project conventions, pass CI, and include GPG-signed commits.
Not a developer? Click the lightbulb button in AetherSDR's title bar to create an AI-assisted bug report or feature request.
Verifying Downloads
Linux and Windows binaries are GPG-signed. macOS artifacts are Apple notarized. Each release includes .asc signatures and SHA256SUMS.txt.