goblin modem_

Wi-Fi · Modem · Radio

A small link.
A real connection.

Connect a USB modem that uses AT commands on your Mac, or link nearby Mac and Linux computers with goTenna Mesh (Gen 2) consumer radios. Goblin Modem has been tested with the Globalstar GSP-1700 satellite phone.

Development preview / macOS + Linux

Goblin, a fluffy black and white Silkie chicken drawn in ink
A little bandwidth. A lot of possibility.
Apple Silicon / macOS TahoeDebian + Ubuntu / amd64goTenna Mesh / Gen 2 consumer radiosSOCKS5 for selected apps

01 / Your connection, your choice

Know the connection.
Choose what uses it.

A slow or metered connection should still be useful. Bring up the link, see who is reachable, and choose which traffic gets to use your bandwidth.

01

Wi-Fi

Use an existing network: a hotspot, a tether, or your ordinary Wi-Fi. The Mac app can apply traffic rules to a chosen interface and gateway.

02

USB modem

Goblin Modem works with USB modems that expose a serial port and accept AT commands for PPP dial-up connections on macOS. Set the port, dial string and initialization commands your modem needs. Tested with the Globalstar GSP-1700 satellite phone.

03

Radio

Works with goTenna Mesh (Gen 2) consumer radios connected over USB. Plug one into each computer. Mac and Linux share the radio driver, compressed IP transport, peer discovery and local SOCKS5 proxy.

The Mac has a native menu bar app with Wi-Fi/network, modem and radio controls. Linux has a browser GUI and desktop launcher for radio networking; configure its Wi-Fi or modem uplink with the operating system’s usual tools.

macOS / Protect a metered link

Control the packets.
Including system traffic.

Background services can spend a narrow link’s bandwidth before you open an application. Goblin Modem uses macOS’s kernel packet filter, pf, to block traffic on the interface you choose and permit only the traffic your rules allow.

That includes system-level communication that an application-oriented userspace tool may miss or may not expose as a useful per-app control. Rules can match protocols, destinations and ports; for local TCP and UDP connections, they can also match the owning user or group. You can permit your SSH and Skiff sessions while keeping other users and background services off the link.

How does this compare with TripMode?

TripMode offers per-app controls through Apple’s Network Extension framework. Goblin Modem gives you interface-level packet rules, including a default block for traffic without a matching allow rule. This is a difference in control and filtering layer: current TripMode versions can also block system apps. Its documented Apple-app bypass affected macOS 11.0–11.1 and was fixed in 11.2. TripMode’s support notes ↗

These packet-filter controls are part of the Mac app. The Linux GUI manages the radio link; Linux uplink firewall policy remains with your system’s firewall tools.

02 / A network without a central router

Many radios.
A few ways out.

Give the radios one shared network key and distinct identities. Computers discover names and addresses locally. There is no DHCP server to find first.

Some computers may have an Internet connection while others have only a radio. Turn on Share Internet on the connected computers to offer their uplinks to the mesh. A computer without Internet can then send selected applications through a nearby gateway, using its local SOCKS5 proxy.

Sharing starts off. Gateway priority, then discovered hop count, determines the automatic choice; you can also prefer a particular gateway.

Choose your Internet gateways ↗

03 / A small terminal, doing real work

A shell.
A little mathematics.

An 80 × 25 terminal, carried across two goTenna Mesh radios. Goblin Skiff connects to a shell running Goblin Purrfect, where equation source becomes a mathematical preview sent with DjVu compression.

goTenna Mesh radios · Skiff + DjVu · 80 × 25Goblin Purrfect
Recorded across two physical goTenna Mesh radios using the updated Purrfect renderer. DjVu image encoding was verified in the captured traffic. Keystrokes are scripted; screen updates are real. Playback is real time and uncut, including radio delays and operator pauses. Use the chapter buttons to jump ahead. SSH starts the server; the interactive Skiff session and equation graphics travel over radio. Read the transcript · Download MP4

What happens in the recording

Open a document, type a heading, enter the equation editor, and build the quadratic formula. The fraction and square root arrive as terminal graphics over the link. Finish the equation and save the document.

Try it between your own computers.

Our walkthrough connects a Mac and Linux computer with the same radio transport. Start with a short text command, then try an editor. The full-size equation reached the viewing terminal in about 83 seconds in this recording. Radio timing varies; playback keeps the waits visible.

Run Skiff between the radios ↗

04 / Ready to try it?

Two computers.
Two radios.

Packages include the GUI, radio driver, helper tools and radio Skiff launcher. Homebrew and APT bring in the runtime dependencies.

A working preview

Package installs are checked on Apple Silicon / macOS 26 and five Debian/Ubuntu releases. The radio path has been exercised between a Mac and Linux workstation.

A link using goTenna Mesh radios has limited bandwidth. Discovery and startup can take time, and radio-only SSH setup remains experimental. Keep the initial test on an existing SSH connection.

Mac build records ↗
Linux build records ↗

One public mesh. Three platforms.

The September 26 release connects Mac, Linux and Inkline on reMarkable 2 using IPv6 and compact radio packets. Clients join automatically; use gotenna-peers to list discovered computers without sending probes.

Install the tablet client ↗