Tools for Remote Pair Programming
The world just went remote. For many of us, indefinitely. Pair programming—already valuable—now requires new tools.
Why Remote Pairing is Different
In-person pairing is natural:
- Shared screen (literally)
- Point at code with fingers
- Instant keyboard handoff
- Body language cues
Remote pairing needs tooling to recreate these.
VS Code Live Share
Microsoft’s solution is the gold standard for VS Code users.
Setup
# Install extension
code --install-extension ms-vsliveshare.vsliveshare
Features
Real-time collaboration:
- See each other’s cursors
- Edit simultaneously
- Shared debugging sessions
Shared resources:
- Terminal sharing
- Port forwarding (share localhost services)
- Shared servers
Starting a Session
- Click “Live Share” in status bar
- Copy invitation link
- Share with partner
Best Practices
# Use cursor highlighting to show what you're discussing
# Cursor colors distinguish participants
- Name your cursor (Settings → User Name)
- Use voice alongside (Live Share Audio or external)
- Set focus follows to track partner
JetBrains Code With Me
For IntelliJ, PyCharm, WebStorm users.
Features
- Built into JetBrains IDEs
- Full IDE features for guests
- Permission controls (edit, read-only)
- Video/voice chat built-in
Setup
Help → Register Code With Me → Start Session
Pros/Cons
Pros:
- Native JetBrains experience
- Rich IDE features preserved
- Built-in audio
Cons:
- Requires JetBrains license for full features
- Heavier than VS Code Live Share
Tuple
Purpose-built for pair programming on macOS.
Features
- Ultra-low latency
- Natural mouse handoff
- Click-to-draw on screen
- Minimal UI
Why It’s Different
Tuple focuses on pairing, not general screen sharing:
- Sub-50ms latency (feels instant)
- Designed for 8-hour sessions
- Mouse control that actually works
Limitations
- macOS only
- Paid ($$$)
- No Linux/Windows support
PopOS + Builtin Tools
For Linux users:
GNOME Screen Sharing
# Enable in Settings → Sharing → Screen Sharing
tmux + SSH
The classics work:
# Host
tmux new-session -s pair
# Guest
ssh user@host
tmux attach -t pair
Combine with Neovim for the terminal-native experience.
Screen Sharing Alternatives
When specialized tools aren’t available:
Discord / Slack Screen Share
- Free, everyone has it
- Screen share + voice
- Lower quality than specialized tools
Zoom Screen Share
- Request remote control
- Draw annotations
- Widely used in enterprises
Terminal-Based Pairing
tmux + ssh
# Create shared session
tmux new-session -s pairing
# Partner connects
ssh user@host -t tmux attach -t pairing
tmate
Like tmux but easier sharing:
brew install tmate
tmate
# Shows connection command for partner
ssh abc123@lon1.tmate.io
Best Practices
Audio is Essential
Pairing without voice is painful. Use:
- Built-in (Live Share Audio, Tuple)
- External (Discord, Slack, Zoom)
Agree on Conventions
- Who’s driving vs navigating
- Rotation intervals (15-30 minutes)
- When to take breaks
Screen Setup
┌─────────────────────────────────────┐
│ Shared Editor │
│ │
├─────────────────────────────────────┤
│ Terminal (also shared) │
└─────────────────────────────────────┘
Voice call in separate window/device
Internet Matters
- Wired > WiFi
- Close bandwidth-heavy apps
- Test your connection first
Tool Selection Guide
| Situation | Tool |
|---|---|
| VS Code users | Live Share |
| JetBrains users | Code With Me |
| macOS, willing to pay | Tuple |
| Terminal-centric | tmate/tmux |
| Quick ad-hoc | Discord/Zoom screen share |
Remote Pairing Etiquette
- Be on time: Async is hard if sessions start late
- Camera on (optional): Helps with presence
- Mute when not talking: Background noise kills focus
- Explicit handoffs: “I’m taking the keyboard now”
- Regular breaks: Screen fatigue is real
Final Thoughts
Remote pairing is different but not worse. The right tools make it feel natural.
Start with VS Code Live Share—it’s free and excellent. Explore others as your team’s needs evolve.
Distance doesn’t prevent collaboration. Bad tools do.