Mesh Preview · Needs Tailscale

All your machines, one sidebar.

Run Sova on a laptop, a server and an Android phone on your tailnet, and use them all from any one page. A session runs on the host you pick, and you drive it from wherever you are.

Several hosts

Start it on the server. Check it from the couch.

Every host's sessions appear in one list, labelled by host and filterable. New Session asks which host. An organization on another host opens there, with its pages and its overseer.

Settings, themes, extensions and logins can be kept in step, each behind its own switch. With logins on, they're copied to every host. Two different logins for the same provider are shown as a conflict for you to settle, never overwritten.

Hosts trust each other by Tailscale identity, with no token between them. Your browser unlocks a host with its token or a one-use pairing code, and through it can use every peer. Every host in a mesh must be reachable by the same devices, and run the same Sova build. docs/mesh.md covers the setup.

Sova's sidebar with sessions from 3 hosts, filterable by host (all, laptop, server, phone), each session tagged with the host it runs on, one of them working on the server, and the New Session dialog's Host field with server picked and phone unavailable. Beside it, the Mesh page: 3 hosts, where laptop is this host, server is up, and phone runs another Sova version and must be updated; and the Sync card, with settings and themes synced, extensions kept separate, and one login conflict to settle.
  • A front door that fails over

    The Mesh page writes a Caddy config that sends you to the first healthy host in your order, and back when it recovers.

    You run it behind tailscale serve, never Funnel. A reply in progress can fail during a switch.

  • Linked sessions

    Ask the Overseer to link sessions on different hosts, so they can message each other and offer each other files. Their traffic shows in the Agents tab, not the transcript.

    One session per host in a link. A file moves only when the other side accepts it.

  • A phone as a host

    Sova can run in Termux on an Android phone, installed with one pasted command, and join the mesh like any other host. Its uninstaller removes exactly what the install added.

    Android with Termux only, and still rough: its install notes are written for developers. Other phones use Sova in the browser.

With no peer added, nothing changes: no extra port, no Tailscale calls, no requests to other machines.

Start on one machine.

Install Sova where your sessions are. Add a peer from the Mesh page when you want a second host.

curl -fsSL https://raw.githubusercontent.com/Naomarik/sova/master/scripts/install.sh | SOVA_REF=master bash

Then run sova, then sova open. Install the same version on every host you add.

← Back to Sova