Documentation / Collaboration and integrations

Live Share

Pair-program on the same project with end-to-end encryption, single-use invites and per-guest permissions. Your secrets are never shared.

Live Share lets another person edit the project you have open together with you: both of you type at the same time, see each other's cursor, chat and can follow a debugging session together. No cloud servers are needed: the connection goes straight between the two machines.

Open it with the Live Share: pair programming command (Tools group, from Find action, Ctrl+Shift+A). It opens in a tab.

Start a session

  1. Press Share this project.
  2. Type Your name.
  3. In Share on, choose where to listen: Local network (with your address), Another address (VPN)… or This machine only (SSH tunnel). Yuli listens on that interface only, never on all of them.
  4. Choose the options: Approve each guest before they join, Guests can edit and Share my debugging session.
  5. Press Start sharing and send the invite to your teammate over a trusted channel.

The invite looks like this:

text
yuli-live://host:port/token#sha256

It carries the address, a secret token and the SHA-256 fingerprint of the session certificate.

Security

Protection Details
Encryption TLS 1.3 with a certificate created for each session. Its SHA-256 fingerprint travels in the invite and is pinned: no certificate authority is needed.
Token 128 bits from the system random generator, single use, compared in constant time.
Expiry The invite expires after 30 minutes by default.
Failed attempts Up to 5 per address per minute.
Participants 12 at most per session.
Document size 4 MB at most per shared file.

Approving a guest

If you turned approval on, Yuli tells you: "{name} wants to join". You choose:

Option What happens
Accept (read-only) They join and see the project, without editing.
Accept with editing They join and can edit.
Reject They don't join.

Per-guest permissions

During the session, in the participant list, you change each guest's permissions:

Permission Default
Edit Depends on how you accepted them.
Terminal Off.
Remove Takes the guest out of the session.

The Terminal permission gives the guest a real terminal on your machine, with your account. Turn it on only for people you fully trust, and turn it off as soon as they no longer need it.

Joins, removals and permission changes are written to the audit log.

What is shared

  • Simultaneous editing of the project's files.
  • Each participant's cursor, and Follow another participant.
  • A session chat.
  • Your debugging session, if you share it: the line where it is paused, the stack and the variables. Guests can request steps.

What is never shared

Secrets, the credential vault, the .git/ folder and anything outside the project (symbolic links included). Files ignored by .gitignore only if the host shares them. A file with a detected credential reaches guests redacted and read-only.