# IDE Remote: your IDE on a phone or another computer

**IDE Remote** shares your JumPHP IDE with a **phone** or **another computer**: the Claude conversation, the terminal and (read-only) your files appear in a web page, and you can type into the active panel in real time. Handy to follow Claude from the sofa, answer it, or check a build away from your desk.

Only **data** crosses (conversation, terminal text, files you read), never a picture of your screen. Everything is **end-to-end encrypted**: the key stays in the link and no server ever sees it.

## What you need

- The [desktop IDE](/docs/ide-installer), open on a project.
- A phone or another computer with a browser, and the **link** the IDE gives you.
- Internet (through the relay), or the **same local network** for a direct connection.

## Share the IDE

1. In the IDE, open the **Claude** panel and click the **screen** icon, next to the phone icon.
2. Choose what you share (the **scope**):
   - **Claude panel**: the conversation only;
   - **Terminal**: the terminal only;
   - **Whole IDE**: Claude, the terminal and your files **read-only**.
3. The IDE shows a **link** and a QR code: `https://play.jumphp.net/jumphp-ide-remote/play/#...`. Open it on the phone (or paste it into the page of another computer).
4. **On the PC**, a window asks: *"Allow <device> to use <scope>?"*. Click **Allow**. Until you do, nothing is answered.
5. The page shows the IDE. Type: it goes to the active panel.

The application is `jumphp-ide-remote` ([its page](https://jumphp.net/jumphp-ide-remote)).

## Relay or direct

- **Relay** (the default): both ends reach `wss://jumphp.net/ide-relay/ws`. It works from anywhere, through any network. The relay only moves encrypted bytes.
- **Direct**: if you allow it in the IDE, the IDE listens on your local network and the device connects to it without leaving the house. Faster, and nothing goes through a server. On a phone **browser** it needs the [JumPHP runtime](/docs/runtime) (the browser itself cannot reach a PC on your network). **Safari / iPhone** always uses the relay.

The page tries the direct way first for a moment, then falls back to the relay by itself.

## Control it from the PC

- Sharing is **opt-in** and **expires** after 8 hours.
- The IDE lists the **connected devices**; **Revoke** cuts one, **Stop sharing** cuts all and makes the link useless.
- Closing the IDE ends the sharing.

## Security in short

- **End-to-end encryption** (AES-256-GCM). The key is in the link's **fragment** (after the `#`), which the browser never sends to a server. Anyone with the link can ask to connect, so treat it like a password and do not post it.
- **Consent on the PC** for every new device.
- **Deny by default**: the IDE only runs the few commands of the chosen scope (send to Claude, stop Claude, read the history, terminal input, read files). Everything else is refused.
- **No file writing from the phone.** Files change only through Claude, under the usual rules of the Claude panel. No commit, push, run or installation from the page either.
- One Claude at a time: if the Terminal's Remote Control holds the session, the text is typed into that terminal tab.

## Troubleshooting

**The PC never asks.**
Check that sharing is on (the screen icon is lit) and that the link is the **latest** one (a new share makes a new link). The link must be opened whole, with its `#...` part: some messaging apps cut it; open it from the QR code or paste it into the page's field. A link past its 8 hours is dead.

**The browser blocks the connection.**
A VPN, a company filter or an ad blocker can block `wss://jumphp.net/ide-relay/ws`: allow it, or try without. For the direct mode on a phone browser, install the [JumPHP runtime](/docs/runtime) and allow the application when it asks.

**Direct does not connect, the relay is used.**
That is normal and harmless. Causes: the two devices are not on the same network (guest Wi-Fi, "client isolation"), the PC's firewall blocks the port, the runtime is missing on the phone, or you use Safari / iPhone. Everything works the same through the relay.

**"Expired" or "Revoked".**
The sharing ended (8 hours, **Revoke**, **Stop sharing**, or the IDE was closed). Click the screen icon again for a new link.

**"Refused".**
Someone clicked **Deny** on the PC. Open the link again and ask once more.

See also [Claude in the IDE](/docs/ide-claude) and, for the direct mode, [the runtime](/docs/runtime).

Debugging by hand or with an AI: [Xdebug and PHP Debugger](/docs/ide-debugger).
