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 colors and the same REPLs.

Add one ​

The hub's ~/.config/sot/hosts.toml must list the second machine ([host.<box>] with frontend = true) before its install, or the install ends in a FAIL: enroll: line that names the command to run on the hub. Then install the frontend role on that machine against the same backend SSH alias, with install.sh --backend <ssh-alias>, or on Windows with the release's scripts\install.ps1 -Hub <hub-ssh-alias>. The commands are in Going remote and Install. Launch it with sot-launch; it spawns its own ssh child and connects as one more client of the daemon.

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 colors and comm messagesthe Terminal drawer (a shell on that machine)
files and previewssettings.toml (layout preset, GPU preference)

The agents run under the backend's own supervisors, not under any frontend, so closing a frontend on another computer than the backend ends nothing. Closing the last window on the computer that runs the backend ends its sessions, including any that the other frontend was viewing; see What keeps running.

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 — enroll 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.