The best remote pair programming app on macOS and Windows
Built from the ground up to deliver razor sharp screen sharing, crisp audio, and seamless remote control, so you can get into the flow with your teammates and do real work.
Trusted by thousands of teams

PaidUsersList.tsx
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
const fetchUsersInPaidTeams = async (): Promise<User[]> => {
const response = await fetch(`${API_BASE_URL}/v1/users`)
if (!response.ok) throw new Error('Failed to fetch users')
const users: User[] = await response.json()
return users.filter(user => user.team.isPaid)
}
export const PaidTeamUsers = () => {
const [users, setUsers] = useState<User[] | null>(null)
const [error, setError] = useState<string | null>(null)
useEffect(() => {
fetchUsersInPaidTeams()
.then(data => setUsers(data))
.catch(err => setError(err.message))
}, [])
if (!users) return <Loading />
if (error) return <Error />
return <UserTable users={users} />
}
Paul
Sarah
Mike
TESTIMONIALS
Why developers choose Tuple
Screen mirroring should be buttery smooth
Tuple is integral for us as a remote team. It creates the illusion that there is nothing in the way. It’s faster, easier and more seamless than anything else we’ve tried.

Ian Lesperance
Senior Principal Software Engineer, Vimeo
Tuple spread like wildfire throughout the entire Clerk team, and quickly became an integral part of our internal communications.

Braden Sidoti
Co-founder & CTO, Clerk
So impressed with Tuple. It makes pair programming remotely with co-workers and friends fun again.

Michael Feldstein
Staff Engineer, Figma
It's the best tool for remote pair programming. Latency is important, keyboard binding all just works. It feels like you're working on a shared computer.

Andrés Taylor
Developer, PlanetScale
We tried Tuple and could finally pair smoothly again! It's the only way we pair now.

Catherine Davie
Software Engineer, Artium
Tuple is a game changer. It makes remote work so much better! It makes it feel like I'm in an office with my peers.

Sébastien Marchand
Software Engineer, The Browser Company
BUILT FOR PAIRING
Engineers deserve sharp tools
Generic screen sharing tools just won't cut it. Tuple is purpose-built for an exceptional pairing experience.
Ridiculously crisp audio and video
Tuple streams in super high resolution (up to 5K) so you can read your pair's tiny programming font.

End-to-end encryption
All audio, video, and screen share data is end-to-end encrypted, and is never sent to Tuple's servers. We take your privacy extremely seriously.
Seamless collaboration
Snappy remote control combined with clear audio and video make you feel like you're sitting right next to your pair.
const fetchUsersInPaidTeams = async (): Promise<User[]> => {
const response = await fetch(`${API_BASE_URL}/v1/users`)
if (!response.ok) throw new Error('Failed to fetch users')
const users: User[] = await response.json()
return users.filter(user => user.team.isPaid)
}
export const PaidTeamUsers = () => {
const [users, setUsers] = useState<User[] | null>(null)
const [error, setError] = useState<string | null>(null)
useEffect(() => {
fetchUsersInPaidTeams()
.then(data => setUsers(data))
.catch(err => setError(err.message))
}, [])
if (!users) return <Loading />
if (error) return <Error />
return <UserTable users={users} />
}
One click to swap who’s sharing
It just takes one click to switch who's sharing when you're on a call. Easily go back and forth with your pair on a tough problem.


Effective and Fun
Liven up your pairing sessions
Build cool stuff with your teammates – and have a good time in the process.
Screen annotations
Draw or type on a shared screen to draw attention to something or emphasize a point. Or use Tuple as a shared virtual whiteboard.
Emoji reactions
Show the rest of team how you're feeling with on-screen emoji reactions.
Animations
Finally figure out that gnarly race condition? Drop a giant "ship it" animation into the pairing session.
❤️
🤯
🔥
👍
👏
Pete
ABOUT THE APP
Screen sharing for developers
Fully native
5k video quality makes code easily legible
Written in C++ to keep CPU usage low
Low-latency audio for natural conversations
Snappy remote control keeps you in flow
No persistent UI chrome covering your IDE