# Sharing by link

> Show someone a session or a whole machine. They join from a browser or Muxin, straight to your computer, and do only what you allow.

Need a second pair of eyes on what an agent is doing? Share it. Muxin makes a link for a session, or for a whole machine. Whoever opens it joins from a browser or from Muxin, and connects straight to your computer. You let each person in, and you decide what they can do.

*Sharing Beelink: Sam opens the link, you let them in, they watch, then type, then look at the desktop.*

## Share a session

On a session’s page, click **Share**. The link is made and copied, ready to paste into a chat. It looks like `https://muxin.dev/s#1.…`.

Out of the box, you let each person in, they can only watch, and the share lasts an hour. Change any of that in the same window, while it runs:

- **Ask me before letting someone in.** On by default. Turn it off and anyone with the link can watch.
- **They can type.** Their keys go to the session, as you. Only for people you let in.
- **How long.** 15 minutes, an hour, 8 hours or a day.

## Share a machine

On a machine’s page, **Share** does the same for the whole machine. Guests see its sessions, including ones started later, and open any of them. In the same window you can also share:

- **Its desktop.** **View** shows them the screen. **Control** lets the people you choose use its mouse and keyboard.
- **Its servers.** Pick which of the web servers running there they can open. They open in Muxin, at `localhost` on their computer.
- **Starting and ending sessions.** Off by default. Turned on, the people you let in who can type can start a terminal or an agent there, and end or restart sessions.

Nothing else is shared: no files, no other ports, no shell of its own.

> **Warning:** A terminal runs anything, as you. Let someone start sessions, or type in a shell, only if you’d hand them your keyboard.

## Let people in

When someone opens the link, a card shows over whatever page you’re on: their name, whether they’re in a browser or in Muxin, and a 6-digit code. They see the same code. Ask them to read it out, then click **Let in**, or **Deny**.

A link that leaked gets someone a code nobody reads to you, so it gets them nowhere.

## While you share

The **Share** button turns into **Shared · Sam watching**, or how many are there. Click it to:

- Let someone type, use the desktop, or start and end sessions, or stop them.
- Remove someone.
- Copy the link, add an hour, or change the options.
- **Stop sharing.**

A shared session has an eye next to it in the sidebar. A dot means someone is waiting to be let in.

## Join a share

**In a browser.** Open the link, type your name, and click **Join**. Nothing to install. You see the sessions, and the desktop when it’s shared. Pick its quality under it: Low, Medium, High or Max.

**On a phone or tablet.** The same link, in its browser. The page fits the screen: one header row, the session below it. On a tablet a session’s text fits its width; on a phone it’s as wide as it can be read, and you swipe sideways for the rest (or turn the phone). On a shared desktop you’re let use, touch works like a mouse:

- **Tap** to click, **touch and hold** to right-click.
- **Drag** with one finger to drag (select text, move a window).
- **Two fingers** up or down to scroll.
- **Keyboard**, under the screen, brings up your keyboard: what you type goes to their screen.

While you’re only watching, touch scrolls and zooms the page as usual.

**In Muxin.** Click **+** next to **Shared with you** in the sidebar and paste the link. **Machines › Join a Share…** in the menu bar and `⇧⌘P` › **Join a share…** do the same, and a share link pasted into **Add a machine** is joined too.

A shared machine then sits in your sidebar like one of your own, its sessions, desktop and servers under it. Right-click any of them for what you can do there: open a session, start a terminal or an agent, end one, set the desktop’s quality, open a server here, or leave. What you aren’t allowed to do shows dimmed, with who to ask.

Sessions show at the size the sharer’s terminal is. Your window doesn’t resize theirs.

## Peer to peer

1. **The link**: It carries the share’s secret after the #. Browsers never send that part to a server.
2. **muxin.dev introduces you**: Two short messages so the two computers can find each other. It never sees the secret or what’s shared.
3. **Straight to your computer**: An encrypted connection (WebRTC), checked against the certificate in the link, so nobody can sit in the middle.

*An encrypted relay carries it only when no direct path works.*

The two computers connect directly: over your network or Tailscale when they share one, across the internet otherwise.

## How it stays secure

- **The secret stays in the link.** It’s after the `#`, the part browsers never send to a server. muxin.dev only passes two messages between the computers, and never sees the secret, the session or the screen.
- **Encrypted end to end.** The connection is encrypted between the two computers (WebRTC, DTLS). When a relay carries it, the relay only forwards bytes it can’t read.
- **Nobody can sit in the middle.** The link names your computer’s certificate for this share. A guest refuses any other, so not even the server introducing them can stand in.
- **Proof of the link.** A guest proves it has the secret, bound to this exact connection. A wrong or copied proof gets nowhere, and a share that sees many wrong ones stops answering.
- **You let each person in.** You both see the same 6-digit code, made from the secret and their connection. Ask them to read it out before you click **Let in**.
- **Your computer decides what gets through.** Guests never reach the machine itself. Muxin on your computer passes only what you allow: keys while you let them type, the mouse while you let them use the desktop, the servers you picked. The machine’s agent also gives watchers a view that can’t type or resize.
- **It doesn’t last.** A share ends when its time runs out, when you stop it, or when you quit Muxin, and its link never works again. Every link is new: sharing again makes a new one.
- **Nothing to sign up for, nothing kept.** No accounts or cookies. muxin.dev keeps the two messages only for the minutes it takes to connect.

> **Warning:** Anyone you let type, use the desktop or start sessions acts as you on that machine. Give those only to people you trust with your keyboard.

## When it ends

A share ends when its time runs out, when you click **Stop sharing**, or when you quit Muxin. Everyone is let go and the link stops working for good.

> **Note:** Your computer hosts the share, so Muxin needs to be open and your computer awake while it lasts.

## Your own server

To introduce the two sides through a server of your own instead of muxin.dev, run `share-server/` from Muxin’s repository and add it to `config.toml`:

```
[settings.share]
server = "https://share.example.com"
```
