Generic screen sharing tools suck

They're fine for meetings. But for coding? They break flow and don't support the highly interactive process of remote pair programming.

Tuple is purpose-built for developers. Free for 14 days.

Wallpaper

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

Trusted by thousands of teams

BUILT FOR PAIRING

Engineers deserve sharp tools

Generic screen sharing tools just don'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.

Resolutions

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.

macOS wallpaper
macOS wallpaper

TESTIMONIALS

Why developers choose Tuple

Tuple gets you in flow and helps you stay there longer.

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

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

Braden Sidoti

Co-founder & CTO, Clerk

So impressed with Tuple. It makes pair programming remotely with co-workers and friends fun again.

Michael Feldstein

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

Andrés Taylor

Developer, PlanetScale

We tried Tuple and could finally pair smoothly again! It's the only way we pair now.

Catherine Davie

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

Sébastien Marchand

Software Engineer, The Browser Company

Small Footprint

Respectful of system resources and screen real estate

Native where it counts

The core of Tuple is a natively compiled, cross-platform C++ engine. It's not just another Electron app.

Obsessed with performance

We've been hacking on Tuple for years to make it as fast and efficient as possible. We're stingy with your CPU cycles.

Runs in your menu bar

Do you hate a cluttered dock or task bar? Well, us too. Tuple stays out of your way until you need it.

Designed for privacy

screen sharing with App Veil

Your teammates only see what you want them to see, nothing more.

screen sharing with App Veil

Hide sensitive apps and notifications, and share your desktop with confidence.

Host view
Guest view

Workflow

Built for developers, by developers

We're programmers too. We built Tuple to fit the way engineers work.

Folder icon

triggers

Folder icon

triggers

Folder icon

pause-spotify

File icon

call-initiated

File icon

call-ended

Folder icon

add-git-coauthor

File icon

participant-joined

File icon

participant-left

Automate your workflow with Triggers

Tools for programmers should be programmable.
Triggers let you hook into Tuple's call events and run arbitrary code.

Learn more
M
L
P

Copy call link

Add a participant

Open Tuple popover

Toggle microphone

Copy call link

Add a participant

Open Tuple popover

Toggle microphone

Keyboard shortcuts for everything

Keep your hands on the keyboard and stay in flow with fully customizable shortcuts.

Mac and Windows

For macOS and Windows

It doesn't matter whether your team is using macOS or Windows — Tuple works great on both.

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

Ready to get started?

Give Tuple a spin with a 14-day free trial.