Android companion

Ghostex Android is a Termux-based companion app for connecting to persistent Ghostex sessions already running on your Mac. It lists ZMX-backed sessions, attaches the Android terminal to selected sessions, and runs sidebar actions through long-press menus.

AndroidTailscaleSSHJ

Download

APKs are published in GitHub Releases:

https://github.com/maddada/Ghostex/releases/latest/download/ghostex-android.apk

Package id: io.ghostex — installs beside upstream Termux (com.termux) on the same phone.

What it does

  • Connect to one or more saved SSH machines from the Ghostex drawer.
  • Automatically reconnect to the last selected machine when the app reopens.
  • List ZMX-backed Ghostex sessions for the current release.
  • Keep the last seven opened remote sessions warm for faster switching.
  • Use long-press action sheets for sidebar actions that are hover controls on macOS.
  • Reach the Mac over Tailscale SSH with app-owned SSHJ transport (not phone-side OpenSSH).

Mac setup

  • Install and sign in to Tailscale on the Mac.
  • Enable macOS Remote Login in System Settings → General → Sharing.
  • Install Ghostex and ensure ghostex is available in the SSH login shell.
  • Install zmx and set Ghostex session persistence to zmx.
  • Verify: command -v ghostex && command -v zmx
  • Keep Ghostex open so gx can list live sessions.
ghostex android-check --json

Android setup

  • Install and sign in to Tailscale on the Android device.
  • Open Ghostex Android and add the Mac as a saved machine.
  • First-run tutorial walks through Tailscale, SSH, and machine setup.
  • Done opens Add Machine for a fresh user.

Remote commands

ssh user@mac-tailscale-host
gx sessions
gx a 1
gx wake 1
gx sleep 1
gx kill 1
gx rename-session --session-id <id> --title "New title"

Attach contract

Android attaches by stable Ghostex session id using the same contract as desktop remote SSH:

ghostex attach --session-id <id> --project-id <id>

The E2E harness verifies Tailscale SSHJ reachability, remote ghostex and zmx, ZMX inventory parsing, stable-id attach command construction, and remote session actions.

Drawer UI

  • Cleaner remote-session drawer with refresh, Machines, Settings, and Exit.
  • Collapsible project groups with project reordering.
  • Project-level new session controls.
  • Local Termux terminal management is hidden behind the Ghostex drawer.

Verify Mac readiness

From the Mac or over SSH, confirm Android readiness:

OptionWhat it does
ghostex android-check --jsonReports CLI availability, session count, and sessionPersistenceProvider.
npm run android:verify-releaseFull release proof from the Ghostex repo root (signing, E2E, UI smoke).

Related docs