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
- works with low wifi (video is the worst, and therefore, saves the planet)
- fast to setup (1min) and easy to understand
- free
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 :
- After signing in
- You need to click “Live Share” and an invite link appears : click “Read-only” if you don’t want your collaborator to be able to modify code on your machine. He will only view it. or simply use the tab on the left panel
- You just need to send your invite link to your collaborator, by email or slack… and start working together
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
- avoid sharing multiple teminals
Reference
Offcial github repo
Tmux github repo