Upterm: Secure Terminal Sharing

Share a terminal session with upterm.

Host a Session

upterm host --github-user 'USERNAME' --server ssh://upterm.mulatta.io:2323 \
  --force-command 'tmux attach -t pair-programming' \
  -- tmux new -t pair-programming

Replace USERNAME with the GitHub user you want to share the session with.

For zellij, use zellij attach pair-programming and zellij -s pair-programming instead.

Important: Run this command from a terminal outside of tmux/zellij. Running upterm from within an existing session will not work.

Get Connection URL

Once the session is running:

upterm session current
Tmux Tip: If upterm session current does not display the session information when run from within tmux, add the following line to your ~/.tmux.conf to ensure the required environment variable is preserved:
set-option -ga update-environment " UPTERM_ADMIN_SOCKET"

Output:

=== YXBRHY1BXARIWTSGXJ8L
Command:                tmux new -t pair-programming
Force Command:          tmux attach -t pair-programming
Host:                   ssh://upterm.mulatta.io:2323
SSH Session:            ssh yXbrhy1bXaRIwTsgxJ8l:Wzo6XToyMjIy@upterm.mulatta.io -p 2323

Share the SSH Session URL with your peer.

Shell Function

Add to ~/.bashrc or ~/.zshrc:

upterm-share() {
  if [ -z "$1" ]; then
    echo "Usage: upterm-share <github-username>"
    return 1
  fi
  upterm host --github-user "$1" --server ssh://upterm.mulatta.io:2323 \
    --force-command 'tmux attach -t pair-programming' \
    -- tmux new -t pair-programming
}