Upterm is an open-source solution for sharing terminal sessions instantly over the public internet via secure tunnels. Upterm is good for
- Remote pair programming
- Access remote computers behind NATs and firewalls
- Remote debugging
Usage
The host starts a terminal session:
upterm host -- bash
The host displays the ssh connection string:
upterm session current
=== IQKSFOICLSNNXQZTDKOJ
Command: bash
Force Command: n/a
Host: ssh://uptermd.upterm.dev:22
SSH Session: ssh IqKsfoiclsNnxqztDKoj:MTAuMC40OS4xNjY6MjI=@uptermd.upterm.dev
The client opens a terminal and connects to the host’s session:
ssh IqKsfoiclsNnxqztDKoj:MTAuMC40OS4xNjY6MjI=@uptermd.upterm.dev
Installation
brew install jingweno/upterm/upterm
Upterm is designed from the group up not to be a fork of anything. It builds around the concept of linking the input & output of any shell command between a host and its clients. As you see above, you can share any command besides tmux
. This opens up a door for securely sharing a terminal session using containers.
Tmate
Upterm is an alternative to Tmate.
Upterm is written in Go. It is more friendly hackable than Tmate that is written in C because Tmux is C. The Upterm CLI and server (uptermd
) are compiled into a single binary. You can quickly spawn up your pairing server in any cloud environment with zero dependencies.