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
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:MTAuMC40OS4xNjY6MjIemail@example.com
The client opens a terminal and connects to the host’s session:
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.
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.