Terminal Sessions
LabTether gives you browser-based terminal access to every managed node — agent-backed or manual device — without juggling SSH keys across machines or keeping a dozen terminal tabs open. Sessions can be temporary one-offs or persistent tmux-backed shells that survive disconnects.
Opening a terminal session
Two entry points:
- Terminal in the main app navigation — opens the launcher with your recent and saved sessions.
- Connect Terminal on any node detail page — jumps straight into a session for that specific node.
Previous Sessions
The terminal launcher is built around Previous Sessions — a single list that combines your saved shells, pinned shortcuts, and recent one-off connections. Instead of navigating separate setup surfaces, everything starts from this list.
Each row shows the host and its current state. Tap a row to reconnect:
- If the row has a saved shell, the main action is Resume — LabTether reattaches to the existing tmux-backed workspace right where you left off.
- If the row only has saved connection metadata, the main action is Connect — LabTether starts a new temporary session.
Saved shells remain visible in Previous Sessions even after you fully disconnect. They show as Detached until you resume them, and only flip to Attached after LabTether successfully creates the transport session.
Saved shells vs temporary sessions
Saved shells are backed by tmux on the remote machine. When you disconnect — whether intentionally or because your laptop went to sleep — the shell keeps running. Come back later and resume exactly where you left off. Long-running builds, tail commands, and monitoring sessions survive network hiccups.
Temporary sessions are one-off connections. When you disconnect, they are gone. Use these for quick checks where persistence does not matter.
To convert a temporary session into a saved shell, use the row menu and choose Save Shell For Later. The next time you open that entry, LabTether reattaches to the same tmux workspace.
Managing sessions
The row menu (long-press or context menu) on any Previous Sessions entry gives you:
| Action | What it does |
|---|---|
| Pin | Keeps the session above ordinary recents — useful for your most-used nodes |
| Rename | Changes the display label in the launcher |
| Resume Saved Shell | Reattaches to an existing tmux workspace without creating a fresh session |
| New Temporary Shell | Opens a clean one-off session, leaving the saved workspace untouched |
| Save Shell For Later | Converts the current session into a persistent tmux-backed shell |
| Save Connection / Edit Saved Connection | Manage host, port, username, host-key rules, and SSH credential profile |
| Remove From This iPhone | Hides the shortcut locally — the hub copy and remote shell are untouched |
| Delete Everywhere | Ends the remote tmux session, removes saved shell state and terminal config from the hub |
Warning: Delete Everywhere is destructive — it kills the remote tmux session first, then cleans up hub metadata. If the agent or SSH connection is down, the delete will be blocked until you restore reachability. Remove From This iPhone is safe and local-only.
Saved connections
Each terminal entry can have a saved connection with host, port, username, host-key rules, and a link to an SSH credential profile managed at Settings → Credentials.
For agent-backed nodes, LabTether auto-creates the first saved terminal mapping when the agent installs the hub's SSH key. If you later edit the host, port, username, or credential profile, those edits are preserved — the agent will not overwrite your manual changes on reconnect.
Cleaning up
- Remove From This iPhone — clears the shortcut from your local launcher. The remote shell and hub metadata are untouched. Use this when your launcher gets cluttered.
- Delete Everywhere — ends the remote tmux-backed shell, removes any ephemeral hub terminal sessions for that workspace, and then removes the stored SSH mapping and saved shell metadata for that asset. This is a full cleanup. Connected-agent cleanup uses the terminal channel directly, so it does not require separate remote command capability on the agent token.
Browse Nodes
When you want to connect to a host that is not already in your Previous Sessions list, use Browse Nodes. This gives you a search and browse flow across all nodes in your inventory. Once you connect, the node appears in Previous Sessions for quick access next time.