Use this route when Emacs runs on a Linux host and speech plays on your
workstation through an SSH reverse forward. It also works for remote-only
Emacs under WSL, without Windows interoperability. Remote access is a preview
feature. The workstation needs Omnivox 1.18.0 or newer, including --serve.
After cloning Emacsvox on the Emacs host, run:
cd ~/src/emacsvox ./bin/emacsvox-install --role remote-emacs --check ./bin/emacsvox-install --role remote-emacs
The first command reports prerequisites and paths without changing files.
The second reuses Emacs 30.2 or newer and compiles Emacsvox. If Emacs is missing,
it checks the local apt candidate and suggests sudo apt install emacs-nox
when that version is suitable. To choose the source build instead, run
./bin/emacsvox-install --role remote-emacs --build-emacs. Add --check to
inspect build prerequisites first. The checksum-verified GNU Emacs 31.1 source
is built as a terminal-only installation under
~/.local/opt/emacs-31.1-terminal. Other Linux distributions currently need
an existing Emacs 30.2 or newer. A supported GUI Emacs can also be reused.
Explicit EMACS and local.mk selections are preserved; if they conflict or
select an unsupported version, resolve the reported setting first.
No local Omnivox, sound device, GUI build packages, or Windows speech tools
are required. Missing Debian/Ubuntu build packages are reported as one
apt command for you to review and run. The installer never invokes sudo
or changes a shell startup file. Build logs are kept below
~/.cache/emacsvox/logs, or the corresponding XDG_CACHE_HOME location.
Installation can finish before the workstation is connected. Follow Remote Workstation Speech to prepare its service, private token, and SSH reverse forward. Then run on the Emacs host:
./bin/emacsvox --remote --diagnose ./bin/emacsvox --remote --check ./bin/emacsvox --remote
Diagnosis reports local configuration without connecting or reading the token’s contents. The check connects both speech lanes, waits for workstation inventory and voice registration, and speaks a foreground announcement followed by a notification announcement. Confirm that both are audible. The last command starts an isolated terminal Emacsvox session.
The default forwarded endpoint is 127.0.0.1:6417. The token file defaults
to ~/.config/omnivox/remote-token, respecting XDG_CONFIG_HOME when set.
To select another forwarded port or private token path, supply environment
values to the same command:
EMACSVOX_REMOTE_PORT=6418 \ EMACSVOX_REMOTE_TOKEN_FILE="$HOME/.config/omnivox/other-token" \ ./bin/emacsvox --remote --check
EMACSVOX_REMOTE_HOST accepts only 127.0.0.1 or ::1. The token path
must be absolute; its contents stay in the private file. Use the same settings
when starting the session. Remote mode selects the Omnivox transport and skips
local speech executable and playback probes; leave TTS_PROGRAM unset or set
it to omnivox.
For updates, keep your speaking session open, pull the checkout with
git pull --ff-only, and rerun the remote installer. It rebuilds byte-code
with the selected Emacs. Perform the connected check while the workstation
service is free, and test the updated session before closing the known-good
one. A single service admits only one Emacs session at a time: use a separate
test service or explicitly disconnect the old remote session before connecting
its replacement.