Skip to main content

A TUI for Ersilia's Tailnet

License: GPL v3 Python

A terminal dashboard to see, open, and keep awake tmux sessions across every machine on Ersilia's Tailscale tailnet — over Tailscale SSH, from one screen.

Built for Ersilia, where work is spread across shared laptops, workstations, and servers on a private tailnet.

Requirements

  • tmux (required — tuimux is a front-end for it), plus ssh, tailscale, and a terminal.
  • Python ≥ 3.9.

Install

pip install git+https://github.com/ersilia-os/tuimux

Usage

tuimux                              # the dashboard — all you normally need
tuimux attach [name]                # put this terminal into a tmux session (attach or create)
tuimux detach                       # detach this terminal; the session keeps running
tuimux autostart on|off|status      # auto-tmux every new local terminal
tuimux mouse on|off|status          # tmux mouse mode (wheel scrolls the pane)
tuimux login [host user[,user…]]    # show/set the SSH user(s) per host
tuimux devices                      # list every device in the tailnet
tuimux doctor                       # check your setup

Open, rename, detach, close, and keep-awake all happen inside the dashboard. The footer lists the keys, and a live preview of the highlighted session shows under the table.

Setup conventions

tuimux assumes a small, consistent tailnet. The simplest way to have everything work from the start:

  • Enable Tailscale SSH on every computersudo tailscale up --ssh. Phones and tablets are status-only (never SSH'd).
  • Use the same SSH username (and password) on all machines. tuimux logs in as your local $USER by default, so a consistent username makes every box reachable with no per-host setup. Override per host with tuimux login when needed.
  • Give each device a tailnet name matching its hostname, so the dashboard names line up with the machines.
  • Tag shared machines that several people log into with tag:dev — the Tailscale ACL tag we use for inbound multi-user access.

About the Ersilia Open Source Initiative

The Ersilia Open Source Initiative is a tech non-profit with the mission to equip laboratories universities, and clinics in the Global South with AI/ML tools for infectious and neglected tropical disease research.

tuimux is internal tooling we built to work comfortably across our shared machines, shared here in case it helps others too.

Download files

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

Source Distribution

tuimux-0.2.2.tar.gz (80.7 kB view details)

Uploaded Source

Built Distribution

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

tuimux-0.2.2-py3-none-any.whl (63.1 kB view details)

Uploaded Python 3

File details

Details for the file tuimux-0.2.2.tar.gz.

File metadata

  • Download URL: tuimux-0.2.2.tar.gz
  • Upload date:
  • Size: 80.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.13

File hashes

Hashes for tuimux-0.2.2.tar.gz
Algorithm Hash digest
SHA256 79ed6e21603dac3def27ff0887567ca90db0f122b45b48efcd876cc0b2385172
MD5 5e45ddcbf166dfabb7f19fa937ac3294
BLAKE2b-256 cb7bcf860cb99330dbd89f010ad580eca4b1a2e7ea7f8da31975af4b8ad93cc4

See more details on using hashes here.

File details

Details for the file tuimux-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: tuimux-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 63.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.13

File hashes

Hashes for tuimux-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 803b3ba4aec61423f04b82d92173c81b8269b0ca4679438e80b97a9b68b8c26b
MD5 245aabb75c304d84c4b18772e5caf5db
BLAKE2b-256 059adb3ac9d40aa2fec74f42108cb03b8225fe2b040260e8f0037f73b1218115

See more details on using hashes here.

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