Goblin Modem: goTenna radio networking

Install this package on each computer attached to a radio. It includes the GUI, radio driver, mesh address/name discovery, SOCKS5 proxy, gateway controls and radio Mosh launcher. The package manager installs the required Goblin Mosh and Python dependencies. Internet sharing starts off; enable it only on the M computers with Internet uplinks in an N-radio mesh.

Mac installation

Apple Silicon on macOS 26 Tahoe. Install Homebrew first, then run:

brew tap goblinreactor/tap https://brew.goblinreactor.com/homebrew-tap.git
brew update
brew install --cask goblinreactor/tap/goblin-modem
open /Applications/GoblinModem.app

The installer prompts for administrator authentication to install the helper. This release is ad-hoc signed, and its installer is not Developer ID signed or Apple-notarized. The Homebrew cask verifies the package checksum and installs its dependencies.

Package contents

The Mac package includes the menu bar app, privileged launchd helper, radio IP/SOCKS driver, helper repair/removal tools, and radio Mosh launcher. Its Homebrew cask installs Python 3.14 and the radio-capable Goblin Mosh package. The initial binary target is Apple Silicon on macOS 26 Tahoe. The app is ad-hoc signed; the installer is not Developer ID signed or notarized. Use the Homebrew cask to install the package and its dependencies.

The Linux package includes the browser GUI, desktop entry, radio IP/SOCKS driver, udev permissions, polkit launcher and radio Mosh launcher. APT installs Python, OpenSSH client/server, Goblin Mosh, systemd and polkit dependencies. The first binary target is amd64 on Ubuntu 22.04/24.04/26.04 and Debian 12/13. The Linux GUI needs a graphical login with a browser and a polkit agent. On a headless machine use goblin-radio directly or forward the loopback GUI with SSH. The package does not install a native Linux PPP modem UI.

Build

Use the matching public source archives for both projects. Go 1.26.3 or newer is required; the modem release archive includes its Go dependencies in Driver/vendor. In a developer checkout first run make vendor.

make test GO=/path/to/go
make linux-deb ARCH=amd64 GO=/path/to/go
# On a Mac with Command Line Tools and Go, or GOBLIN_DRIVER_PREBUILT:
make macos-pkg

The Mac runtime dependencies are installed with:

brew tap goblinreactor/tap https://brew.goblinreactor.com/homebrew-tap.git
brew install goblinreactor/tap/goblin-mosh [email protected]

For reproducible Linux Mosh dependencies, build the matching Goblin Mosh source with its packaging/debian/build-release.sh inside each target suite's native build environment. Its source and binary packages are published alongside Goblin Modem, with the same archive signature. Goblin Modem requires Goblin Mosh 1.4.0+goblin20260918.1 or newer.

Install and use

# macOS
brew install --cask goblinreactor/tap/goblin-modem
open /Applications/GoblinModem.app

# Debian/Ubuntu, after configuring apt.goblinreactor.com for this suite
sudo apt update
sudo apt install goblin-modem
goblin-modem

On Linux the Applications menu has Goblin Modem. It authenticates through polkit to start the controller as your user with CAP_NET_ADMIN and serial access, then opens its browser UI at http://127.0.0.1:8777. Closing the browser leaves the radio connected; Disconnect or goblin-modem --stop stops it. The controller does not auto-start or connect a radio on package installation.

On both computers choose the USB radio, share a freshly generated network key between your devices, and enable the peer IP interface if this computer should receive Mosh connections. Internet sharing defaults off; enable it only on computers that should advertise themselves as Internet gateways. Save and Connect. Wait for the other computer in the peer list, then choose Open Mosh (Mac) or Mosh command (Linux). The default test uses management SSH to start the session and sends terminal traffic over the radio. Enable macOS Remote Login in System Settings if it must accept incoming SSH setup connections.

The launcher prefers package-managed Mosh binaries over older manual copies. It finds the remote server on both Homebrew and Debian paths. Nothing requires a source checkout. A missing Mac helper can be repaired from the app menu.

Upgrade and remove

brew upgrade goblinreactor/tap/goblin-mosh
brew upgrade --cask goblinreactor/tap/goblin-modem
brew uninstall --cask goblinreactor/tap/goblin-modem

sudo apt update && sudo apt upgrade
sudo apt remove goblin-modem

Removing Goblin Modem leaves user profiles and keys intact. The Mac uninstaller stops its helper and restores its managed filtering. The Linux uninstaller stops package controllers. Shared Python, Mosh and SSH dependencies are left for the package manager to manage. No package bundles a network key, user profile, SSH key, or signing key.

Website and same-version refresh

The project site is https://modem.goblinreactor.com/ and its static source is in html. Run make site-check, make site-serve, or make site-publish. The default publish destination is hail::distribution/modem.goblinreactor.com/. make linux-install and make macos-install build and install locally; use the Homebrew/APT commands above for public releases.

This preview was rebuilt in place at the user's request to replace satellite product labels with Wi-Fi and Modem. Existing custom labels and all other settings are retained. To refresh an already-installed copy at this version:

brew update
brew reinstall --cask goblinreactor/tap/goblin-modem
# Or on Linux:
sudo apt update
sudo apt install --reinstall goblin-modem

Source and verification

Complete source with vendored Go dependencies · Build and verification records · Signed checksum catalog · Catalog signature.

Source SHA-256: 12186690ec747f8023574019275369acfe6ba07889b057b99f44c3cc20c8b335. The source contains the Makefile targets vendor, test, linux-deb and macos-pkg. Matching Mosh sources and build recipes are listed in the catalog.