Git Sync (experimental)

Push and pull your collections against a remote git repository you own — a private GitHub repo, a self-hosted Gitea instance, anything with an HTTPS git remote.

Your data/ folder is never itself a git repo; instead Volley maintains a separate local clone (volley-sync/) as a bridge. Enable it first in ⚙ Settings → Experimental → Git sync, then click the Git button that appears in the topbar.

Setup

  1. Remote URL — the HTTPS URL of your collections repo (e.g. https://github.com/you/my-collections).
  2. Personal Access Token — required for private repos and for push. For GitHub fine-grained PATs: grant Contents (read & write) and Metadata (read). Leave blank for a public read-only repo.
  3. Branch — defaults to main.
  4. Click Save, then Connect to clone the remote into volley-sync/ and populate data/ from it.

Push / Pull

The files _volley/history.json, _volley/tabs.json, _volley/cookies.json, and _volley/monitor-runs.json are excluded from sync — they're ephemeral local state that doesn't belong in a shared repo. _volley/monitors.json (the monitor definitions) syncs normally, same as your collections.

Re-clone

If your local data/ gets into a bad state, Re-clone (the same Connect button when already connected) wipes data/ and repopulates it from the remote. Push any unsaved work first.

If the remote repo contains a single Volley export file ({ "cols": [...] }), Re-clone detects this and expands it into the normal directory structure automatically — so pointing Volley at an existing export repo works out of the box.

Auto-sync

Enable Auto-sync in the Git modal and set an interval (default 5 minutes). Volley will push then pull on that schedule. If the pull reveals conflicts with remote changes, a notification appears prompting you to open the Git modal to resolve them. Cross-tab coordination via localStorage ensures only one open browser tab syncs per interval.