Mobile remote
Warshall Mobile is a remote control for your desktop. The desktop holds every piece of state. The phone reads it and asks for changes.
What the phone can do
Whatever the input box on the desktop can start, the phone’s can start too. Both show the same thing, because only the desktop holds it.
- Prompt one terminal, or ask for work across projects from the one input box.
- Read a transcript as it streams, and answer an approval or a cost warning.
- Open the WorkMap, change a status, add a requirement, and start a terminal on a node.
- Pull, push and squash, on a terminal’s own branch and on the project against its remote.
- Read a review, comment on a line, check a comment off, and change the review’s status.
A prompt sent from the phone queues on the terminal exactly as a typed one does. Worktrees, approvals, automatic commits, conversations and the WorkMap all engage the same way. A message that starts with an exclamation mark runs as a shell command in that terminal.
A request typed into the phone’s input box is planned against what is open on the desktop right now. It can carry the skills and saved prompts the desktop offers. Only one plan is made at a time, so a second request from either surface is refused until the first one is done. The phone keeps its own model choice for these requests.
Turning it on
The remote is off until you turn it on. No account is needed on either side.
- Open Settings, go to the Mobile Remote tab, and turn on the Mobile remote control switch.
- Download Warshall Mobile on your phone and open it. It opens on a scan screen.
- On the desktop, under Sessions, choose Show code. Scan the code with the app, or with the phone’s own camera, which opens it in the app.
A code works once, for two minutes, and only while the desktop is connected. While it is on screen the desktop swaps in a fresh one before it runs out, and it goes away as soon as a phone links. Hide code withdraws it at once.
The line under the switch says what the link is doing.
| Line | Meaning |
|---|---|
| Starting | The switch was just turned on. |
| Connecting | The desktop is dialing the relay. |
| Connected | The link is up and a phone can reach this desktop. |
| Reconnecting | The link dropped and the desktop is trying again on its own. |
| Not running | The remote could not start. The reason follows the words. |
Which projects the phone sees
The same tab has a Projects list, with one row and one tick for each project open on the desktop. Every project is ticked by default, including a project you open later.
Unticking a project keeps it on the desktop and takes it off the phone. Its terminals, their transcripts and pictures, its map, its git, its reviews and its comments all stop being sent. A phone looking at one of its terminals is taken back to the project list. A command from the phone that names it is refused, as if the project did not exist. Tick it again and all of it is back in reach at once, without restarting the link. The ticks are kept with your settings, so they hold while the remote is off and for a phone that connects later.
Sessions
Every phone linked to this desktop is a card under Sessions, below the projects. A card shows the phone’s model, its system and app version, the address it last connected from and its approximate place when the relay can tell, the day it was linked, and Active now or when it was last active. Phones on the line come first.
Remove ends a phone’s session. The phone is cut off at once, empties what it holds, and returns to its scan screen saying it was removed. If the remote is off when you remove it, the session ends the next time the desktop connects. To link it again, show a new code. Disconnect in the phone’s Settings does the same from the phone’s side, and the card leaves the desktop’s list.
A phone is linked to one desktop at a time. Scanning another desktop’s code moves it there, and the first desktop’s list drops it.
How long a link lasts
A session lasts until you remove it on the desktop or disconnect it on the phone. Closing either app does not end it. A phone that does not connect at all for thirty days has to scan a new code, and every connection starts those thirty days again.
- The desktop stays connected while the app is running and the switch is on, and reconnects on its own after any drop.
- The phone stays connected while the app is open. When you switch away from it, the phone system pauses the app soon after, and the connection drops. Open the app again and it is back within a second, on the same session, without scanning.
- While one side is away the other shows it. The desktop’s card reads last active, and the phone reads Waiting for the desktop.
Staying in step
There is no sync button. The desktop pushes every change the moment it has it. The phone asks for fresh copies by itself when it comes back to the foreground, and the link reconnects by itself while the app is open.
A command that needs the desktop’s window, such as a prompt or a new terminal, is refused while no Warshall window is open. On Windows the app quits with its last window, so closing the window ends the link until you open the app again.
The relay
Both ends connect outward to a relay. That is what lets a phone reach a desktop behind a home network. Every frame is encrypted between the two devices with a key the relay never holds, so it forwards bytes it cannot read.
The phone learns the desktop’s key from the code it scanned, and proves the code to the desktop itself. So the relay cannot put another device in the middle, and a device can only connect with a key it really holds.
For each session the relay keeps the two device ids, the two public keys, the phone’s model, system and app version, and the address and approximate place it last connected from, for thirty days after the phone last connected. It never keeps message content.
The relay address is not a setting in the window. It is kept in the settings file for people who run their own relay, and the code carries it to the phone.
Turning it off
Turn the switch off and the desktop stops dialing. Linked phones wait and come back by themselves when you turn it on again, and the Sessions list stays readable and removable while it is off.
What each part of the phone shows is on The phone’s sections, and what it keeps is on Privacy and data.