How to use qsonaut

Step by step. Each part can be read on its own — pick one from the list on the left.

Installing

Packages are on the download page.

macOS

  1. Open the .dmg file and drag qsonaut into Applications.
  2. The program has no Apple certificate yet, so the first time open it with a right-click (or Ctrl-click) → Open → Open. After that it starts normally.
  3. If macOS says the application is “damaged”, remove the download flag in Terminal: xattr -dr com.apple.quarantine /Applications/qsonaut.app

macOS asks for keychain access — that is where the log's keys are kept. Choose Always Allow. When synchronising it asks about the local network: choose Allow. After an update the questions may come back, because without a certificate the system treats the new version as a new program.

Windows

Run the .exe installer (or the .msi). Windows shows “Windows protected your PC” — choose More info → Run anyway. On the first sync Windows Firewall asks about network access: for the local network, allow it on private networks.

Linux

The AppImage runs without installing: chmod +x qsonaut_*.AppImage and start it. The .deb (Debian, Ubuntu, Mint) and .rpm (Fedora, openSUSE) packages install with your package manager. The program needs WebKitGTK 4.1.

First start

The welcome screen offers three ways in:

Already have a log in another program? After creating the log, import it from ADIF (Import).

Station setups (prepared setups)

A setup describes the station as it is right now: callsign, operator, locator, QTH, power, the list of rigs and antennas, your own activation references and a contest. Every contact logged with a setup gets these details copied — changing the setup later never changes QSOs already saved.

Creating and switching

  1. On the Operating screen, click + Add in the top right corner.
  2. Name it (“Home QRO”, “Riverside park”), pick an icon and fill in the fields. Enter rigs and antennas separated by commas — the first is the default, the rest you pick on the radio bar.
  3. Your own references (POTA, WWFF, PGA…) appear once the matching program is turned on.
  4. Save. The setup's tile sits at the top of Operating; a click makes it active.

Setups are shared by all your devices — one prepared on the laptop is on the shack computer too. The pencil on a tile edits it, the bin deletes it everywhere (saved contacts stay).

Examples

Situation What goes into the setup
Home station, QRO Callsign, 6-character locator, 100 W, “IC-7610”, antennas “Doublet, Yagi 3el”.
Home station, QRP Same callsign and locator, 5 W, “IC-705”. One click switches between them.
Park activation Callsign with /P, the site's locator, the POTA reference (and WWFF, if the park is also a WWFF area). An activation counter appears on Operating.
Contest Pick the contest from the list (it comes from turned-on programs with a contest section) and the starting serial. The serial goes up by itself with each contact.

Logging contacts

The radio bar

Below the setups: band, frequency, mode, power, rig and antenna. Type the frequency and the band follows. What you set here applies to the next contacts.

The entry

  1. Type the callsign. The Other station panel shows earlier contacts with it, the bands you already have it on, and details from QRZ/HamQTH.
  2. RST reports default by mode (59/599; for FT8 they stay empty, since that report is in dB).
  3. Enter the other station's references (park, municipality…) in the program fields. qsonaut says right away whether it is a new reference and which contact with it this is.
  4. Enter or Save QSO saves the contact.

More fields reveals country and DXCC entity, CQ and ITU zones, IOTA and propagation (Es, tropo, MS, EME, satellite…). Propagation carries over to the next contacts until you change it. For a contact made a moment ago, click the clock and enter the UTC date and time.

What the screen tells you

The log and the map

The Log tab is the whole log: search by callsign, note and reference, the ★ new one and Unconfirmed filters, sorting by column. The gear icon sets the columns (including km), their order, width and the row density.

Synchronising devices

Each of your devices holds the whole log and works on its own, offline included. When devices can reach each other, they exchange changes. There is no server holding the log — which is why every device is a backup of the others.

Pairing — once per device

Both computers must be on the same Wi-Fi or wired network.

  1. On the computer that has the log: Devices → Show pairing code. The code has 8 digits (there is a QR code too) and is valid for 2 minutes.
  2. On the new computer: on the welcome screen choose I am adding this computer → Get ready to pair. Computers on the network are listed — choose the one with the log and enter the code.
  3. Back on the first computer, approve with Add this device. The log starts to transfer.

Local network and Internet

The sync status is in the top bar, next to the language button. A click opens a panel: Synchronise now, the state of every device and three switches.

Switch What it does
Local network Devices on the same network find each other and connect directly.
Internet From anywhere, with no router setup. The connection is encrypted; when a direct one is not possible it goes through a relay server, which carries the data but cannot read it.
Synchronise automatically Changes go out by themselves when the other device is reachable. Off — only when you click Synchronise now.
For the Internet route, both devices need to learn each other's route once: synchronise them one time on the same network with the Internet switch on at both ends. You can also paste a device's address by hand under Devices → Connection details.

The status in the bar

Disconnecting a device

A lost laptop is disconnected under Devices → the device's card → Disconnect device. It stops synchronising with the log; coming back takes pairing again with new keys.

Award programs

A program counts your progress towards an award from your log — locally, without sending anything anywhere. Each program is a signed file; the signature guarantees nobody changed its rules.

Ready-made programs

Program Program file Directory
DXCC — all entities dxcc-all DXCC entities
POTA — park hunter pota-hunter POTA parks
WWFF — area hunter wwff-hunter WWFF areas
PGA — Polish municipalities pga-hunter PGA municipalities
VUCC 6 m — squares vucc-6m —

The program texts are in Polish for now; the rules work the same in either language.

Adding a program

  1. Programs → + Add → choose the program file → Check program. The preview shows the author, the rules and the result on your log.
  2. Add to logbook, then turn the program on with its switch in the list.
  3. Load the directory with the directory icon in the top right corner of the program's details. With it you see not only the result but also what is still missing.

A turned-on program with references adds fields to the entry line (e.g. “POTA”) and to the station setups. The result is a local calculation — the official credit always comes from the organiser.

Export packages

More → Export packages prepares ADIF files to a program's rules — e.g. an activation log split by park and day. Before saving it shows what goes into the package and what data is missing.

Your own program templates

A program is written in YAML, in the Hamrule format. An example — a local award for 50 PGA municipalities worked on 80 m in 2026:

format: hamrule/2
id: my.pga.80m.2026
name: PGA · 80 m · 2026
version: 1
role: hunter              # hunter | activator | participant
reference_program: PGA    # reference fields appear in the entry line
presentation:
  icon: map               # map | globe | trophy
  unit: municipalities
  description: PGA municipalities worked on 80 m in 2026.
filter:
  start_utc: '2026-01-01T00:00:00Z'
  end_utc: '2027-01-01T00:00:00Z'
  bands: [80m]
  modes: []               # empty = all
  confirmed_only: false
scoring:
  points: 1
  unique_by: [remote_reference]
  multiplier: null
requirements:
  minimum_score: 50
  required_calls: []

What can be counted (unique_by)

Field Counts once per…
dxcc DXCC entity (from the contact's DXCC field)
remote_reference the other station's reference in reference_program
local_reference your own reference (activations)
gridsquare the other station's locator square (4 characters; VUCC_GRIDS too)
remote_call, station_call the other station's callsign, your own callsign
band, mode, utc_date band, mode, UTC day

Fields combine: [dxcc, band] counts each entity separately on each band. confirmed_only: true takes only contacts confirmed by card or LoTW. A logging section with a contest_id adds the contest to the station setups.

Signing and adding your own program

  1. Save the template as a .yaml file.
  2. Programs → + Add → choose the file. qsonaut recognises an unsigned template.
  3. Sign with my key and check. On the first signature the computer creates its own author key and keeps it in the system keychain. The preview shows the program's result on your log.
  4. Add to logbook. Want to pass the program on? Save signed file… — any qsonaut installs that file.
Sign a new version of the program (raise version) on the same computer — then it replaces the previous one. The signature ties the rules to their author and protects them from silent changes; a program signed by someone else cannot be signed as your own.

ADIF import and export

Import

  1. Log → the import icon → ADIF log… → choose the file.
  2. The preview shows how many contacts are new, how many are already in the log (these are skipped) and what cannot be read. Records without a station callsign can be assigned to the callsign you give.
  3. Import. Importing the same file again duplicates nothing.

The file must be UTF-8. Unknown ADIF fields are kept and come back in exports.

Export

The export icon: Whole log, Search results or Selected (select contacts in the table). Files for a particular program come from export packages.

QRZ.com and HamQTH

Callsign lookup

Settings → Callsign lookup: choose a service and sign in. When you type a callsign, qsonaut asks for the name, QTH and locator and fills in only empty fields. Answers are cached. HamQTH is free; QRZ.com without a paid XML subscription returns incomplete data (no locator or zones).

QRZ Logbook confirmations

  1. Settings → QRZ.com logbook: the callsign and the Logbook API key from the logbook's settings at logbook.qrz.com (needs an XML subscription or higher). A /P callsign has its own logbook and key.
  2. In the Log, select contacts → Confirm selected → QRZ.com → Send selected QSOs to QRZ, and later Check confirmations.

Confirmations by QSL file

Two stations using qsonaut confirm contacts directly, with no service in between:

  1. Select contacts with one station → Confirm selected → QSL file → Save QSL file… and send the file to them (e-mail, messenger).
  2. They: Log → import → Confirmations from the other station… → load the file, check the sender, accept the confirmations, then save a reply file.
  3. You load their reply the same way — matching contacts are confirmed.

The file is signed: the signature protects its content; check the sender through the channel it came by.

WSJT-X, JTDX and MSHV

  1. In qsonaut: Settings → WSJT-X · JTDX · MSHV → turn on Receive contacts from WSJT-X.
  2. In WSJT-X: Settings → Reporting → UDP Server 127.0.0.1, port 2237. JTDX and MSHV have a similar UDP server setting.
  3. Every Log QSO in WSJT-X lands in the log at once, completed with references, equipment and power from the active setup.
Using GridTracker as well? Set a multicast address in WSJT-X, e.g. 224.0.0.1, and the same address in qsonaut (Advanced) and in GridTracker — both programs get the same contacts.

Recovery kit

The computer the log was created on holds its master key — the one that adds and disconnects devices. Settings → Log recovery kit saves that key in a passphrase-protected file (at least 12 characters). Keep the file off the computer, separate from the passphrase.

If you lose that computer, choose I am recovering a log on a new one, point to the kit and enter the passphrase. The contacts come from your other devices when they sync (or from an ADIF export) — the kit carries the key, not the log.

Data and privacy

Something missing, or working differently from what is written here? Let me know and I will fix it.