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.

DistributionAPT suiteArchitecturePackage versionBinaryMatching source
Ubuntu 22.04 LTSjammyamd641.4.0+goblin20260911.2+jammy1.deb.dsc · source archive
Ubuntu 24.04 LTSnobleamd641.4.0+goblin20260911.2+noble1.deb.dsc · source archive
Ubuntu 26.04 LTSresoluteamd641.4.0+goblin20260911.2+resolute1.deb.dsc · source archive
Debian 12bookwormamd641.4.0+goblin20260911.2+bookworm1.deb.dsc · source archive
Debian 13trixieamd641.4.0+goblin20260911.2+trixie1.deb.dsc · source archive

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.

DistributionAPT suiteArchitecturePackage versionBinaryMatching source
Ubuntu 22.04 LTSjammyamd640.1.0+20260910.1+jammy1.deb.dsc · source archive
Ubuntu 24.04 LTSnobleamd640.1.0+20260910.1+noble1.deb.dsc · source archive
Ubuntu 26.04 LTSresoluteamd640.1.0+20260910.1+resolute1.deb.dsc · source archive
Debian 12bookwormamd640.1.0+20260910.1+bookworm1.deb.dsc · source archive
Debian 13trixieamd640.1.0+20260910.1+trixie1.deb.dsc · source archive

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.

DistributionSuiteArchitectureVersionBinaryMatching source
Ubuntu 22.04 LTSjammyamd640.1.0+20260911.1+jammy1.deb.dsc · source
Ubuntu 22.04 LTSjammyarm640.1.0+20260911.1+jammy1.deb.dsc · source
Ubuntu 24.04 LTSnobleamd640.1.0+20260911.1+noble1.deb.dsc · source
Ubuntu 24.04 LTSnoblearm640.1.0+20260911.1+noble1.deb.dsc · source
Ubuntu 26.04 LTSresoluteamd640.1.0+20260911.1+resolute1.deb.dsc · source
Ubuntu 26.04 LTSresolutearm640.1.0+20260911.1+resolute1.deb.dsc · source
Debian 12bookwormamd640.1.0+20260911.1+bookworm1.deb.dsc · source
Debian 12bookwormarm640.1.0+20260911.1+bookworm1.deb.dsc · source
Debian 13trixieamd640.1.0+20260911.1+trixie1.deb.dsc · source
Debian 13trixiearm640.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:

DistributionArchitecturePackage versionBinaryMatching source
Fedora 44x86_641.4.0-20260911.2.fc44.rpm.src.rpm
Rocky Linux 9x86_641.4.0-20260911.2.el9.rpm.src.rpm
Rocky Linux 10x86_641.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.