Skip to content

A second frontend ​

The backend owns the project state — sessions, kernels, file watching — and the frontend renders what it is sent. So a desktop and a laptop can attach to the same backend at once and see the same sessions, the same work-state colours and the same REPLs.

Add one ​

On the second machine, install the frontend role against the same backend SSH alias:

bash
curl -fsSL https://raw.githubusercontent.com/kalidke/ship-of-tools/main/scripts/install.sh | bash -s -- --backend myserver

(On Windows, use the release zip and scripts\install-shortcut.ps1; see Install.) Launch it with sot-launch; it spawns its own ssh child and connects as one more client of the daemon. Nothing on the server changes.

What is shared and what is not ​

Shared (lives on the backend)Per frontend
sessions and their agentswindow layout and which pane has focus
each workspace's Julia kernel and REPLthe active session and cursor positions
work-state colours and comm messagesthe Terminal drawer (a shell on that machine)
files and previewssettings.toml (layout preset, GPU preference)

Closing one frontend affects nothing the other sees: the agents run under the backend's own supervisors, not under any frontend.

Where a session's output lands ​

With two windows attached, a file an agent shows (sot-fe preview, show-result) reaches the preview pane and the badge of every window. A browser an agent opens (a docs site, a URL, a wglshow figure) opens on one computer: the window you used last, however long ago; with none used yet, the one that connected last. A window counts as used from its second key press, click or wheel step within five minutes, and a switch between windows is noticed within about six seconds. Name a window with --fe <host> to override this. A window that is reconnecting at that moment is not chosen, and a browser open cannot wait for it.

Many machines, one workspace ​

To make a server reachable from every frontend in a fleet — not only the one you installed it from — enrol it on the hub: see Enrolling a host.

An agentic development environment for Julia. Released under the AGPL-3.0-or-later, with a commercial license on request.