WsjtxWatcher is an Android companion app for WSJT-X and JTDX.
It can receive live WSJT-X traffic in two ways:
- direct UDP from the same local network
- a relay-backed
Third-party data source
The app shows decoded traffic in real time and can notify you when messages match your watched callsign patterns, selected DXCC entities, or other configured conditions. It is especially useful for remote monitoring and VHF / DX style watching.
When the app is in the foreground, you can watch live traffic directly. When it is in the background or the phone is locked, it can still raise notifications based on your configured rules.
Currently, the app supports Simplified Chinese and English.
- Android 8.0 and above
Use this mode when your phone and the WSJT-X / JTDX computer are on the same LAN.
In this mode:
- the app listens on the phone's local IP and UDP port
- WSJT-X or JTDX sends UDP packets directly to the phone
See: wsjtx-relay
Use this mode when the source is remote or when direct LAN UDP is not possible.
In this mode:
- a remote
wsjtx-relay-serveraccepts live relay connections - a
wsjtx-relay-clientruns near WSJT-X / JTDX and uploads live events WsjtxWatcherconnects to the relay server as a watcher- the app selects one available relay source and consumes its live events
This mode is live-only. It does not replay old decode history after reconnect.
- Open
Settings. - Keep
Data sourceset toUDP. - Enter your own callsign and Maidenhead locator, then adjust any notification settings you want.
- Return to the main screen and tap
Start Service. - In WSJT-X or JTDX, send UDP output to the app's displayed LAN IP and server port.
Make sure the computer running WSJT-X / JTDX and the phone are on the same local network.
- Deploy and start
wsjtx-relay-server. - Run
wsjtx-relay-clienton the station side so it can receive WSJT-X UDP locally and push events to the relay. - Open
SettingsinWsjtxWatcher. - Change
Data sourcetoThird-party data source. - Fill in:
Server URLShared SecretTenant ID
- Save settings.
- Return to the main screen and tap
Start Service. - Return to settings page and Open
Select sourceand choose the relay source you want to monitor.
If this is the first successful connection, the app will pair with the server certificate automatically by storing its fingerprint. If the server certificate changes later, use Re-pair server and connect again.
Data source- selects either
UDPorThird-party data source
- selects either
Callsign- your own station callsign
- used to highlight messages containing your callsign
- also used as the default watched callsign pattern when no custom pattern list exists
Location- your 4-character Maidenhead grid
- used for distance calculations when possible
Language- switches between Simplified Chinese and English
- the app saves settings, stops the background service, and exits so the new language can take effect after restart
LAN IP/Server Port- the local UDP address that WSJT-X or JTDX should send messages to
Server URL- relay server base URL
- use a value such as
wss://example.com:8443
Shared Secret- relay authentication secret
- must match the relay client and relay server
Tenant ID- the shared private ID used by both the relay client and the watcher
- think of it as the private relay room both sides must join
- use a long random value, not an easy name such as
homeortest
Relay status- current connection or reconnect state of the relay watcher
Test connection- validates URL, certificate pairing, and shared-secret authentication
Select source- opens the relay source picker
- the selected source becomes the preferred source for future reconnects
Refresh source list- reconnects to the relay and reloads the available source catalog
Re-pair server- clears the stored trusted fingerprint
- use this if the relay server certificate has changed
When the message matches specified callsigns- triggers notification or vibration when the decoded
de/dxcallsign matches one of your watched regex patterns
- triggers notification or vibration when the decoded
Specified callsign match target- chooses whether watched callsign matching checks the
transmitter, thereceiver, orboth
- chooses whether watched callsign matching checks the
Regex- opens the watched callsign regex editor
When a WSJT-X message is received- triggers notification or vibration for every decoded message
- mainly useful for VHF / DX style monitoring
When selected DXCC appears- triggers notification or vibration when the decoded
de/dxcallsign resolves to one of your selected DXCC entities
- triggers notification or vibration when the decoded
DXCC match target- chooses whether DXCC matching checks the
transmitter, thereceiver, orboth
- chooses whether DXCC matching checks the
Select DXCC- opens the DXCC selection list
When a QSO is logged- triggers notification or vibration after WSJT-X reports a completed logged QSO
Ignored callsigns- opens the ignored callsign list
- ignored entries are matched by
callsign + band
Ignored callsign match target- chooses whether ignored matching applies to the
transmitter, thereceiver,both, or neither
- chooses whether ignored matching applies to the
Auto-ignore the callsign after a logged QSO- automatically adds the worked DX callsign on that band to the ignored list after a logged QSO
Open notification settings- appears when Android notifications are disabled for the app
Open Log File- opens the app log for troubleshooting
Reset Database- clears cached grid information and the current decoded message list
Reset All- resets settings, clears cached data, and stops the listener service
Add to whitelist/Add background- opens Android battery or background settings that help the listener stay alive
- Ignored callsign matching target is configurable in settings:
transmitter only,receiver only,receiver/transmitter, ordo not ignore; ignored matching always usescallsign + band. - Selected DXCC matching is configurable in settings:
transmitter only,receiver only, orreceiver/transmitter. - Watched callsign regex matching is configurable in settings:
transmitter only,receiver only, orreceiver/transmitter. - Watched callsign regex matching is applied to parsed
de/dxcallsigns, not to the full decoded message text. Contains my callsigndetection is based on the full decoded message text.
Third-party data sourceis implemented through thewsjtx-relaystack.- The first successful relay connection stores the server fingerprint automatically.
- If the relay server certificate changes, use
Re-pair serverbefore reconnecting. - After relay reconnect, the app receives current source state and snapshot data, but not historical decode replay.
Add support for more message typesThird-party data source / relay supportSync QSO records from Cloudlog / Wavelog- Other enhancements
- Thanks to the ft8cn project, from which some interface configurations and utility classes were borrowed
- WsjtxUtils (https://github.com/KC3PIB/WsjtxUtils) for WSJT-X UDP message handling libraries
- Codex: extensive refactoring was performed on the legacy codebase using Codex
This project is licensed under The Unlicense.
This is free and unencumbered software released into the public domain.
Anyone is free to copy, modify, publish, use, compile, sell, or
distribute this software, either in source code form or as a compiled
binary, for any purpose, commercial or non-commercial, and by any
means.
In jurisdictions that recognize copyright laws, the author or authors
of this software dedicate any and all copyright interest in the
software to the public domain. We make this dedication for the benefit
of the public at large and to the detriment of our heirs and
successors. We intend this dedication to be an overt act of
relinquishment in perpetuity of all present and future rights to this
software under copyright law.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
For more information, please refer to <https://unlicense.org>


