Working offline, and what runs with no network

The core is offline-first by design: what works with the network unplugged, and what genuinely needs it.

Written By Dustin

Last updated About 2 hours ago

TOVIO's core is offline-first, and that is an architectural property rather than a convenience feature. Every core operation works with the network unplugged.

What works with no network at all

  • Creating a repository, checking status, committing, reading history, diffing.
  • Creating and switching lanes, landing changes, resolving conflicts.
  • Undo and redo, over the local operation log.
  • Repository health checks and integrity verification.
  • Policy evaluation — deliberately. Policy expressions are stored in clear precisely so that any client can evaluate them deterministically without asking a server.
  • Reading anything you already hold a key for. Offline reads remain possible; the key authority is an authorization oracle, not a decryption gatekeeper.

There is nothing to activate

No licence check, no account, no registration, and no first-run call to anyone. A repository is a directory on your disk. If you never configure a remote, the software never opens a connection.

What genuinely needs the network

  • Sync, clone, push, pull — to a remote you configured.
  • Granting or revoking access for someone else, where the key authority is involved in authorization.
  • Forge collaboration — proposals, reviews, checks.
  • Anything you explicitly send, including the model-assisted conflict resolution described in its own article.

Going offline is not a way around permissions

Worth stating so that nobody plans around it: read access is enforced by whether you hold a usable key, not by a server being reachable. Disconnecting does not turn a protected file into a readable one — it just means nobody can grant you access while you are disconnected.

Why this matters for privacy

The strongest privacy guarantee in a version control system is architectural: work that never needs a server never produces data for one to hold. That is the default here, and configuring a remote is a decision you make, not one made for you.