Skip to main content

Monitor and interact with tmux/Byobu sessions from your phone

Project description

Trustmux

A mobile companion for tmux / Byobu sessions. Run a lightweight daemon on your workstation; monitor and interact with your terminal sessions from your phone over your Tailscale network. No relay server — terminal data stays between your devices.

Works with plain tmux and with byobu. Byobu users get the live status bar chips; plain tmux users get everything else.

Two tiers:

  • Free — PWA. Install one icon per machine directly from the browser.
  • Paid — Native Flutter app with full ANSI colors, multi-machine management, and biometric auth.

Requirements

  • tmux (byobu optional but recommended)
  • Python 3.10+
  • Tailscale installed, running, and connected

Install

Homebrew (macOS / Linux)

brew tap dustinkirkland/trustmux
brew install trustmux
trustmux-enable    # configure tailscale serve + start daemon
trustmux-pair      # generate pairing code; enter on phone

pip (PyPI)

pip install trustmux
trustmux-enable
trustmux-pair

Debian / Ubuntu (.deb)

Trustmux is bundled with byobu — installing byobu brings trustmux along:

sudo apt install byobu
trustmux-enable
trustmux-pair

Or with the PPA for the latest release:

sudo add-apt-repository ppa:dustinkirkland/byobu
sudo apt install byobu
trustmux-enable
trustmux-pair

Daily use

trustmux-ctl start      # start daemon
trustmux-ctl stop       # stop daemon
trustmux-ctl restart    # restart daemon
trustmux-ctl status     # show URL and running status
trustmux-ctl log        # tail the daemon log

trustmux-pair           # generate a pairing code for a new device
trustmux-unpair         # list paired devices and remove them

Setup from source

cd mobile/
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
./trustmux-enable
./trustmux-pair

Configuration

Path Purpose
~/.config/trustmux/tokens.json Paired device session tokens (mode 0600)
~/.config/trustmux/trustmux.sock Admin Unix socket (mode 0600)
~/.config/trustmux/trustmux.log Daemon log (mode 0600)
~/.config/trustmux/machines.json Optional: sibling machines for the machine selector

Multiple machines

[
  { "name": "work",     "url": "https://work-machine.tail1234.ts.net" },
  { "name": "personal", "url": "https://personal.tail1234.ts.net" }
]

Security

  • Daemon binds to 127.0.0.1:7432 only — not reachable from the network
  • All traffic encrypted by Tailscale WireGuard; HTTPS via tailscale serve
  • No relay server — terminal data never leaves your Tailscale mesh
  • Pairing codes: 6-digit, 5-minute TTL, single-use, max 10 attempts
  • Session tokens: 256-bit random, stored at mode 0600

Tests

cd mobile/
python3 -m unittest tests.test_daemon -v

Troubleshooting

502 Bad Gateway — tailscale serve is running but daemon isn't: trustmux-ctl start

"Serve not enabled" — visit the URL printed by tailscale serve --bg 7432

Phone can't reach URL — ensure Tailscale is active on the phone

Need to re-pair — run trustmux-pair and enter the new code on the device

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

trustmux-7.8rc1.tar.gz (68.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

trustmux-7.8rc1-py3-none-any.whl (56.7 kB view details)

Uploaded Python 3

File details

Details for the file trustmux-7.8rc1.tar.gz.

File metadata

  • Download URL: trustmux-7.8rc1.tar.gz
  • Upload date:
  • Size: 68.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for trustmux-7.8rc1.tar.gz
Algorithm Hash digest
SHA256 b2fcccc1920a1ed881f5fa20438d3bc5d2f90edb73422e9e6f652190682d1b17
MD5 e1000981710c65d7fdaa57945223b141
BLAKE2b-256 e6866f570f267ef4dd0d3ac550655c25936817bfe9ad7c177b549805ef14e61a

See more details on using hashes here.

Provenance

The following attestation bundles were made for trustmux-7.8rc1.tar.gz:

Publisher: pypi-publish.yml on dustinkirkland/byobu

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file trustmux-7.8rc1-py3-none-any.whl.

File metadata

  • Download URL: trustmux-7.8rc1-py3-none-any.whl
  • Upload date:
  • Size: 56.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for trustmux-7.8rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 6a5c3c60f7f66ca4dfac47dfcbfc5c1a782247b4afe0289c62a3731aa1072c0d
MD5 d1f404f9326cc7e47388f48e92d163c8
BLAKE2b-256 78a152b72845ed0de12471f4b9e8cc05cd342915e6c5ca0493819c5e7ac46edd

See more details on using hashes here.

Provenance

The following attestation bundles were made for trustmux-7.8rc1-py3-none-any.whl:

Publisher: pypi-publish.yml on dustinkirkland/byobu

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page