Skip to content

What Offsite puts on your machine

Everything Offsite installs on a host lives under one directory, plus a small number of named helpers you opt into. This page lists them so you can check rather than trust.

Everything host-side is under ~/.offsite:

PathContains
bin/the host agent, the relay agent and helper binaries
sessions/per-session records
state.dbsession and board state (SQLite)
workspaces.jsonyour workspaces
workspace-discovery.jsonthe cached folder-suggestion list
devices.jsonpaired devices and their notification settings
settings.jsonhost settings
tmux/Offsite’s own tmux config — never your ~/.tmux.conf
uploads/<session-id>/files you sent to a session
session-archives/resume artefacts, so a CLI cleanup cannot orphan a session
action-memory/<action-id>.mdWorkspace Action memory
deploys/, xcode-derived-data/deploy-to-phone jobs and a private build cache
shell-wrappers/per-session shell shims
agent-bridge/Computer Use helper and its token
*.logtiming and delivery logs

Nothing is written into your repositories. A workspace is a path Offsite remembers, not a folder it modifies.

ProcessWhen
Host agentwhenever the host is running
One tmux server per sessionwhile that session exists
Relay agentalways: it runs the SSH server your devices connect to (see Ports), and holds the connection to the relay while that is on
Simulator brokermacOS, only if you use Simulator cards
Agent BridgemacOS, only if you enabled Computer Use

Two, both opt-in, both announced before they ask:

HelperFor
com.rapidrocket.offsite.power-helper (LaunchDaemon)keeping the host awake
The always-reachable service (LaunchDaemon / systemd)surviving a reboot

The standard setup needs neither.

One. The relay agent runs an SSH server of its own on a single TCP port and listens on all of the host’s network interfaces (0.0.0.0). Your devices connect to it on your local network, over your tailnet and at the host’s own address, and the Mac app reaches This Mac through it on 127.0.0.1. On macOS the agent also announces the port on the local network with Bonjour (_offsite-ssh._tcp).

It admits only devices you paired: each one signs in with its own Ed25519 key, and a new device gets in once, with the one-time code from the host’s QR. It is not macOS Remote Login; port 22 stays as you configured it.

The port is picked on first start and kept in ~/.offsite/relay-agent-sshd-port, so firewall rules and your devices can rely on it. offsite-host setup --sshd-port <port> sets a fixed one, for example for a router or firewall rule.

On a host with a public address, such as a VPS, that port answers from the internet unless a firewall in front of the host closes it. Close it, and with the relay on your devices still reach the host: the relay path needs no inbound port, because both ends dial out to it on 443. See How your devices reach your host.

One port answers your paired devices on the local network, your tailnet and the host's own address, and the relay path leaves the host outbound on 443.

See Uninstalling.

  • The state directory can be relocated with OFFSITE_STATE_DIR, which is mostly useful for testing against a throwaway state.
  • Directories and files are created with restrictive permissions.
  • The .offsite directory itself is refused as a workspace root.
  • On Linux the same layout applies under the connecting user’s home directory.
  • Client-side, the macOS and iOS apps keep host profiles and credentials in the system keychain, not in the state directory.