Goblin Purrfect for Homebrew
Goblin Purrfect is a clean-room, DOS-aesthetic terminal word processor with WordPerfect-style keys, WP 5.1/6.0 file handling, Unicode, Rust-rendered equations, inline images, Aspell, Markdown, and LaTeX/PDF output. It remains a development snapshot: keep backups of important documents, and do not assume complete compatibility with every WordPerfect document or feature.
Set up this Homebrew target
Install Homebrew first. As your normal user, without sudo:
brew tap goblinreactor/tap https://brew.goblinreactor.com/homebrew-tap.git
brew install goblinreactor/tap/goblin-purrfect
goblin-purrfect doctor
goblin-purrfect
The explicit tap URL matters: this is an independent, self-hosted tap, not a repository inferred from GitHub. Adding it means trusting the maintainer and the formula code, including future updates. Keep TLS verification on. Homebrew checks the immutable source and bottle SHA-256 checksums.
The prebuilt bottle is tested on Apple Silicon (arm64), macOS 26 Tahoe. Other macOS releases and Intel Macs may attempt a source build, but no binary for those targets is supplied or claimed tested by this release. Do not force an ARM/Tahoe bottle onto an incompatible Mac. Native Linux packages are available from the Debian/Ubuntu repository.
The formula installs Aspell and Python 3. Aspell supplies spell checking; Python is used by the font browser and the packaged support tools. Homebrew may update dependencies as part of a normal installation. The editor, its equations and its ordinary text screen do not need TeX.
Optional PDF printing and print preview
PDF output uses LuaLaTeX. Preview also needs Poppler's pdfinfo and pdftoppm. If you already have a working TeX Live or MacTeX installation, keep it and check that lualatex is on PATH. Otherwise, one Homebrew-only option is:
brew install texlive poppler
goblin-purrfect doctor
TeX Live is a large, optional download; the Goblin Purrfect formula deliberately does not install it automatically. Poppler supplies the preview tools. Markdown and LaTeX text export work without these tools.
Use, update and remove
goblin-purrfect edit notes.wp
goblin-purrfect edit notes.wp --display green
goblin-purrfect export-latex notes.wp notes.tex
goblin-purrfect export-pdf notes.wp notes.pdf
brew update
brew upgrade goblinreactor/tap/goblin-purrfect
brew test goblinreactor/tap/goblin-purrfect
The editor defaults to amber. Green, white/Hercules and configurable themes are available. It prefers supported Kitty graphics, with Sixel/Braille fallbacks; ordinary document text stays terminal text. In the equation editor, F11 switches top/bottom and left/right panes. Drag the divider or use Ctrl-arrows to resize them. Saving always writes to the filesystem on the machine where the editor is running; downloading is a separate action.
Restart the editor after upgrading to use the new executable. Existing manual installations under .local/bin or /usr/local/bin are not removed:
command -v goblin-purrfect
brew --prefix goblin-purrfect
If a manual installation wins, adjust PATH deliberately. Do not use brew link --overwrite to erase administrator-managed files. No gp alias is supplied because that name is already used by PARI/GP.
brew uninstall goblin-purrfect
Only untap goblinreactor/tap if you no longer use any of its other packages. Removing the formula does not remove your documents, manual installations, or separately installed TeX/Poppler packages.
Licenses, source and verification
Project-authored code and documentation are Apache-2.0. LICENSE, NOTICE, and THIRD-PARTY-NOTICES.txt are installed under the formula's share/doc directory. Latin Modern Math/text keep their GUST/LPPL licenses; IBM Plex Mono keeps SIL OFL 1.1. Complete admitted font distributions and licenses are retained under share/goblin-purrfect/assets/fonts. Vendored Rust dependencies and the statically linked Rust standard library also retain their own license/copyright texts. This is not a claim that every third-party dependency has been relicensed Apache-2.0.
No proprietary WordPerfect executables, drivers, fonts, private document corpus, or privately reconstructed IBM sample fonts are distributed. The separately licensed Apache Tika fixture is included in matching source for tests, not in the installed binary bundle. The project is independent of, and not endorsed by, the owners of WordPerfect.
The signed release catalog lists available packages, exact versions, checksums, source, platform tags, and verification results. Its detached signature uses the existing key:
B7B6 1E8C B85A 9270 5303 64F2 3273 CB62 402F C793
Homebrew itself checks formula hashes, not this additional catalog signature. The public key is available separately. The tap contains the exact formula and is fetched by normal brew update.
Maintainer rebuild
The source snapshot includes Cargo.lock, vendored crates, font provenance, the Debian recipes and this Homebrew template. Package versions carry a date suffix; the application currently reports its upstream 0.1.0 version. To use a source build instead of a matching bottle:
brew install --build-from-source goblinreactor/tap/goblin-purrfect
This installs Homebrew's declared Rust build dependency and uses locked, offline Cargo resolution. The source snapshot pins rustup users to the recorded compiler; the Homebrew recipe uses its declared system compiler. Building runs the Rust and Python suites. The installed-package test creates only synthetic temporary documents and checks WP roundtrip, LaTeX export, terminal exit restoration, mouse selection and deletion.
To prepare an immutable source snapshot from the maintainer's reviewed tree:
cargo vendor --locked --offline --versioned-dirs var/RELEASE/vendor
python3 packaging/homebrew/source.py --version VERSION --epoch EPOCH \
--vendor var/RELEASE/vendor --output var/RELEASE/source
Use a new VERSION for changed source; never overwrite a published source or bottle. Replace @VERSION@ and @SOURCE_SHA256@ in goblin-purrfect.rb.in with that snapshot's values, install with brew install --build-bottle, then run brew bottle --json --root-url=https://brew.goblinreactor.com/bottles. Merge the generated bottle block into the release formula, publish only the admitted immutable artifacts, and verify a fresh install from the public HTTPS tap before updating the signed catalog.
See Homebrew's tap documentation and bottle documentation for the packaging and supported-platform rules. Do not force-push the shared tap or replace unrelated catalog entries when another package is being published.