Tuple: the Code With Me alternative built for remote pair programming

Just because JetBrains is sunsetting Code With Me doesn't mean you have to stop pairing.

Use code CWM30 and get your first month free

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

Why developers are switching to Tuple

JetBrains sunset Code With Me in March 2026; final shut down Q1 2027. Need an alternative? Tuple is purpose built for remote pair programming.

OURS
Built for developers and pairing
Remote control by default
Ergonomic annotation tools
Lightweight UI gets out of your way
Engineered to prioritize screen quality
Tasteful, developer-first defaults
THEIRS
Built for general purpose meetings
Remote control buried in settings
Flakey or nonexistent annotation tools
Heavy UI hogs the screen
Engineered to prioritize webcams
Generic, bureaucrat-first defaults

TESTIMONIALS

Don't take our word for it

Here are some of the nice things people have said about Tuple.

Really impressed by Tuple after switching from Code With Me. Getting on calls is effortless, the video quality is excellent, and it's so easy to annotate and control my partner's machine.

Justin McManus

Justin McManus

Tech Lead, Frieda Health

It’s faster, easier and more seamless than anything we’ve tried.

Ian Lesperance

Ian Lesperance

Senior Principal Software Engineer, Vimeo

So impressed with Tuple. It makes pair programming remotely fun again.

Michael Feldstein

Michael Feldstein

Staff Engineer, Figma

It's the best tool for remote pair programming. It feels like you're working on a shared computer.

Andrés Taylor

Andrés Taylor

Developer, PlanetScale

We resolve issues way faster. Using Tuple makes me feel like I'm sitting in the same room as my team.

David Pulay

David Pulay

CTO, Suppli

Tuple is a game changer. It makes it feel like I'm in an office with my peers.

Sébastien Marchand

Sébastien Marchand

Software Engineer, The Browser Company

BUILT WITH LOVE

Developers deserve sharp tools

Break out of the IDE and pair program across your entire operating system.

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

Let's Go

Happy pairing

Former CWM customers use code CWM30 and get your first month free after your 14-day trial.