Skip to main content
Locality is designed to protect the remote app from accidental writes.

The three trees

Every tracked file is compared across three states:
  • remote tree: current source-app state;
  • local tree: current mounted file state;
  • synced tree: the last state accepted by both sides.
This lets Locality distinguish clean files, local edits, remote updates, and diverged files.

Common states

Review before push

Use a narrow path:
Use --confirm only when Locality reports a destructive guardrail and you have reviewed the plan:

Pull before push

If the remote changed first:
If Locality writes inline conflict markers, edit the file to the intended final content and remove every marker line before pushing.

Restore local file

Restore rewrites the local file from the last synced shadow. It does not call Notion or Google Docs.
Use it when local edits should be discarded. Use --force only for a known conflicted file that you intentionally want to reset.

Live Mode

Live Mode handles safe background sync, but it is not fully autonomous. It can:
  • pull clean remote updates;
  • push safe local edits;
  • keep using the same push guardrails;
  • pause for conflicts, destructive plans, unsupported operations, remote drift that needs review, or anything ambiguous.
It does not hide meaningful conflicts from the user.

Diagnostics

Start with:
On virtual filesystem mounts, a visible file and the daemon cache can drift if the platform provider missed a callback. Scoped loc status, loc diff, and loc push try to reconcile the visible file before planning.