Elmer is a set of Claude Code skills that act as a knowledgeable, patient ham radio mentor for Linux users. Named after the traditional ham radio term for an experienced operator who helps newcomers, Elmer guides you through configuring and operating amateur radio software step by step.
Routes you to the right sub-skill based on what you describe. Reads your saved config (~/.config/elmer/config.yaml) and greets you by callsign. If no config exists, directs you to /elmer-setup first.
Walks through a friendly interview to learn your system and radio hardware. Auto-detects your Linux distro, audio stack, package manager, and installed ham radio software. Collects your callsign, grid square, rig details (HF and VHF/UHF), and audio device names. Writes everything to ~/.config/elmer/config.yaml.
Sets up reliable rig control:
- udev rules — creates stable device aliases like
/dev/hf-catso USB serial ports don't shift around between reboots - Hamlib — finds your rig's model ID, tests CAT connectivity, diagnoses common failures (permissions, baud rate, CI-V address)
- flrig — installs and configures flrig, sets it up as a Hamlib proxy so multiple apps can share rig control without port conflicts
- User groups — ensures you're in
dialout(Debian/Ubuntu) oruucp(Arch) for serial port access
Identifies your audio devices, separates radio audio from system audio, and sets correct levels:
- Identifies HF rig built-in USB audio (IC-7300, FT-710, etc.), Digirig, SignaLink, and other interfaces
- Recommends transmit and receive level starting points, explains ALC
- Configures PipeWire/PulseAudio to keep radio audio devices from being grabbed by the desktop
- Interface-specific guidance for Digirig Lite, SignaLink USB, and rigs with built-in USB audio
- End-to-end audio path testing (record from radio, generate test tones)
Sets up and troubleshoots HF digital mode software:
- fldigi — configuration, audio routing, rig control connection, waterfall tuning
- WSJT-X — FT8, FT4, WSPR setup; audio device selection; CAT and PTT configuration
- JS8Call — configuration for JS8 messaging and the JS8 Spotter tool
Configures Winlink for emergency/off-grid email:
- Pat — the primary Winlink client for Linux
- ARDOP — open-source HF soundcard modem
- Vara HF — Windows app running under Bottles (Wine) on Linux
Sets up AX.25 packet radio on Linux:
- Direwolf — software TNC configuration for packet and APRS
- AX.25 kernel stack —
kissattach,axports, and related tools - PTT configuration for packet interfaces
Configures APRS receive, igate, and digipeating:
- Direwolf — as an APRS igate or digipeater
- Xastir — GUI APRS client with map display
- aprx — lightweight igate/digipeater daemon
- Beacon configuration
Sets up SDR hardware and software:
- RTL-SDR — driver installation, udev rules for dongle access
- GQRX — configuration and use
- SDR++ — setup and plugin configuration
Sets up logging software and manages log data:
- CQRLOG — install, configure, and use the most popular Linux logging app
- ADIF — import/export log files for sharing between applications
- Contest logging setup
Run /elmer-setup first. It will:
- Detect your Linux distro, audio stack, and package manager
- Ask about your HF and VHF/UHF rigs
- Detect installed ham radio software
- Check for existing udev rules
- Write your config to
~/.config/elmer/config.yaml
After setup, just run /elmer and describe what you want to work on — Elmer routes to the right skill automatically.
The config lives at ~/.config/elmer/config.yaml. It tracks your operator info, rig hardware, audio devices, udev status, and which software is installed. All skills read it on startup. You can edit it by hand or re-run /elmer-setup to update specific sections.
See elmer/config-template.yaml in this repo for the full schema with comments.
| Category | Examples |
|---|---|
| HF rigs | Yaesu FT-710, FT-991A, FT-857D; Icom IC-7300, IC-705; Kenwood TS-590SG |
| VHF/UHF rigs | Any rig with serial CAT or audio interface |
| Interfaces | Digirig Lite, SignaLink USB, RigBlaster |
| SDR dongles | RTL-SDR and compatible hardware |
fldigi · flrig · Hamlib · WSJT-X · JS8Call · JS8 Spotter · Direwolf · Pat · ARDOP · Vara HF (via Bottles) · GQRX · SDR++ · Xastir · aprx · CQRLOG
Debian · Ubuntu · MX Linux · Arch Linux · Fedora · and other distros using apt, dnf, pacman, or zypper