Maintenance window active (0300-0500 UTC). Service may have brief interruptions.
Get started from any APRS radio or client
Send REG to QRX
That's it. QRX will hold messages you miss while offline.
What is QRX?
QRX is a passive APRS message safety net. It monitors APRS-IS for messages
addressed to your callsign, watches for acknowledgment, and stores any
unacknowledged messages for later retrieval.
When you come back online (detected via position beacon), QRX notifies you
of missed messages. Think of it as voicemail for APRS.
QRX never ACKs on your behalf, never retransmits messages, and never injects
itself into the delivery path. It is purely an observer that catches what falls
through the cracks.
How It Works
- Someone sends you an APRS message while your radio is off
- QRX sees the message on APRS-IS, waits 5 minutes for your ACK
- No ACK observed — QRX stores the message
- You turn your radio on and beacon a position
- QRX sees your beacon and sends you a notification
- You send R to read messages one by one, like voicemail
Commands
Send as standard APRS messages to QRX. Single-letter shortcuts work.
| Command | Alias | Description |
| REG | | Register your callsign (central inbox for all SSIDs) |
| INBOX | I | Show inbox and reset to newest |
| READ | R, N | Read next message (newest first) |
| WHO | W | Show who sent you messages |
| ACK | A | Send read receipt to sender |
| DEL | D | Delete last read message |
| DEL ALL | CLR | Clear all messages |
| IGNORE <call> | | Block messages from a callsign |
| UNIGNORE <call> | | Stop ignoring a callsign |
| IGNORE | | Show ignore list |
| SPLIT <ssid> | | Split SSID into own inbox (for testing) |
| UNSPLIT <ssid> | | Merge back to central inbox |
| STATUS | S | Check registration and inbox count |
| STATS | | System-wide statistics |
| NOTIFY ON/OFF | | Enable/disable beacon alerts |
| QUIET 60 | | Suppress notifications for N minutes |
| UNREG | | Unregister and delete all data |
| RLY | | Relay last-read message to your radio as original sender |
| RLY ALL | | Relay entire inbox to your radio |
| BUG <details> | | Submit a bug report with packet trace |
| HELP <cmd> | H | Help for a specific command |
Example Session
# You come back online, radio beacons
QRX → QRX: 3 msgs from 2 stns. Send I
# You check inbox
You → I
QRX → 3 msgs from 2 stns. Newest first. Send R
# Read through messages
You → R
QRX → 1/3 W4ABC 15:30z: meet on 146.52?
You → R
QRX → 2/3 KN4XYZ 14:23z: you on the ridge?
You → A
QRX → Read receipt sent to KN4XYZ.
QRX → (to KN4XYZ) QRX: N0JLF-7 read your msg at 15:45z
# Check who sent messages
You → W
QRX → W4ABC:2 KN4XYZ:1
Details
Message retention: Unread messages are held for 7 days. Max 20 per station. When your inbox is full, QRX notifies you and oldest messages roll off.
Notification throttle: One notification per 30 minutes, even if you beacon frequently.
Beacon detection: Any beacon from any SSID of your registered callsign triggers notification if you have unread messages.
Sender notifications: When QRX stores a missed message, it notifies the sender that the message was saved and will be delivered when you're back online.
Read receipts: After reading a message, send A to notify the original sender that you've read their message.
Privacy: QRX only observes. It never ACKs on your behalf and never retransmits your messages.
Central inbox: REG creates one inbox for your base callsign. Messages to any SSID land in the same inbox, accessible from any device.
IGNORE: Block messages from specific callsigns. IGNORE KK7PW stops storing their messages. UNIGNORE KK7PW reverses it. IGNORE shows your block list.
SPLIT: For self-testing, SPLIT 7 gives -7 its own inbox so you can message yourself across SSIDs. UNSPLIT 7 merges back.
Bot filtering: Messages from known service bots are not stored in your inbox. Filtered callsigns: EMAIL, EMAIL-2, SMSGTE, WXBOT, WXYO, WXNOW, REPEAT, WHO-IS, ANSRVR, APRSPH, SOTA, POTA, MYANET, WLNK-1, WINLINK, CQSRVR, NTSGTE, JOKE, IRC, SMS, WTSAPP, WXCAN, WXSVR-AU, SHUB, MPAD, ODALRT-1, QUIZME, APSPOT, FIND, MAIL, DAGA, MTHOOD, 4FUN, WHO-15.
Maintenance & Contact
QRX has a nightly maintenance window from 0300-0500 UTC. The service remains running but there may be brief periods of unavailability.
Found a bug or have a suggestion? Email qrx@forkum.net.
Changelog
v1.4.0 — 2026-07-13
- Machine sync protocol —
QS (status), QF/QF ALL (fetch), QD (done), QW (per-sender counts). Compact pipe-delimited responses for APRS client apps — built for Ragchew and Graywolf integration.
- R just works — after a new-message notification, a bare
R reads the new message. No more "Send I first" when your inbox was previously read out.
- SET/GET TIMEOUT — tune how long QRX waits for your ACK before storing a message (60–3600s).
- GET SETTINGS — see all your current settings in one response.
- Inbox capacity raised from 20 to 100 messages.
v1.3.7–v1.3.11 — 2026-05-04 to 2026-05-14
- New IDENT station types: PHONE, PORTABLE, TRACKER, REPEATER. Dash prefix accepted (
SET IDENT -7 HT).
- Auto-answer detection broadened to all clients (Xastir "No one at the keyboard" etc.), and the rate limiter now goes silent to starve reply loops.
- Bot protection thresholds are now configurable; fan-out threshold raised after a Hamvention false positive.
v1.3.0 — 2026-04-25 (+ stability hotfixes v1.3.1–v1.3.6)
- SET IDENT — label your SSIDs (HT, MOBILE, BASE, DIGI, IGATE, WX, UNMANNED). Unmanned stations stop triggering beacon notifications.
- WHICH —
WHICH <call> tells you the best SSID to reach a station, scored from QRX activity and aprs.fi data.
- Automatic unmanned detection — digis, igates and weather stations are fingerprinted by tocall and skipped for notifications.
- Automatic bot protection — fan-out and notification-bounce loops are detected and blocked without operator intervention.
- Hotfixes: reliable multipath body delivery, bounce false-positive fix, command crash alerting, and a 75-case integration test suite.
v1.2.2–v1.2.8 — 2026-04-11 to 2026-04-23
- R/N split —
R re-reads the current message; N force-advances past a stuck delivery.
- Mangled packet repair — commands whose msg-id got corrupted in transit (
R 01748) are recovered instead of dropped.
- Kenwood auto-ack support — firmware "Recieved Message" replies now count as delivery confirmations.
- Packet sanitization — null bytes and control characters from misbehaving igates are stripped safely.
- ANSRVR group-relay traffic is filtered so group chatter no longer fills inboxes.
v1.2.1 — 2026-04-06
- WATCH retired — QRX now notifies on all unread messages by default. No need to configure watches.
- IGNORE — block messages from a specific callsign.
IGNORE KK7PW to block, UNIGNORE KK7PW to unblock, IGNORE to list.
- Fixed: UNREG now properly cleans up all data (splits, watches, ignores, notices).
v1.2.0 — 2026-04-05 Happy Easter!
- RLY — relay your last-read message directly to your radio as if the original sender sent it. Read a message with R, then send RLY.
- RLY ALL — relay your entire inbox at once. Messages are paced and delivered oldest first.
- Relay ACK tracking — when your radio ACKs a relayed message, it's automatically deleted from your inbox.
- Relay loop prevention — two layers prevent QRX from re-storing its own relayed packets.
- Relay kill switch — operators can disable relay instantly via config + SIGHUP.
- APQRX tocall — officially registered software identifier for QRX.
- Smarter notifications — "New msg from CALL. N waiting. Send R or RLY" on first notification, 8-hour reminders for unread messages, no more repeated alerts.
- 104 automated tests passing — comprehensive test suite for relay, notifications, commands, and core logic.
v1.1.6 — 2026-04-04
- Fixed: case sensitivity bug — messages sent to lowercase callsigns (e.g., f8ghe-7) are now matched correctly. (Thanks F8GHE for the report)
- Smarter notifications — any beacon triggers notification if your inbox has unread messages, regardless of which SSID the message was addressed to. Matches how radios actually handle multi-SSID ACKs.
- BUG command — send BUG to QRX to dump a 1-hour packet trace for debugging. Includes 15-minute cooldown to prevent abuse.
- APZQRX tocall — QRX now identifies itself with a proper software identifier in all outgoing packets. Permanent APQRX registration pending.
- Debug logging overhaul — logs now capture only QRX-relevant events instead of the full APRS-IS firehose, improving debuggability and log retention.
- Notification spam fix — QRX only notifies once per new message. No more repeated reminders for messages you already know about.
v1.1.5 — 2026-04-01
- Central inbox — one inbox per callsign. Messages to any SSID land in the same place, accessible from any device.
- WATCH — opt-in per-SSID notifications. WATCH 7 notifies you when -7 gets mail. WATCH ALL for everything. (Thanks KM4ACK for the feedback)
- WATCH ranges — WATCH 1-9 to watch multiple SSIDs at once
- SPLIT/UNSPLIT — split an SSID into its own inbox for self-testing
- HELP <cmd> — contextual help for any command
- Automated APRS-IS test suite (22/24 passing against QRXDEV)
v1.1.4 — 2026-03-31
- Fixed: READ no longer deletes messages from inbox — previously, reading a message marked it as read and removed it permanently. Messages now stay until you explicitly delete with D or CLR.
- UNREG ALL — removes all SSIDs of your base callsign, symmetric with REG ALL
- Exponential backoff retransmission — 30s, 60s, 120s, 240s, 480s (APRS standard decay algorithm, 5 retries over ~15 min)
- Expanded bot filter — 38 known service callsigns blocked, hot-reloadable via config
- Flexible position parser — catches non-standard beacon formats for notification
- Follow-up commands (A, D) work immediately after reading
v1.1.3 — 2026-03-30
- Reliable message delivery — READ responses are now tracked for delivery confirmation. QRX waits for your radio to ACK each message. If no ACK within 30 seconds, QRX retransmits up to 3 times (4 total attempts over 2 minutes). Cursor only advances after confirmed delivery. If all retries fail, your next R re-delivers the same message so nothing is lost. (Thanks KB1GQZ for the feedback)
v1.1.2 — 2026-03-30
- Persistent message dedup — if your radio queues retries then powers off, those stale retransmissions won't create duplicate messages when it comes back online hours later
- Automatic health checks — QRX stays green on the service registry
v1.1.1 — 2026-03-30
- Bot message filtering — WXBOT, WLNK-1, and other service messages no longer stored in your inbox
- SIGHUP hot-reload — config changes applied without restart or downtime
v1.1.0 — 2026-03-30
- WHO command (W) — see who messaged you, grouped by callsign
- ACK command (A) — send read receipt to original sender
- Sender notifications — senders are told their message was stored
- STATS command — system-wide statistics with all-time counters
- Bulletin announcements — periodic BLN advertising QRX
- Bot loop protection — known bots are silently ignored
- Persistent stats — all-time message and registration counters
- Inbox full notification — alerts when oldest messages start dropping
- Max 5,000 registered stations
v1.0.0 — 2026-03-29
- Initial release with voicemail-style message playback
- Dynamic APRS-IS filtering, MIC-E beacon detection
- Single-letter command aliases (I, R, D, S, H)
- Registered on aprs.hemna.com service registry