Pair on your code with others

On this page

Pair is a call with up to three people: you talk, share your screen when you want them to see it, and let one of them use your mouse and keyboard when you say so. Everyone needs Short Leash, on a Mac or a Windows PC. Your screen and voice go straight between your computers, encrypted; Short Leash runs no server and keeps no copy.

Hosting a call is part of Short Leash Pro; joining someone's call is free.

Start a call

  1. Open Pair. Above the start buttons, What Pair needs on this Mac (or PC) says what the system allows Short Leash; see Permissions. Nothing in it stops you starting.
  2. Press Start with voice. The call starts with your microphone only, and you share your screen when there's something to see. Start and share a screen shares one from the start.
  3. Press Copy invite and send the link however you like: chat, email, a message.
  4. When someone opens it, they appear under Waiting to join. Names aren't checked, so make sure it's the person you invited, then press Let in.
Terminal window
leash pair start      # Invite: https://calm-fox-1234.trycloudflare.com/#…
leash pair status     # who's waiting and who's in
leash pair let-in 1
leash pair share      # share your screen; stop-sharing goes back to voice
leash pair end        # Call ended. The invite no longer works.

AI tools connected through leash mcp can read the call with pair_status, let someone in with pair_let_in and end it with pair_end. They can't give control.

The invite works while the call lasts, for up to three people at once. Replace link makes a new one if it went to the wrong place; people already in stay. End call ends it for everyone.

A small call bar stays above your windows during a call, at the top of the screen you're using until you move it: the clock, everyone's faces, then Mute, Camera and Share my screen (or Stop sharing) as icons, each named when you point at it, then More and End. More holds the rest: Take notes, Draw while someone else shares, Hide a window while you share, Open Pair, and for a guest Open shop.test and Show terminal when the host shares them. A guest's Ask for control stays on the bar with its words. Asks, errors and notes open under the bar with their own buttons. On a narrow screen faces after the third fold into +N; Mute and End (or Leave) always show. The people watching never see it: it's kept out of the shared screen. The arrows at its end fold it into a pill with the clock, everyone's faces and Mute; the arrows on the pill open it out again. Short Leash remembers the choice for the rest of the call.

To move the call bar, drag the dots at its start. The places it can go show on the screen: the top, the bottom, the left, the right and the four corners. Let go and it snaps to the nearest one. Click the dots instead for Layout (Horizontal or Vertical) and Move to, a small map of the eight places; with the dots focused, the arrow keys move it to the next place. At the left or right it stands up, in one column: the clock, everyone's faces, then the buttons as icons, each named beside it when you point at it. Muted and End (or Leave) keep their words. In a corner it keeps the layout it had. Menus, notes and asks open toward the middle of the screen: beside the bar when it stands up, above it at the bottom. The pill has the same dots, with Move to, and stands up at the left or right like the bar. A status that lasts the call, such as "Voice only. Your screen isn't shared.", closes with × until it changes. Later calls open the bar where you left it.

While your microphone is off, the button says Muted, with a crossed-out microphone, and while your camera is off its icon is crossed out. Everyone whose microphone or camera is off has a small crossed-out badge on their face, on the call bar and the Pair screen. If you talk while muted, the call bar says "You're muted." with Unmute, at most once every two minutes. Muting is instant and never stops anyone's video; your computer's microphone light stays on while you're in the call, muted or not.

Whoever is talking gets a cyan ring around their face, on the call bar and the Pair screen; screen readers say "Speaking". Someone muted never gets the ring.

You can also start a call from Short Leash's menu bar popover (the notification area on Windows): the Pair pill has Start a call, which starts with voice, Start and share a screen and Join someone's call. The popover then shows the invite with Copy invite, and anyone who asks to join with Let in and Turn away, so you can run a call without opening Short Leash's window. The first time, it opens the Pair screen instead, so you see what Pair needs on this computer.

While you're in a call, the lamp in Short Leash's menu bar icon (the notification area on Windows) wears a headset, and the menu bar popover opens with the call at the top: who's in it, whose screen is shared or "Voice only", how long it has run, Open Pair, and End call (Leave when you joined).

Quitting Short Leash ends a call you host, or leaves one you joined.

Take notes on the call

Take notes in the call bar's More transcribes the call on your computer, you and the others, as meeting notes titled "Pair call". While notes run, a quiet Notes chip on the bar shows the time, and Stop notes is in More and on the notes banner. Let everyone in the call know you're taking notes. If meeting notes aren't turned on yet, Take notes opens Turn on meeting notes first.

Share your screen

Press Share my screen at the top of the Pair screen or on the call bar, at any time during the call. On a Mac, macOS's own picker opens; the call bar steps into the bottom-right corner, small, and says what to do: move the pointer to the screen you want to share, then click the button on it. Cancel there goes back to voice. If you close the picker or leave it for 20 seconds, the call bar says "No screen shared yet." with Choose a screen again.

While you share a whole screen, cyan marks sit in its four corners, so you always know what's visible. Only you see them: they're kept out of the shared screen. While someone has control, the control frame takes its place, and everyone sees that one.

Stop sharing goes back to voice; the call carries on, and control comes back to you.

Change screen, next to your name while you share, picks again. On a Mac, macOS's picker opens, with screens and windows. On Windows, Short Leash lists your screens and your windows; pick one and press Share. Windows draws a thin border around a window you share, so you can tell it's visible. Windows of apps you hide in Settings › Pair can't be picked.

While you share one window, whoever has control can only click inside it, and their typing only reaches it: Short Leash tells you when it holds keys back because another window is in front.

Show or hide one window during a call

While you share a whole screen, each window that's hidden from the people watching (Short Leash's own, and those of the apps you hide in Settings › Pair) has a small chip at its top-right, in its title bar: "Hidden from the call" with Show. Show lets everyone see that window; its chip then says "Shown in the call" with Hide, which covers it again.

To hide a window that isn't hidden, choose Hide a window in the call bar's More. The pointer becomes a crosshair, the window under it gets an outline, and a label says which app it belongs to ("Click to hide Notes"). Click the window to hide it; it gets a chip too, so you can show it again. Press Esc, or Cancel on the call bar, to stop without hiding anything.

Only you see the chips, the outline and the label: they're never in the shared screen. A chip goes when its window closes or is minimized, and stays out of the way while another window is in front of its spot. What you show or hide this way is for one window and lasts until the call ends, or until someone else takes a turn sharing; to hide an app in every call, add it in Settings › Pair.

Join a call

Open the invite you were sent. Your browser hands it to Short Leash (Open in Short Leash), which asks before joining. You can also paste the link on the Pair screen. Check your name, choose whether to join with your microphone on, and press Ask to join. The host lets you in. When they share their screen, it opens in a window of its own.

Closing that window leaves the call. Only join invites from people you know.

Join from a browser

Without Short Leash, open the invite in Chrome, Edge, Firefox or Safari, on a computer or a phone, type your name and press Join in this browser. Your browser asks for your microphone first; without it you can still listen, and the call shows No microphone. While the host lets you in, pick a microphone and speak to check it on the level meter. The host sees "in a browser" next to your name.

In the call, the page shows whoever shares their screen, with the call's time and how this browser connects to everyone ("Direct to everyone, encrypted", or who's relayed or can't be reached). Beside it are the cameras that are on and In this call: everyone's face or initials, with a ring while they speak, and what they're doing ("Host, sharing their screen", "Muted, camera off"). When nobody shares, everyone shows large, cameras included.

  • Mute turns your microphone off and on, and its chevron switches to another microphone without interrupting the call. If you talk while muted, the page says "You're muted." (at most every two minutes).
  • When someone asks you to unmute, you see "Ana Lima asks you to unmute." with Unmute and Not now. That's the only thing a browser can be asked.
  • Fit fits the shared screen to the page, Actual size shows it pixel for pixel to scroll around, and Full screen shows only the screen with a small bar to mute or exit. On a phone, the page stacks in one column, and full screen fills the window where the browser can't go full screen (iPhone).
  • If the connection to the host's computer drops, the page says Reconnecting… with the time left: screen and voice carry on, and your place is kept for 90 seconds.

In a browser you watch, talk and show your camera: Camera beside Mute turns it on, and its chevron chooses which (on a phone, the front or back one). Your own tile shows mirrored, as "You". A browser that can't send video Pair understands (AV1 or VP9) has no Camera button. You can't be given control, a turn sharing, or a terminal's keyboard, and you can't draw. Sites and terminals shared with the call need Short Leash; the page says when the host shares one, with Open in Short Leash. Nothing is installed and nothing is recorded: the page, its script and its fonts come from the host's computer through the call's tunnel.

Take turns sharing

A guest presses Share my screen on their Pair screen or call bar to ask. You see "Asks to share their screen" next to their name; Let Ana share (with their name) gives them the turn. They pick what to share, and everyone in the call watches their screen in a window of its own. Your own capture stops meanwhile. Anyone can also ask someone to share (see below): when they say yes, their turn starts and the last one ends.

Control of a screen ends when its turn does. The guest presses Stop sharing when they're done, or you press Share my screen to take your turn back at any time. If they leave the call, you share again.

Ask someone to unmute, turn on their camera or share

Click someone's face on the call bar. Under their name it says how they are ("Muted, camera off", "Host, sharing their screen"), with what you can ask: Ask to unmute, Ask to turn on camera, Ask to share screen, and on the person sharing, Ask for control. The call bar then says "Asked Ana to unmute." (with their name).

They see "Ana asks you to unmute." with Unmute and Not now, and the same for a camera ("Turn on camera"), a screen ("Share screen") or control ("Give control"). Nothing turns on until they press it. An ask goes away after a minute. After Not now, the same ask can't come again for 30 seconds, and nobody can ask more than six times a minute. Someone in a browser can only be asked to unmute or to turn on their camera. AI tools and the leash command can't answer asks (ADR 0046).

Draw on the shared screen

While someone else shares, choose Draw in your call bar's More, then drag in their screen's window to draw. Everyone sees your marks on the shared screen, and each fades a few seconds after you finish it. Done drawing, in the same place, goes back to watching. Drawing can't click or type.

Whoever shares sees "Ana is drawing on your screen" (with their name) in their call bar, and Clear marks removes every mark at once. Each person's marks have their own color.

Turn your camera on

Camera in your call bar turns your camera on or off; it's off until you turn it on, in every call. Everyone's cameras show as tiles in a window of their own that stays above your other windows, yours as "You". The window is never in your shared screen. Drag its edges to make the tiles bigger; each picture keeps its shape and stays sharp, because each camera is sent at the size you show it at, up to 960 × 720 (ADR 0048). A wide camera shows its middle rather than being squashed. The chevron beside Camera lays the tiles out in a Row, a Column or a Grid, and Hide my video leaves your own tile out (the others still see you); both are kept for later calls. Close the window to hide the tiles; it comes back when someone else turns their camera on. Pair uses the camera chosen in Settings › Pair, or your computer's default camera, which can be a virtual camera such as OBS's or Elgato's. A camera that gives no picture within a few seconds, or only a black placeholder, like a virtual camera whose app isn't open, gives way to the next one, and Short Leash says which it used instead. A camera you chose is used whatever it shows.

Choose a microphone or camera

Pair uses your computer's default microphone and camera until you choose others. The chevron beside Mute on the call bar lists your microphones, and the one beside Camera your cameras, with the one in use checked. Pick one and the call switches to it at once, without anyone needing to rejoin; System default follows whatever your computer's sound or camera settings choose. A choice is kept for later calls, and Settings › Pair has the same two lists outside a call.

When the microphone or camera you chose isn't connected, the call uses the default instead, and the call bar says so ("Jabra Evolve2 isn't connected, so the call uses MacBook Pro Microphone"). Plug it back in and the call switches to it within a few seconds. Choosing a device changes nothing about how your voice sounds: only where it comes from.

Give control

Whoever has control can do anything you can on your computer, so give it only to someone you know.

Whoever shares a screen, host or guest, gives control of it: someone controls what they can see (ADR 0046). While you share, Give control is in the menu on each person's face in the call bar, and next to their name on your Pair screen when you host. One click gives it: there's no code to compare (ADR 0043). Their name then says "Has control", and a line under it reminds you how to take it back.

When you're a guest sharing your screen, Short Leash asks the first time in a call: "Ana will be able to use your mouse and keyboard. Move your mouse or touch a key to take it back." with Give control and Cancel. The host can be the one you give control to.

One person has control at a time. Move your mouse or touch a key and control comes straight back to you; Take back control does the same, and so does Stop sharing. Anyone can ask the person sharing for control with Ask for control.

Between a Mac and Windows, a guest's shortcuts do what they meant on your computer: ⌘C is Ctrl+C, ⌘← is Home, ⌥← moves by a word as Ctrl+← does, ⇧⌘Z is Ctrl+Y, ⌘G is F3, and ⇧⌘] and ⇧⌘[ switch tabs. The same holds the other way round.

Even with control, nobody can, on the screen you share:

  • type into password fields (on a Mac, while macOS's secure input is on);
  • reach windows that run as administrator on Windows (Windows doesn't let other programs type into them);
  • use the apps listed in Settings › Pair (Keychain Access, System Settings and password managers, unless you change the list);
  • use shortcuts that quit, switch or lock: ⌘Q, ⌘Tab, ⌘Space, Ctrl+Alt+Delete, Win+L and the like.

Short Leash tells you when it holds something back.

Share a site with the call

On the Pair screen, under the people in the call, choose one of your sites and press Share a site. Guests get Open shop.test (with your site's name) in their call bar's More, which opens your site in their browser, served from your computer through the call's tunnel.

Only people in the call can open it. Each press of Open makes a link that works once, within a minute, and leaves a cookie in that browser for the rest of the call, so a forwarded link opens nothing. The site isn't shared publicly and your sharing password isn't asked for. Stop ends it straight away, and so does ending the call or removing the guest.

The site sees requests as it does when you share it publicly, on the tunnel's https:// address, and your IP allowlist in Settings › Sharing still applies. Short Leash removes its own cookie before the request reaches your site.

Share a terminal with the call

On the Pair screen, choose one of your running terminals and press Share a terminal. Everyone in the call watches it on their own Pair screen, at your terminal's size; Show terminal in their call bar's More takes them there. Only you type.

To let someone type, press Give Ana the keyboard (with their name). Their keys reach that terminal and nothing else on your computer, and you can still type too. Take back the keyboard ends it, and so does their leaving. Stop closes everyone's copy; your terminal carries on.

Guests see the last part of what the terminal already shows, then everything new, through the call's own connection to your computer.

Permissions

Before a call, the Pair screen lists what Pair needs on this computer, one row each, with where it stands: Allowed, Not asked yet, Turned off in System Settings, or Restart needed. It looks again every two seconds while it shows, so a change in System Settings appears by itself. You can start a call whatever it says. The first time, each row also says where the system keeps it.

Row Needed for What to press
Microphone your voice Allow, and the system asks once
Camera (optional) your camera; Pair works without it Allow
Control of this Mac (Mac only) someone using your mouse and keyboard while you share Allow, then turn Short Leash on in Privacy & Security › Accessibility

A row that's turned off says what it costs, with Open System Settings at the right place. macOS often applies Accessibility only to a fresh launch: when control still isn't allowed after you come back from System Settings, the row says "Restart needed", with Restart Short Leash. The daemon, your sites and their services keep running while Short Leash starts again.

Sharing your screen needs no permission on macOS 14 and later: you pick the screen in macOS's own picker. macOS also asks for Local Network the first time a call reaches a person on the same network as you.

On Windows, the list has the microphone and the camera only (Open Settings for one that's turned off): Windows needs nothing more to let a guest use your mouse and keyboard.

Settings › Pair

  • Your name: what people you pair with see.
  • Microphone and Camera: the ones calls use, or System default (Choose a microphone or camera).
  • Your avatar: Choose a picture… (PNG, JPEG or WebP) shows it to people in your calls instead of your initials; Remove goes back to your initials. Short Leash shrinks it to a small square and keeps only that, readable only by you. People already in a call see the change from their next call.
  • Start calls muted.
  • Hide my local network address: people on the same network as you connect over the internet instead of directly. A little slower.
  • Relay every call: every call goes through your relay (needs a TURN key; see below).
  • Hide Short Leash from the shared screen (on by default): Short Leash's windows show as a hatched panel labeled "Hidden by Short Leash" to the people watching; turn it off to show them. The call bar is never shown to them, whatever this says.
  • Hide from your shared screen: apps whose windows show as a hatched panel to the people watching, wherever they are on your screen, such as Messages or Slack. Add them by bundle ID on a Mac (like com.tinyspeck.slackmacgap) or program name on Windows (like slack.exe). Their panels carry no label, so they don't name the app; only Short Leash's own say "Hidden by Short Leash", once per window, where there's room. Nothing of a hidden window shows through its panel, which keeps its light colors in either theme. Changes apply straight away, even during a call. Only the part of a hidden window that shows is covered: a window in front of it stays visible. Notifications aren't covered. You still see everything on your own screen. To show or hide one window for a single call, use its chip or Hide a window (Show or hide one window during a call).
  • When someone has control: the apps a guest's clicks and keys never reach.

Calls that won't connect

Most calls connect straight between computers. About one in five can't: a company network or a strict router on one side blocks direct calls. Pair then says Couldn't connect to … directly and offers Set up relay.

A relay passes the call through Cloudflare's TURN service on your own Cloudflare account. Only the host needs one; guests set up nothing.

  1. In the Cloudflare dashboard, open Realtime › TURN and create a key.
  2. Copy its Key ID and API token.
  3. In Short Leash, open Settings › Sharing › Relay for pairing, paste both and press Test and save.

Short Leash tests the key with Cloudflare before saving it in its secrets file, never in its settings. Each call gets relay credentials that last a day at most. Cloudflare's free allowance is 1,000 GB a month; a relayed hour is about 1 GB.

How it works

  • Joining: your invite is a Cloudflare quick tunnel to Short Leash on your computer, like sharing a site. The part after # is a secret that never reaches any server; a guest's Short Leash proves it has it, then waits for you to let them in.
  • The call: once in, everyone connects to everyone directly over WebRTC, encrypted end to end. The tunnel only carried the setup. Screens are sent as AV1 (or VP9), sharp for text, at up to 30 frames a second. If the tunnel drops for a moment, the call carries on: the guest's Short Leash connects again within a minute and comes back as the same person, with a secret you gave it when you let them in. A guest who had control loses it when that happens, so you give it again.
  • Control: a guest's mouse and keys travel on the call's own encrypted channel, and only while you've given them control.

The decisions behind Pair are in ADRs 0035 to 0040, 0042, 0043 and 0044.