Remote Access
Cross-device memory lets two machines running sivtr read each other’s workspace sessions like local sources. Sharing is explicit, read-only, and redacted by default.
If you want the teammate scenario first, see Remote collaboration memory. This page is the feature guide.
| Piece | Meaning |
|---|---|
| Device daemon | One per machine. Started by sivtr serve, auto-started by share/remote commands when needed. |
| Share | An explicitly exposed local workspace (a remote “repo”). |
| Invite | Single-use invitation key with a short TTL. Printed as a bare key on stdout (share invite). |
| Grant | Peer permission after redeeming an invite. |
| Remote | Workspace-local name for a peer+share pair — the left side of name:path refs (like git remote). |
Refs use one form:
codex/4 # local current workspacedocs:codex/4 # another local workspace by namedesk:terminal/... # remote name from `remote add`List local workspace labels with sivtr ws list. Unregistered scopes error.
Owner setup
Section titled “Owner setup”On the machine that owns the workspace:
sivtr share # pick workspace (Enter = current); creates share onlysivtr share invite <name> # issue a single-use invite (stdout = bare key)Non-interactive:
sivtr share add --name alice-desksivtr share invite alice-desk --expires 10mUseful owner commands:
sivtr share listsivtr share grants alice-desksivtr share revoke alice-desk <peer>sivtr share disable alice-desksivtr share remove alice-desksivtr serve statusPeer setup
Section titled “Peer setup”In the git workspace where you want the remote:
sivtr remote add desk <invite>sivtr remote test desksivtr remote listUseful peer commands:
sivtr remote rename desk bob-desksivtr remote remove desk # local name only; grant remains until owner revokessivtr peer listsivtr peer forget <peer>Use remote memory
Section titled “Use remote memory”Remotes work with the same WorkSet surface as local sources:
sivtr s desk:terminal --status failure --latest 5 --refssivtr s desk:agent -m "panic|failed|decision" --latest 20 --save remote_hits --refssivtr show desk:terminal/session_42/3/p1 --fullsivtr zoom desk:agent/<session>/3 -C 2 --save remote_ctx --refssivtr filter @remote_hits -m "cargo test" --save remote_tests --refssivtr nav @remote_tests[1] '<[-1..+1]' --refssivtr copy desk:terminal/session_42/3 --printSafety defaults
Section titled “Safety defaults”- Nothing is shared until
sivtr shareorshare addruns. - Access is read-only. Peers cannot write sessions or run commands on the owner machine.
- Secret redaction is on by default (
--no-redactdisables it for a share). - Invites are single-use and short-lived (default
10m). - Transport between daemons is encrypted iroh.
- Local-first remains default: unknown scopes fail instead of probing the network.
Daemon and data
Section titled “Daemon and data”sivtr serve startsivtr serve statussivtr serve logssivtr serve stopState lives under data_dir() (SIVTR_DATA_DIR override, else the platform config dir under sivtr):
| File | Purpose |
|---|---|
identity.key | Stable device identity |
remote-state.db | Peers, shares, grants, invites, remotes |
daemon.json / daemon.lock / daemon.log | Runtime control and logs |
See Data Locations and Local-first and Privacy.
Command map
Section titled “Command map”| Command | Purpose |
|---|---|
sivtr share | Interactive share (no invite) |
sivtr share add|list|invite|grants|revoke... | Manage shares |
sivtr remote add|list|remove|rename|test | Manage remotes in the current workspace |
sivtr peer list|forget | Manage known peer identities |
sivtr serve ... | Manage the device daemon |
sivtr ws list | List local workspace origin labels |
Exact syntax: CLI Reference.