Skip to content

Latest commit

Β 

History

2,073 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

POTACAT β€” Hunt faster. Operate anywhere.

🐱 POTACAT

Hunt faster. Operate anywhere.

Eight live spot sources on one screen, one-click CAT tuning β€” then hand the whole station to your phone.

Hunt POTA, SOTA and DX from the desk. Work SSB, CW, FT8 and SSTV from the car, the hotel, or the trailhead.

Free and open source Β· Windows Β· macOS Β· Linux Β· 200+ radios Β· No subscription, ever

The POTACAT spot table β€” POTA, SOTA, DX cluster and RBN spots merged into one sortable list, each row one click from a tuned radio

⚑ No account, no API keys, no port forwarding. Install it, pick your radio, click a spot. β†’ Install


"I want you to know I love this platform. It is the most awesome POTA platform I have seen." β€” K5MUL, POTACAT Discord

Casey K3SBP and Jason KM4ACK discussing POTACAT

▢️ POTACAT on KM4ACK's channel β€” a walkthrough of what it does and why it was built



πŸ“» Why POTACAT Exists

Chasing an activation used to mean three browser tabs, a cluster window, and a hand on the VFO knob. By the time you'd read the spot, typed the frequency, and picked the right sideband, the pileup had moved on.

POTACAT collapses all of that into one row and one click. Every major activity network β€” POTA, SOTA, GMA, the DX cluster, RBN, WSJT-X β€” lands in the same table, de-duplicated and filtered down to the bands you can actually work. Click the row and the radio is already there: frequency, mode, CW offset, and a log entry pre-filled with the park reference.

Then it keeps going. The same app that drives your rig serves it to your phone, so the station doesn't stop working when you leave the house.

Half of it is a spot aggregator that happens to control your radio. The other half is your entire shack, on a screen the size of your hand.

Works with FlexRadio, Icom, Yaesu, Kenwood, Elecraft, QRP Labs β€” and 200+ more rigs via Hamlib. Written by Casey, K3SBP, shaped every week by the operators who use it, and shipped most weeks.


⚑ Install

Grab the current build from the Releases page. Every release ships Windows, macOS and Linux binaries in both Intel/AMD (x86-64) and ARM (arm64/aarch64) flavours.

Platform Architecture Download
Windows 10/11 64-bit Intel/AMD POTACAT-Setup-<ver>.exe β€” installer (recommended)
Windows 10/11 64-bit Intel/AMD POTACAT-Portable-<ver>.exe β€” no install, run from anywhere
macOS β€” Apple Silicon (M1–M4) arm64 POTACAT-<ver>-arm64.dmg
macOS β€” Intel x86-64 POTACAT-<ver>.dmg
Linux β€” PC / server x86-64 POTACAT-<ver>.AppImage Β· potacat_<ver>_amd64.deb Β· potacat-<ver>.x86_64.rpm
Linux β€” Raspberry Pi 4/5, ARM SBC arm64 POTACAT-<ver>-arm64.AppImage Β· potacat_<ver>_arm64.deb Β· potacat-<ver>.aarch64.rpm
Which architecture do I have?
  • Windows β€” 64-bit Intel/AMD. There is no ARM Windows build.
  • macOS β€” β†’ About This Mac. "Apple M1/M2/M3/M4" is arm64; "Intel" is x86-64.
  • Linux β€” run uname -m. x86_64 takes the amd64 build, aarch64 the arm64 one.

The *-mac.zip and latest*.yml files on the Releases page are what the in-app auto-updater fetches. You don't need to download them.

POTACAT isn't code-signed yet, so the first launch takes one extra click on Windows and macOS. That's normal for an independent app and doesn't mean anything is wrong β€” signing is on the roadmap, and these steps go away with it.

πŸͺŸ Windows

  1. Download POTACAT-Setup-<ver>.exe and run it.
  2. If you see "Windows protected your PC" β€” click More info β†’ Run anyway.
  3. If the installer won't start at all β€” right-click the .exe β†’ Properties β†’ tick Unblock β†’ OK, then run it again.

Prefer not to install? POTACAT-Portable-<ver>.exe runs straight from your downloads folder. Settings live in the same place either way. More Windows detail in INSTALL.md.

🍎 macOS

  1. Download the .dmg for your chip β€” -arm64.dmg for Apple Silicon, plain .dmg for Intel.

  2. Open it and drag POTACAT into Applications.

  3. Apple Silicon Macs will say "POTACAT is damaged and can't be opened." It isn't damaged β€” that's what macOS says about any app built without a paid Apple Developer ID. Open Terminal and paste this once:

    sudo xattr -dr com.apple.quarantine /Applications/POTACAT.app

    Enter your Mac password, then open POTACAT normally. On Intel Macs, right-click β†’ Open β†’ Open is usually enough.

🐧 Linux

Pick one format. AppImage is the most portable; .deb and .rpm integrate with your package manager and ship an AppArmor profile so the full Chromium sandbox stays on.

# AppImage β€” any distro
chmod +x POTACAT-<ver>.AppImage && ./POTACAT-<ver>.AppImage

# Debian / Ubuntu
sudo apt install ./potacat_<ver>_amd64.deb        # or _arm64.deb on a Pi

# Fedora / RHEL / openSUSE
sudo dnf install ./potacat-<ver>.x86_64.rpm       # or .aarch64.rpm on a Pi
Serial ports and the sandbox β€” two things worth doing up front

Serial permissions. If POTACAT can't see your radio's serial port, add yourself to the dialout group and log out and back in:

sudo usermod -aG dialout $USER

Sandbox. On hardened or very new distros, Chromium's sandbox needs unprivileged user namespaces. POTACAT detects that and falls back on its own. If an AppImage still refuses to start, run it with --no-sandbox.


πŸ• The First Five Minutes

1. Connect your rig. Settings β†’ My Rigs β†’ pick a connection type:

Your radio Connection type
FlexRadio 6000 / 8000 SmartSDR CAT β€” auto-discovers on your LAN
Icom IC-7300, Elecraft KX2/KX3, Yaesu FT-891, most others Hamlib β€” 200+ models
QRP Labs QMX / QDX, Win4Yaesu Serial CAT (Kenwood protocol) β€” pick the port and baud
IC-705, IC-9700, IC-7610, or wfview's wfserver Icom Network β€” CI-V over IP

Per-radio walkthroughs with known-working settings are in the rig setup guides.

2. Set your grid square. Settings β†’ your Maidenhead grid, e.g. FN20jb. Distances, the map, and the great-circle arc all key off it.

3. Pick your spot sources. Start with POTA, SOTA and DX Cluster from the toolbar; add RBN, WSJT-X or SSTV as you need them.

4. Click a spot. The rig moves β€” frequency, mode, CW offset β€” and the log dialog opens pre-filled with the callsign, park or summit reference, and operator name.

5. Take it with you. On your home Wi-Fi, open ECHOCAT on your phone, tap your desktop, and click Approve. That's the entire pairing flow. Leave the house and the station comes along.

POTACAT map view β€” colour-coded spot markers by source, home QTH marker, and a great-circle arc to the station being worked

"POTACAT shines in its ability to make hunting easy, whether that's POTA, SOTA, DX or others." β€” K8IKO


πŸŽ›οΈ What's Inside

  • πŸ“‘ Eight spot sources, one table. POTA, SOTA, GMA, DX Cluster, RBN, WSJT-X, PSKReporter and a DXpedition feed β€” merged, de-duplicated, and filtered by band, mode, distance and what you still need. Hide worked parks; hide anything outside your license privileges.
  • 🎯 One-click QSY. Click a spot and the rig tunes β€” frequency, mode and CW offset. FlexRadio native, Hamlib, or direct serial.
  • πŸ—ΊοΈ Table, map and split views. Sortable, resizable table; Leaflet map with per-source marker colours, day/night terminator, and a pop-out window driven by the same filters.
  • πŸ“» Flex Direct. POTACAT drives a FlexRadio all by itself β€” tune, listen and key CW with no SmartSDR running. An SWR guard aborts TX into a bad match before your finals notice.
  • πŸ”Š FT8 built in. JTCAT runs FT8 and FT4 with auto-sequencing, a-priori decoding and clock-sync checks. Spot Target is the fun part: click a callsign anywhere in the app and JTCAT works them for you.
  • πŸ“¬ JS8 mailbox. Keyboard-to-keyboard when you're at the desk; a message drop that quietly collects @ALLCALL and directed traffic when you're not.
  • 🌍 WSPR beacon & footprint. Run a 1-watt beacon overnight, hop bands on a schedule, and wake up to a map of every receiver that actually heard you β€” then spend your real operating time on the band that was working.
  • πŸ–ΌοΈ More digital modes. SSTV send and receive, PSK31 with a live keyboard, FreeDV (including RADE), and the Mercury HF data modem for chat and file transfer. No extra software to babysit.
  • πŸ“– Logs everywhere you do. Local ADIF always, forwarded live to Log4OM, DXKeeper, Ham Radio Deluxe, N3FJP and Wavelog, with Cloud sync across your devices. Import a POTA CSV for "NEW park" badges, or an ADIF log for a DXCC band/mode matrix.
  • πŸ‘₯ Multi-operator. Shared shack? Each operator gets their own callsign, logbook, macros and watchlist on one install. Ctrl-click several spots to log a multi-op activation in one go.
  • 🏁 Contest & event aware. 13 Colonies, WRTC, America 250 β€” event checklists and banners show up on their own, tick themselves off as you log, and sync to your phone.
  • πŸ”­ Rotators, propagation, alerts. Rotor-EZ / RotorCard / DCU-1 control, a solar and band conditions panel, watchlist desktop notifications, and a scan mode that steps through filtered spots on a dwell timer.

πŸ“Ά Your spots, on the panadapter

If you already stare at a waterfall all day, the spot table shouldn't be somewhere else on the screen. Every spot POTACAT is tracking gets pushed onto the scope as a labelled marker sitting on the actual frequency β€” you watch the band the way you already do, and the callsigns are simply there, on the signals, updating as the feeds do. Click one and POTACAT does the rest.

Spot callsigns rendered as labelled markers on a FlexRadio panadapter, sitting on the actual signals

Works with SmartSDR (FlexRadio 6000/8000), AetherSDR, Thetis for ANAN / Apache Labs / Hermes-Lite over TCI β€” or your rig's own built-in panadapter.

"AetherSDR and POTACAT is going to be a game changer. It's exciting times to be a Flex user." β€” N5ZC

Full documentation β†’


πŸ“± ECHOCAT

Your radio, anywhere you are.

ECHOCAT spots screen on iPhone β€” POTA spots with distance, mode and a Log button Β Β Β  ECHOCAT VFO screen β€” tuning knob, tuned spot detail and a large PTT button

Download ECHOCAT on the App Store Get ECHOCAT on Google Play

$9.99, once. No subscription.

Not a rented station with a queue β€” your rig, your antenna, your logbook, in your pocket. Pair your phone to POTACAT once and the station follows you everywhere.

  • πŸŽ™οΈ SSB. Real-time two-way audio over WebRTC with a hold-to-talk PTT, plus pre-recorded voice macros for when you'd rather not narrate the parking lot.
  • ⌨️ CW. Plug a paddle into your phone and call CQ through your home station β€” real-time keying with local sidetone, so it feels like sitting at the desk. Works with TinyMIDI, HaliKey MIDI, Vail Adapter and VBand. One-tap macros handle the exchange when one hand needs to stay on the wheel.
  • πŸ“Ά FT8 / FT4. Tap a spot, let auto-sequencing run the exchange, and log a new entity before you turn out the lights. Your shack PC does the decoding; your thumb does the DXing.
  • πŸ–ΌοΈ SSTV. Snap a photo, drop your callsign on it with a template, and send it out over HF from wherever you are. Receive works too β€” watch images paint in line by line.
  • πŸ“¬ JS8 and WSPR. Read the mailbox from the passenger seat; check overnight beacon spots with your coffee.

"I'm sitting in my hotel in Boston, connected to my rig in Upstate NY, and just worked a station in Hungary… it's like magic." β€” KD2TJU

"Sitting here in a parking lot waiting on my kid to finish practice. I got a POTA, three different W1AWs, Uruguay, and Mexico on remote CW… This project is amazing." β€” AA6C

"I operated for a week from family & friends' homes and hotels. Stations I regularly talk to said they couldn't tell I was working remote on SSB." β€” KQ4QWH

Prefer a browser? The web client built into POTACAT is free and does most of the same job over your LAN or Tailscale.

No radio yet? Listen to SDR receivers across the globe in ECHOCAT Web β€” no install, no account, just sdr.potacat.com.

How it all connects

Your shack computer is the station. Everything else is a remote.

                                                    β”Œβ”€β–Ά  Your phone β€” ECHOCAT
                                                    β”‚    SSB Β· CW Β· FT8 Β· SSTV
  Your radio  ──cable or IP──▢  Shack computer  ────┼─▢  Your laptop at the office
  any of 200+ rigs               running POTACAT    β”‚    POTACAT as a client
                                                    └─▢  Your buddy's phone or tablet
                                                         via a Share My Rig guest pass

Everything connects back to POTACAT β€” over your LAN, your Tailscale network, or the POTACAT Cloud Tunnel at yourcall.potacat.com, whichever reaches home first. No port forwarding, no static IP, no monthly fee.


🀝 Share My Rig

Lend your station, not your keys. A Guest Pass lets a friend β€” or a ham with no radio at all β€” operate your station for a window you control. Email them a link; that's the whole setup.

  • βœ“ Privilege-aware. Pick their license class and POTACAT enforces the band edges for them.
  • βœ“ Power-capped and time-boxed. Set a max TX power and an expiry from 1 hour to 30 days. Revoke any pass instantly.
  • βœ“ Legal by design. Station, operator and control-op callsigns are recorded per Β§97.119, and guest QSOs log to their logbook.

"My father-in-law in assisted living isn't doing his physical therapy like he's supposed to, so I'm going over the next few weeks to work with him β€” and his reward is getting on the air." β€” W7RTA, POTACAT Discord

"Being able to limit their TX power is fantastic!!!" β€” KB2UXB


☁️ POTACAT Cloud

Behind a CGNAT? We punch through.

Plenty of hams set everything up correctly and still can't reach the shack from the road. Usually it isn't the router β€” it's Carrier-Grade NAT, what an ISP does when it runs out of IPv4 addresses. Outbound traffic works fine, which is why you never notice, but nothing on the internet can start a connection back to you. Port forwarding does nothing, because the block sits a layer above your router, on hardware you don't control. It's the default on most cellular home internet and Starlink, and increasingly common on fixed wireless and rural fibre.

How to tell in about thirty seconds
  • Open your router's status page and read its WAN IP. Then search "what is my IP" in a browser. If the two don't match, you're behind a CGNAT.
  • If that WAN address starts with 100.64 through 100.127, that's the range reserved for exactly this β€” a dead giveaway.
  • You forwarded a port, double-checked it, and an outside port checker still reports it closed.
  • Your ISP offers a static or public IP as a paid add-on. That offer exists because the default isn't one.

POTACAT Cloud gives both ends an outbound-only path to an encrypted relay and meets them in the middle β€” no ports opened at either end. POTACAT tries a direct connection first and only falls back to the relay when the network refuses. You don't choose, and you don't configure anything.

$5/month, entirely optional. Memberships run through Buy Me a Coffee, so that's where the link lands β€” cancel any time, from their side, without asking us. The desktop app stays free and unsubscribed; LAN and Tailscale remain free. Cloud is only for operators whose network won't let them home.


πŸ”§ Build from Source

POTACAT is open source, telemetry included β€” clone it, audit it, fork it. Requires Git and Node.js 22+.

git clone https://github.com/Waffleslop/POTACAT.git
cd POTACAT
npm install
npm run build-natives     # FT8 / JS8 / FreeDV native decoders
npm start

On Linux, install the build dependencies first:

sudo apt install build-essential python3 libudev-dev cmake libhamlib-utils

build-natives needs a C/C++ toolchain β€” Xcode Command Line Tools on macOS, Visual Studio Build Tools on Windows. Skipping it still runs, but FT8 falls back to a slower WASM decoder with fewer features, and JS8 and FreeDV are unavailable.

To package installers:

npm run dist:win        # installer + portable
npm run dist:mac        # .dmg  (run this on a Mac)
npm run dist:linux      # AppImage + .deb + .rpm

Output lands in dist/. The dist:* scripts refuse to package until build-natives has run β€” a build without the native decoders ships a broken JS8 and a degraded FT8. Set POTACAT_SKIP_NATIVE_CHECK=1 if you really mean to override that.

Patches welcome β€” see CONTRIBUTING.md.

πŸ“ Headless / Raspberry Pi

Run POTACAT with no GUI to serve only the remote interface β€” ideal for a Pi sitting next to the radio:

npm start -- --headless

CAT control, spots, the FT8 engine, the CW keyer and ECHOCAT all work headless.


πŸŽ“ Also from the POTACAT Workshop

Learn Morse code the way it's meant to be heard. An instant character recognition trainer for iOS and Android: characters at full speed from day one, answers keyed on your own paddle, and a Space Invaders clone you play by ear. Free.

An activation planner for finding the parks and summits worth your Saturday β€” what's near you, what's never been activated, and where the gaps in the map are.


πŸ’¬ Community & Support

Setup help, feature requests and bug reports all happen on Discord, where the developer answers in person. Release notes name the operators who reported each issue β€” read the changelog and judge the pace yourself.

πŸ’¬ Discord potacat.com/discord
πŸ“š Documentation potacat.com/docs
πŸ›Ÿ Support & FAQ potacat.com/support.html
πŸ“» Rig setup guides potacat.com/radios.html
πŸ› Bug reports GitHub Issues
πŸ“ Changelog Releases
β˜• Support development potacat.com/coffee

Your data stays yours. Logs live in a local ADIF file on your machine. Telemetry is opt-in, anonymous, and published publicly β€” what you see there is everything that gets collected. Full privacy policy and terms.

"I'd been wondering whether this could be integrated into POTACAT β€” and a few days later you release that feature. Amazing." β€” DA2PK

"I love this stuff! 77 years old in ABQ, NM." β€” N2GJ


βš–οΈ License

POTACAT is licensed under the GNU General Public License v3.0 or later, because it incorporates the JS8 modem from JS8Call-improved. Files written for POTACAT carry an SPDX-License-Identifier: Apache-2.0 header and are additionally available under the Apache License 2.0 from the copyright holder; the combined work you download is GPLv3. See NOTICE.

"POTACAT" and "ECHOCAT" are trademarks of Casey Stanton. The license covers the source code, not the names β€” see TRADEMARKS.md. If you fork and redistribute a modified build, please give it a different name.

ECHOCAT mobile is a separate, independent program that talks to POTACAT over a documented network protocol and contains no GPL code.

Third-party software

The JS8 modem is compiled in from JS8Call-improved (GPLv3), vendored under third_party/js8call/. Other GPL tools ship as separate executables invoked over a process boundary. See NOTICE for the full list.


Ready to chase some parks?

⬇ Download POTACAT Β· Join the Discord Β· Buy me a coffee


"Just worked pota station in alaska over the northpole now. found him tnx to potacat πŸ™‚" β€” LB3AG


73, Casey K3SBP Β· Built for the ham radio community

/\_/\ meow /\_/\

About

POTACAT is a Win/Linux/Mac desktop app for ham radio operators that aggregates real-time POTA, SOTA, and DX spots and lets you instantly tune your radio via CAT control with a single click. It also enables full remote operation (audio, PTT, logging) from your phone through a self-hosted browser interface.

Resources

Contributing

Stars

54 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages