Goblin Reactor package repository
Third-party Debian, Ubuntu, Fedora and Rocky Linux packages maintained by Adam DePrince. Public repository: https://apt.goblinreactor.com/
Available packages
Published Debian/Ubuntu binary packages: goblin-mosh, goblin-purrfect, goblin-view. Each is built separately against every supported release; use the suite matching your OS, not a different release's package. The older empty "stable" suite is not a universal Debian/Ubuntu binary target; use the release-specific suites below. Everything listed here has been installed and exercised through the signed public repository before being listed.
goblin-mosh
Goblin Mosh extends Mosh for bandwidth-constrained links: zstd level 22, independent upload/download pacing, idle keepalive backoff, terminal graphics, and a two-pane file-transfer menu with librsync and FEC. The package includes the client, server, goblin-moshcp, dictionary compiler, man pages and Bash completion; these are bundled tools, not separate APT packages.
goblin-view
GoblinView is 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; windows are moved, resized, selected and scrolled with the mouse; 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 and works anywhere a terminal does. The package installs /usr/bin/goblin-view, the manual pages goblin-view(1) and goblin-view-protocols(7), and the input-method dictionaries.
goblin-purrfect
Goblin Purrfect is an Apache-2.0, DOS-style terminal word processor inspired by WordPerfect 5.1. It provides Unicode-native editing, WP keyboard conventions, WP 5.x/6.x compatibility work, Markdown and LaTeX interchange, local Rust equation rendering, and optional PDF export/print preview. This is a development snapshot, not a promise of complete WordPerfect file compatibility. Keep backups of important documents. Save writes the server/local filesystem; Download is separate.
| Distribution | Suite | Architecture | Version | Binary | Matching source |
| Ubuntu 22.04 LTS | jammy | amd64 | 0.1.0+20260911.1+jammy1 | .deb | .dsc · source |
| Ubuntu 22.04 LTS | jammy | arm64 | 0.1.0+20260911.1+jammy1 | .deb | .dsc · source |
| Ubuntu 24.04 LTS | noble | amd64 | 0.1.0+20260911.1+noble1 | .deb | .dsc · source |
| Ubuntu 24.04 LTS | noble | arm64 | 0.1.0+20260911.1+noble1 | .deb | .dsc · source |
| Ubuntu 26.04 LTS | resolute | amd64 | 0.1.0+20260911.1+resolute1 | .deb | .dsc · source |
| Ubuntu 26.04 LTS | resolute | arm64 | 0.1.0+20260911.1+resolute1 | .deb | .dsc · source |
| Debian 12 | bookworm | amd64 | 0.1.0+20260911.1+bookworm1 | .deb | .dsc · source |
| Debian 12 | bookworm | arm64 | 0.1.0+20260911.1+bookworm1 | .deb | .dsc · source |
| Debian 13 | trixie | amd64 | 0.1.0+20260911.1+trixie1 | .deb | .dsc · source |
| Debian 13 | trixie | arm64 | 0.1.0+20260911.1+trixie1 | .deb | .dsc · source |
Goblin Purrfect is published for amd64 and arm64 on all five releases above. goblin-mosh: amd64. goblin-view: amd64. There are no 32-bit Goblin Purrfect packages or Goblin Purrfect RPMs in this release.
RPM packages
The goblin-mosh tools are also available as native RPMs:
| Distribution | Architecture | Package version | Binary | Matching source |
| Fedora 44 | x86_64 | 1.4.0-20260911.2.fc44 | .rpm | .src.rpm |
| Rocky Linux 9 | x86_64 | 1.4.0-20260911.2.el9 | .rpm | .src.rpm |
| Rocky Linux 10 | x86_64 | 1.4.0-20260911.2.el10 | .rpm | .src.rpm |
RPM installation instructions explain DNF setup, EPEL/CRB dependencies on Rocky, signature verification and source RPMs. Use the build for your distribution and release; other RPM distributions have not been tested. Binary RPMs, SRPMs and repository metadata are signed with the same archive key used by APT. Homebrew packages and setup instructions are published separately at https://brew.goblinreactor.com/.
Set up APT on Debian or Ubuntu
This installs a dedicated repository key and a deb822 source file. It does not replace your distribution's repositories or disable signature checking. If you previously added the old "stable" entry, remove that old entry from its .list/.sources file to avoid keeping an unused source. The one setup serves every package here.
First install the setup tools:
sudo apt update
sudo apt install ca-certificates curl gnupg
Then run this block. It refuses unsupported releases and architectures:
(
set -eu
. /etc/os-release
case "$ID:$VERSION_CODENAME" in
ubuntu:jammy|ubuntu:noble|ubuntu:resolute|debian:bookworm|debian:trixie) ;;
*) echo "No package is published for this OS release." >&2; exit 1 ;;
esac
goblin_arch=$(dpkg --print-architecture)
case "$goblin_arch" in
amd64|arm64) ;;
*) echo "This architecture is not published." >&2; exit 1 ;;
esac
goblin_keydir=$(mktemp -d)
trap 'rm -f "$goblin_keydir/keyring.gpg"; rmdir "$goblin_keydir"' EXIT
curl -fsSL https://apt.goblinreactor.com/goblinreactor-archive-keyring.gpg \
-o "$goblin_keydir/keyring.gpg"
goblin_fingerprint=$(gpg --batch --show-keys --with-colons \
"$goblin_keydir/keyring.gpg" | awk -F: '$1 == "fpr" { print $10; exit }')
test "$goblin_fingerprint" = B7B61E8CB85A9270530364F23273CB62402FC793 || {
echo "Unexpected repository signing key; stopping." >&2
exit 1
}
sudo install -d -m 0755 /etc/apt/keyrings
sudo install -m 0644 "$goblin_keydir/keyring.gpg" \
/etc/apt/keyrings/goblinreactor-archive-keyring.gpg
printf '%s\n' \
'Types: deb deb-src' \
'URIs: https://apt.goblinreactor.com/' \
"Suites: $VERSION_CODENAME" \
'Components: main' \
"Architectures: $goblin_arch" \
'Signed-By: /etc/apt/keyrings/goblinreactor-archive-keyring.gpg' \
| sudo tee /etc/apt/sources.list.d/goblinreactor.sources >/dev/null
)
sudo apt update
Then install what you want (check the architecture inventory above):
apt-cache policy goblin-purrfect goblin-view goblin-mosh
sudo apt install goblin-purrfect
# Also available on the architectures listed above:
sudo apt install goblin-view
sudo apt install goblin-mosh
Signing-key fingerprint:
B7B6 1E8C B85A 9270 5303 64F2 3273 CB62 402F C793
The key is scoped to this repository with Signed-By. Do not use apt-key, trusted=yes, --allow-unauthenticated, or disable TLS verification. This is an independent third-party archive, not an official Debian or Ubuntu archive. Installing a package grants its maintainer the trust normally required for system software.
Use, update and remove
Every package here is updated, inspected and removed the same way; substitute another installed package name for goblin-purrfect when appropriate:
sudo apt update
sudo apt install --only-upgrade goblin-purrfect
dpkg-query -W goblin-purrfect
sudo apt remove goblin-purrfect
After an OS release upgrade, change the suite in goblinreactor.sources to the new supported codename (or rerun setup), then update and upgrade. Do not add Debian suites to Ubuntu or Ubuntu suites to Debian.
Using goblin-mosh
Install goblin-mosh on the client and remote server, then connect:
goblin-mosh user@server
SSH must reach the server for login, and its firewall must allow the selected Mosh UDP port (normally 60000–61000). Installing the package does not open firewall ports or start a permanent system daemon. The package installs /usr/bin/goblin-mosh and does not replace /usr/bin/mosh. An existing distribution mosh package can stay installed. A previously packaged adam-mosh is obsolete and conflicts with goblin-mosh. The file browser opens with Mosh's command prefix: Ctrl-^ (often Ctrl-Shift-6), then 0. Enter starts a transfer without leaving the browser; x cancels. Files are synchronized in both directions with librsync and FEC. Open a new session after an upgrade to use the new client and server; existing processes are not restarted.
Using goblin-view
Run goblin-view in a terminal to attach to the default session, creating it with one window if none exists. Tap Alt (Option on a Mac, 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. Ctrl-\ opens the menu on a terminal that swallows the Alt tap. man goblin-view covers the command, keys, mouse and environment; man goblin-view-protocols lists what programs in windows can use. On macOS Ghostty needs macos-option-as-alt = true in its configuration for the Option tap to arrive.
goblin-view
goblin-view new-window -- htop
goblin-view list-windows
goblin-view kill-server
A goblin-view server keeps running across package 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. If you previously installed goblin-view by hand under ~/.local/bin or /usr/local/bin, that copy can shadow /usr/bin: check command -v goblin-view and remove the manual copy yourself; the package does not delete administrator-managed files.
Using Goblin Purrfect
goblin-purrfect edit
goblin-purrfect edit document.wp --theme amber
goblin-purrfect doctor
man goblin-purrfect
The package installs /usr/bin/goblin-purrfect; it does not create gp or wp aliases,
start services, remove manual installations, or alter your documents. If an older
~/.local/bin or /usr/local/bin copy shadows it, check command -v goblin-purrfect.
Use /usr/bin/goblin-purrfect explicitly to test this package. Quit and reopen the
editor after upgrading. Help is F3; F10 saves and F7 exits. A graphical terminal
is optional: kitty graphics, sixel, and Unicode Braille are negotiated/fallback
paths, while the document page remains terminal text.
Python 3 and CA certificates are runtime dependencies for the embedded font
helper. Aspell and an English dictionary are recommended for spelling; install
another language's dictionary if needed. The editor and its Rust equation
preview do not require TeX. LaTeX source export also works without TeX installed.
PDF export and print preview need optional tools:
sudo apt install aspell aspell-en
sudo apt install texlive-luatex texlive-latex-extra texlive-fonts-recommended poppler-utils
These optional TeX packages can be large. goblin-purrfect doctor reports which
tools are available. User fonts and personal dictionaries remain user-managed.
If you disable APT Recommends (for example with --no-install-recommends), also
install texlive-plain-generic; it supplies the ulem package used for text
attributes and is normally pulled in by texlive-latex-extra's Recommends.
PDF glyph coverage depends on the selected fonts. The default test font set
covers the Latin/Greek examples but does not supply every CJK or emoji glyph;
Unicode-native editing is not a promise of universal PDF font coverage.
Actual PDF export and Kitty/sixel/Braille print preview were additionally tested
on amd64 Ubuntu 22.04 and Debian 12 with these optional packages installed.
Their pdf-optional logs and dependency inventories are in the signed catalog;
the optional PDF checks were not run on every architecture/release combination.
Matching source and licenses
Complete matching native Debian source packages are published alongside the binaries in each suite. With deb-src enabled above:
mkdir -p goblin-source
cd goblin-source
apt-get source goblin-view
sudo apt build-dep goblin-view
cd goblin-view-*
dpkg-buildpackage -us -uc -b
The same works for goblin-mosh. Each source archive includes the code, Debian packaging, and container build recipes; release-specific .buildinfo files record build dependencies. Source, binaries, and verification artifacts are linked from the catalog. RPM builds have matching signed source RPMs in their release's source repository.
Goblin Mosh is derived from Mosh and remains GPL-3.0-or-later, with existing notices and linking exceptions preserved. librsync, zstd, WebP, PNG, OpenSSL and other runtime libraries are dynamically linked distribution packages rather than bundled copies; their licenses remain applicable. See /usr/share/doc/goblin-mosh/copyright and THIRD_PARTY.md. The optional --fips-crypto mode is built, but no validated FIPS provider is included.
GoblinView is original code under an ISC-style license; its bundled input-method dictionaries are generated from MIT-, Apache-2.0- and Unicode-licensed sources, recorded in /usr/share/doc/goblin-view/copyright and /usr/share/goblin-view/README.md. It links only zlib and the C++ runtime.
Goblin Purrfect source and Apache-2.0 licensing
Project-authored code, documentation, themes, tests and tools are Apache-2.0.
The binary packages contain /usr/share/doc/goblin-purrfect/LICENSE and NOTICE,
THIRD-PARTY-NOTICES.txt, and complete bundled dependency and Rust standard-library
notices under third-party/. Latin Modern fonts retain GUST/LPPL terms and IBM
Plex Mono retains SIL OFL 1.1; the unmodified font distributions and license
texts are under /usr/share/goblin-purrfect/assets/fonts/. These third-party works
are not relicensed Apache-2.0. No proprietary WordPerfect assets, private user
documents, IBM.pdf, or reconstructed private Selectric fonts are distributed.
The explicitly licensed Apache Tika test fixture is source-only.
Debian normalizes ZIP metadata for reproducible packages: the two font ZIP
containers may differ in hash from the original upstream/source ZIPs, while
every contained file is unchanged. The published license audits check both
the direct font/license files and all archive members byte-for-byte.
mkdir -p goblin-purrfect-source
cd goblin-purrfect-source
apt-get source goblin-purrfect
Each suite has a single matching, vendored source package shared by amd64 and
arm64. Cargo dependencies are locked and built offline. The release compiler
is Rust 1.98.1; older distributions' stock rustc/cargo packages are insufficient.
Read packaging/debian/README.md in the extracted source for the container/native
build procedure and external-toolchain dependency check. Do not blindly use
apt build-dep on an old distribution and assume it supplies that compiler.
SOURCE-MANIFEST.json records the canonical source hashes and Debian-only
packaging changes. The project has no public Git repository yet; matching
source, build records, and test logs are linked from the signed catalog.
Release test environments set RUST_TEST_THREADS=1 to isolate synthetic-font
fixtures that share a process-global catalog; no required tests are skipped.
Minimized Ubuntu OCI images exclude documentation by default, so the installed
license audit enables this package's doc/man paths in those disposable roots.
Normal Debian/Ubuntu installations retain the packaged notices without that
test-environment adjustment. These environment settings do not change the app.
The release checks cover Rust and Python tests, real pseudo-terminal editing,
equation rendering, mouse/clipboard interaction, spelling, saved documents,
and screen restoration on exit. Both architectures were installed and exercised
through signed public APT metadata in fresh roots for every listed OS release.
Real-terminal behavior and complete legacy file compatibility still benefit
from user testing; a successful package test is not a claim of full WP parity.
Verification and support
Packages are built separately against the listed distributions' libraries in disposable containers from pinned base images. For goblin-mosh the release checks cover core protocol/rendering/compression/file-worker tests, installed encrypted file transfers, and installation through signed APT metadata. For goblin-view they cover the unit tests, the socket-level and end-to-end pseudo-terminal tests, a smoke test of the installed package in the build container, and installation through the signed public repository in a fresh container of each release. The logs are published under releases/ and listed in the catalog with checksums.
Goblin Mosh source branch: https://github.com/adamdeprince/mosh/tree/low-bandwidth-mosh · Issues: https://github.com/adamdeprince/mosh/issues · Project page: https://mosh.goblinreactor.com/
GoblinView has no public repository yet; its complete source is the matching source package in each suite.
APT source-file documentation: https://manpages.debian.org/bookworm/apt/sources.list.5.en.html
Published packages in the catalog are the available inventory; planned features, requested architectures and unpackaged tools are not additional APT packages.
Goblin Mosh UDP jump relays
Release 20260911.2 carries the authenticated UDP session through one to four Goblin Mosh jump hosts. SSH bootstraps the connection; session packets then use the UDP relays, with independent hop keys, replay protection, roaming and MTU accounting. This is not arbitrary UDP port forwarding. Install this release on the client, destination and every jump host; open the configured relay UDP ports (default 60001–60999). Existing sessions keep their old processes; reconnect to use the update.
goblin-mosh -J user@jump user@destination
goblin-mosh -J user@first,user@second user@destination
The release also fixes empty AES-GCM packet accounting used by authenticated relay close messages. FIPS-provider operation is tested where the distribution supplies a usable provider; this is not a FIPS certification. All prebuilt binaries disable RaptorQ and pass the executable policy check. Reed–Solomon FEC remains available. Sources and manuals are included under GPL-3.0-or-later with existing notices preserved.
Verification includes loss on every seventh datagram, reordering, live keyboard input and four-hop recursive/delta transfers. The original 60-second per-file test deadline was too short on some runs: measured first-file completion ranged up to 141 seconds with conservative pacing and relay overhead. The affected public-install checks use a 300-second observation window without reducing loss or removing assertions. The signed catalog records the deadline and measured times; original timeout logs and the verification fixture are retained with the release. This is a transfer ramp-up limitation to improve, not a claim of high throughput under loss.