MXa

How to control your computer remotely

From a machine with nothing installed to your first remote session.

1. Install on the host

Download the DMG from the Get the app page, drag MXa into Applications and open it. No VPN, no network configuration, no account. The icon sits in the menu bar. Nothing lands in the Dock.

  1. 1

    The first time you open it, your computer refuses. Go to System Settings → Privacy & Security, scroll down to Security and click Open Anyway. Once is enough.

  2. 2

    Grant Screen Recording when the app asks. If you dismissed the prompt, switch it on in System Settings → Privacy & Security → Screen Recording and reopen the app. Without it the other machine sees nothing.

  3. 3

    Grant Accessibility in the entry right next to it. Without that one the picture arrives, but clicks and keystrokes go nowhere.

  4. 4

    Pick a role for this machine. Client is the one that gets controlled, Remote is the one you carry. The app then shows its 9-digit ID and its 6-digit code.

2. How the two machines find each other

Nothing to do in this section. This is the route a session takes.

  1. 1

    The computer at home opens an HTTPS connection to the meeting point and holds it, much like a browser tab left open. The server issues its 9-digit ID. The machine proves it owns that ID with an Ed25519 signature.

  2. 2

    You type the ID on the other machine. The server alerts the computer at home and issues a single-use ticket. Both ends come back holding it, the server splices the two pipes into one, and from there it only copies bytes.

  3. 3

    Before taking the long way round, the controlling machine spends about 300 milliseconds trying a direct connection on the local network. On the same network the picture goes straight across and no byte leaves the building.

  4. 4

    All of it runs over port 443. To a hotel or corporate firewall the session looks like one HTTPS connection. Inside it sits a second layer of encryption, keyed from your 6-digit code plus an ECDH secret the two machines exchange between themselves.

3. The first connection

The computer at home shows both numbers on its panel. The machine doing the reaching types them in.

  1. 1

    On the computer at home, choose Client mode. Wait for the indicator to turn connected, then write down the 9-digit ID and the 6-digit code.

  2. 2

    On the machine you carry, choose Remote mode and add a machine. Type the ID, give it a name you'll recognise, enter the 6-digit code.

  3. 3

    Click the machine name to open its window. Mouse, keyboard and clipboard work as usual. ⌘. closes the window.

  4. 4

    On a weak link, open the app list inside that window and pick a single app. Only that app's window is streamed.

4. The iPhone and iPad build

The app has been submitted to the App Store and is waiting on review. Until then, build it from source with Xcode.

  1. 1

    Open the iOS project in Xcode and select your signing team under Signing & Capabilities. The project has one target, macRM. It carries no VPN and connects through the meeting point.

  2. 2

    Enable Developer Mode on the iPhone or iPad, unlock the screen and plug in the cable.

  3. 3

    Build in the Release configuration and install it. A Debug build launched without Xcode attached quits at once.

  4. 4

    The first run asks for no configuration. Type the 9-digit ID and 6-digit code of the computer at home and the screen appears.

5. When something goes wrong

A few common situations and where to look first.

Black screen, but it says connected

Check Screen Recording on the host at home first. Grant it, then reopen the app. If the permission is already there, that computer's screen is locked. Leave it logged in.

The ID is right but it says it isn't

The last digit of the ID is a checksum, so one wrong digit is rejected on the spot. If the ID really is right, the computer at home has lost its connection to the meeting point. Open the app on it and read the status light.

The picture stutters or lags

Measure the upload speed at the home end first. Then lower that computer's screen resolution, or switch to streaming a single app window.

I keep getting kicked out

The computer at home serves one visitor at a time. If an iPad and a laptop both connect to it, they take turns evicting each other. Disconnect one of them.