<!-- Modified for Goblin Skiff on 2026-09-19. -->
# Goblin Reactor Homebrew packages

Goblin Modem, Goblin Skiff, GoblinView and Goblin Purrfect for macOS, maintained by Adam DePrince. This is an independent third-party Homebrew tap, hosted at https://brew.goblinreactor.com/. Linux users have the [Debian, Ubuntu and RPM packages](https://apt.goblinreactor.com/).

## Available packages

### silkie

silkie is a fork of the kitty terminal emulator with pen, touch, ink, vector graphics, HDR color and display timing extensions. Version 0.49.2-silkie20261014.1 is available as an Apple Silicon/macOS 26 Tahoe cask. It installs silkie.app, silkie and silkie-kitten alongside kitty. Homebrew installs the declared runtime library dependencies. This build is ad-hoc signed and is not Apple-notarized. macOS requires explicit approval before first launch; approve it in System Settings > Privacy & Security. For a release you trust, Homebrew can install without download quarantine using the command below.

[Documentation and specifications](https://silkie.goblinreactor.com/).

~~~sh
brew tap goblinreactor/tap https://brew.goblinreactor.com/homebrew-tap.git
brew install --cask --no-quarantine goblinreactor/tap/silkie
~~~


### goblin-core and goblin-core-cpp

Goblin Core 0.10.6 is available through this Homebrew repository for Apple Silicon on macOS 26 Tahoe. The goblin-core package installs the Redis-compatible server; goblin-core-cpp is a separate C++ client SDK. The service uses loopback TCP port 6379 and a Unix socket. SBE, rings and other high-performance transports are not enabled. Stop an existing Redis service first if it uses port 6379. Python clients are released separately; the matching PyPI release is pending approval.

[Installation instructions](https://brew.goblinreactor.com/goblin-core.html).

```sh
brew tap goblinreactor/tap https://brew.goblinreactor.com/homebrew-tap.git
brew install goblinreactor/tap/goblin-core
brew services start goblinreactor/tap/goblin-core
# Optional C++ client SDK:
brew install goblinreactor/tap/goblin-core-cpp
```


| Package | Version | Tested binary target |
| --- | --- | --- |
| goblinreactor/tap/silkie (cask) | 0.49.2-silkie20261014.1 | Apple Silicon (arm64), macOS 26 Tahoe |
| goblinreactor/tap/goblin-modem (cask) | 0.1.0.20260926.1 | Apple Silicon (arm64), macOS 26 Tahoe |
| goblinreactor/tap/goblin-skiff | 1.4.0-goblin20260919.2 | Apple Silicon (arm64), macOS 26 Tahoe |
| goblinreactor/tap/goblin-view | 0.1.0-20261014.1 | Apple Silicon (arm64), macOS 26 Tahoe |
| goblinreactor/tap/goblin-purrfect | 0.1.0-goblin20260911.1 | Apple Silicon (arm64), macOS 26 Tahoe |

The bottles are the tested prebuilt packages. Other macOS targets can attempt a source build, but have not been verified for these releases. Do not force an ARM bottle onto an Intel Mac or an older macOS release.

### goblin-modem

September 26 adds the public IPv6 mesh, compact radio packets and `gotenna-peers` on Mac, Linux and Inkline. Clients join automatically. The command lists discovered names, addresses, hops and connection roles without probing. Update all mesh participants to this wire format.

The menu bar GUI, modem helper, goTenna radio driver, mesh address/name discovery, SOCKS5 proxy, Internet-gateway controls and radio Skiff launcher. The cask installs Python and Goblin Skiff dependencies. Version 0.1.0.20260926.1 supports Apple Silicon on macOS 26 Tahoe. Internet sharing starts off.

[Install, configure and build Goblin Modem](https://brew.goblinreactor.com/goblin-modem.html). The app is ad-hoc signed and the installer is not Apple-notarized.

### goblin-skiff

Goblin Skiff is a fork of Mosh, optimized for bandwidth-constrained links. Features include zstd level 22, independent upload/download pacing, idle keepalive backoff, terminal graphics, and a two-pane file-transfer menu with librsync and FEC. It includes goblin-skiff, goblin-skiff-client, goblin-skiff-server, goblin-skiffcp, the dictionary compiler, five man pages and Bash completion, bundled in one formula.

### goblin-view

A terminal multiplexer with overlapping windows and an Alt-tap menu, not tiled panes. Each window is a terminal of its own kept in a server process, so a session survives detaching; the mouse moves, resizes, selects and scrolls; images drawn with kitty graphics or sixel are re-emitted in whatever the terminal you attach from speaks; and programs in windows get the kitty protocol extensions per window (keyboard protocol, styled underlines, colours, pointer shapes, extra cursors, drag and drop, file transfer). It runs best in Ghostty or kitty. The formula installs `goblin-view`, the manual pages `goblin-view(1)` and `goblin-view-protocols(7)`, and the input-method dictionaries. It has no Homebrew dependencies beyond the system zlib.

## Install

Install [Homebrew](https://brew.sh/) first if it is not already installed, then run these commands as your normal user, without sudo:

~~~sh
brew tap goblinreactor/tap https://brew.goblinreactor.com/homebrew-tap.git
brew install --cask goblinreactor/tap/goblin-modem
brew install goblinreactor/tap/goblin-view
brew install goblinreactor/tap/goblin-skiff
~~~

The explicit HTTPS tap URL is important: this tap is hosted here, not in a GitHub repository inferred from its name. Homebrew downloads a matching bottle automatically and verifies the source and bottle with the SHA-256 checksums in the formula; TLS verification must remain enabled. Homebrew installs the runtime dependencies of goblin-skiff (protobuf, abseil, OpenSSL 3, zstd, librsync, WebP, PNG and ncurses); goblin-view needs none. Do not use --ignore-dependencies or --force-bottle as a workaround for an unsupported machine.

This is third-party system software. Adding a tap means trusting its maintainer and formula code, including future updates. Goblin Modem installs a privileged launchd helper for radio IP and modem control; the terminal-only formulas do not need it.

## Use

### goblin-view

Run `goblin-view` in a terminal to attach to a session, creating it with one window if none exists. Tap Alt (Option, either side) and let go to open the menu, then a letter: O opens a window, C closes, Z zooms, R rearranges, 1-9 selects, D detaches, Q quits, ? shows help. In Ghostty on macOS set `macos-option-as-alt = true` in `~/.config/ghostty/config` so the Option tap arrives; `Ctrl-\` opens the menu on a terminal that swallows it. `man goblin-view` covers the command, keys, mouse and environment; `man goblin-view-protocols` lists what programs in windows can use.

~~~sh
goblin-view
goblin-view new-window -- htop
goblin-view list-windows
goblin-view kill-server
~~~

A goblin-view server keeps running across upgrades. After upgrading, close its windows and run `goblin-view kill-server` so the next attach starts the new version; a client refuses to attach to a server of another version and says so. A manual copy under ~/.local/bin can shadow the Homebrew one: check `command -v goblin-view`.

### goblin-skiff

Install Goblin Skiff on both endpoints, then connect:

~~~sh
goblin-skiff user@server
man goblin-skiff
~~~

Open the two-pane control/file menu with Skiff's command prefix: Ctrl-^ (usually Ctrl-Shift-6), then 0. Enter starts transferring the selected file or directory without leaving the browser. SSH must reach the server for login, and its firewall must allow the selected UDP port (normally 60000–61000). The goblin-prefixed commands coexist with Homebrew's ordinary mosh formula and do not delete manually installed files; check which installation your shell selects with `command -v goblin-skiff`. On a remote Apple Silicon Mac whose SSH PATH excludes Homebrew, select the server explicitly: `goblin-skiff --server=/opt/homebrew/bin/goblin-skiff-server user@mac`.

## Update, verify and remove

~~~sh
brew update
brew upgrade goblinreactor/tap/goblin-view goblinreactor/tap/goblin-skiff
brew info goblinreactor/tap/goblin-view
brew test goblinreactor/tap/goblin-view
~~~

The tap is a small, read-only Git repository over HTTPS; normal `brew update` fetches its formula changes from this server. goblin-view's installed-package test starts a detached session on a private socket, opens a window with a scripted menu key and shuts the server down. goblin-skiff's test needs its Python test dependency: `brew install --only-dependencies --include-test goblinreactor/tap/goblin-skiff`.

~~~sh
brew uninstall goblin-view
brew uninstall goblin-skiff
brew untap goblinreactor/tap
~~~

## Artifacts and matching source

| Package | Artifact | SHA-256 |
| --- | --- | --- |
| goblin-view | [source archive](https://brew.goblinreactor.com/sources/goblin-view-0.1.0-20261014.1.tar.gz) | `baf5bab051bce605ace7d0e26bc152d0bf3e2340cd2e0d0e3e859eb61173b41b` |
| goblin-view | [bottle (arm64_tahoe)](https://brew.goblinreactor.com/bottles/goblin-view-0.1.0-20261014.1.arm64_tahoe.bottle.tar.gz) | `cda52d7ebf1d65b13267f10748fdd7e4d7589d419e3fc37a9cbeed366ab81b51` |
| goblin-view | [formula and verification logs](https://brew.goblinreactor.com/releases/goblin-view-0.1.0-20261014.1/) | |
| goblin-skiff | [source archive](https://brew.goblinreactor.com/sources/goblin-skiff-1.4.0-goblin20260919.2.tar.gz) | `b3db69c56ad12c1ac672aba0c171732658a4841b42e5de232e3f2c6f850c5924` |
| goblin-skiff | [bottle (arm64_tahoe)](https://brew.goblinreactor.com/bottles/goblin-skiff-1.4.0-goblin20260919.2.arm64_tahoe.bottle.tar.gz) | `187a5c9ecd6242c0e918e4c058cd10ceb1b780545c89d1cf0354118e05461628` |

Homebrew checks the formula's SHA-256 values automatically. The [checksummed catalog](https://brew.goblinreactor.com/packages.json) lists every public file with its checksum and is signed with the Goblin Reactor archive key ([signature](https://brew.goblinreactor.com/packages.json.asc), [public key](https://brew.goblinreactor.com/goblinreactor-archive-keyring.asc)):

~~~text
B7B6 1E8C B85A 9270 5303 64F2 3273 CB62 402F C793
~~~

The catalog covers every downloadable file except the HTML pages: index.html is a rendering of README.md, and the CDN in front of this site adds its analytics script to HTML in transit, so README.md and README.txt are the checksummed texts. That signature is an additional verification mechanism, not one Homebrew itself checks. Each source archive contains the complete source, build system, licenses and packaging recipes; the exact formula is in the tap and recorded inside each bottle. To compile a package yourself instead of using its bottle:

~~~sh
brew install --build-from-source goblinreactor/tap/goblin-view
~~~

Source builds need current Apple Command Line Tools. goblin-view's build runs its unit tests; goblin-skiff's runs 28 core tests. Each bottle was verified by installing it through the public HTTPS tap and running the formula's test.

## Licenses and limits

GoblinView is licensed under the Apache License 2.0; its bundled input-method dictionaries are generated from MIT-, Apache-2.0- and Unicode-licensed data, recorded in the installed NOTICE and share/goblin-view/README.md. Goblin Skiff remains GPL-3.0-or-later with upstream notices and OpenSSL linking exceptions preserved; see its installed COPYING, copyright and THIRD_PARTY.md. Homebrew dependencies are separately maintained, dynamically linked packages.

Goblin Skiff: normal macOS sessions use Apple's CommonCrypto backend; the --fips-crypto provider mode is built using OpenSSL 3 but no validated provider is included. Source branch: https://github.com/adamdeprince/goblin-skiff/tree/low-bandwidth-mosh. GoblinView has no public repository yet; its complete source is the archive above.

Homebrew tap documentation: https://docs.brew.sh/How-to-Create-and-Maintain-a-Tap

<!-- goblin-purrfect:start -->

## Goblin Purrfect

The additional formula **goblinreactor/tap/goblin-purrfect** (0.1.0-goblin20260911.1) is available as a tested Apple Silicon/macOS 26 Tahoe bottle. It is an Apache-2.0 retro terminal word processor with WP files, Unicode, inline equations/images and LaTeX/PDF export.

~~~sh
brew tap goblinreactor/tap https://brew.goblinreactor.com/homebrew-tap.git
brew install goblinreactor/tap/goblin-purrfect
goblin-purrfect doctor
~~~

[Goblin Purrfect setup, optional PDF tools, licenses and source](https://brew.goblinreactor.com/goblin-purrfect.html). No gp alias is installed. The existing Goblin Skiff formula remains available; the signed packages.json catalog lists all published packages.

<!-- goblin-purrfect:end -->


## Goblin Skiff 1.4.0-goblin20260919.2

Goblin Skiff is a fork of Mosh, optimized for bandwidth-constrained links.
This release includes authenticated UDP jump relays, configurable initial
connection timeouts and negotiated radio pacing. Install `goblin-skiff` on
the client, destination and any jump hosts. Use `goblin-skiff --connect-timeout=300 user@server` for slow startup, or `goblin-skiff -J user@jump user@server` for a relay.

Every supported package runs 28 core tests, installed encrypted transfers and
lossy four-hop transfers. Public APT, DNF and Homebrew installations are verified
against the signed repositories or bottle checksums. Optional provider tests
skip only where no configured FIPS provider is available. Prebuilt packages use
Reed–Solomon FEC with RaptorQ excluded. Goblin protocol remains 1; both directions
of upstream Mosh interoperability pass.

Goblin Modem 0.1.0.20260926.1 uses the Skiff binaries and local configuration variables.
Matching source and detailed verification results are in the [signed catalog](https://brew.goblinreactor.com/packages.json).
Mosh is a registered trademark of Keith Winstein. Goblin Skiff is independent of
the upstream project; see the [trademark notice](https://brew.goblinreactor.com/releases/goblin-skiff-20260919.2/TRADEMARKS.md).

<!-- goblin-scry:start -->
## Goblin Scry

Graphical desktops in your terminal. Version 0.1.0. [Documentation and installation](https://scry.goblinreactor.com/). GPLv3.
<!-- goblin-scry:end -->
