Today, we are going to create a list of tools for pair programming. Why ? Because amazing tools exist, and make you more efficient. I will start with the one I know of. But please, add your favorites one in the comments.

Upterm

Why do i need

Instead of video-sharing your screen for only terminal commands, use Upterm.

What is it

Basically a tool allowing your coworker to see your terminal, in their own terminal through ssh. It’s a feature that can work well with Tmux.

Advantages

Example

upterm host -- bash
# outputs this
=== UUNJCYOCVMN9ZWLLP5IT
Command:                bash
Force Command:          n/a
Host:                   ssh://uptermd.upterm.dev:22
SSH Session:            ssh UuNjCYOcVMN9zWLlp5iT:MTAsMjQ0LjBuMTQy8kIy@uptermd.upterm.dev

Then you just need to send this command to your co-worker: ssh UuNjCYOcVMN9zWLlp5iT:MTAsMjQ0LjBuMTQy8kIy@uptermd.upterm.dev
And your good ! both of you will be able to interact with the terminal

Live Share

This only applies if you have an IDE like VScode, that enables the extensions “Live Share”. Steps are pretty straightforward :

Tmux

Why do i need

Mulitple tabs in your terminal window. Useful when you share your terminal with upterm for instance : you don’t need to share each terminal to your co-worker.

What is it

From the doc: tmux is a terminal multiplexer. It lets you switch easily between several programs in one terminal, detach them (they keep running in the background) and reattach them to a different terminal.

Advantages

Reference

Offcial github repo
Tmux github repo